Class Meetings | Mon and Wed 3:30-4:45pm in CIWW 312 |
Recitations | Thu 12:30-1:45pm in CIWW 312 |
First Lecture | Sep 4, 2019 |
Last Lecture | Dec 11, 2019 |
Midterm Exam | Oct 23, 2019, 3:30-4:45pm in CIWW 312 |
Final Exam | Dec 18, 2019, 4:00-5:50pm in CIWW 312 |
Instructor | Thomas Wies, Office 60FA 403, Office Hours Tue 4:00-5:00pm, or by appointment |
Recitation leader | Goktug Saatcioglu, Office WWH 905, Office Hours Fri 3:00-4:00pm |
Grader | Owura Asare, Office Hours Mon 2:00-3:00pm in WWH 412 |
This course aims to give students an understanding of what's "under the hood" in a modern computer system. Take this class to boost your confidence on a computer and to understand how everything works like never before! We'll cover basic topics including how machines represent and execute programs, how user program interact with the OS, as well as advanced topics including how to write networked and concurrent programs. These topics are supported by a series of challenging lab assignments in C.
Prerequisites: You need to be comfortable with programming (e.g. in Java) and the UNIX environment.
Throughout the semester, we will investigate the following topics in detail among others:
We will use Piazza for course-related discussions and announcements. I encourage you to ask questions when you are struggling to understand a concept - you can even do so anonymously.
Assignments (30%), midterm exam (30%), final exam (40%).
Late submissions will be graded with a 10% penalty per day of late submission. Solutions will not be graded if they are submitted later than one week after the specified deadline.
Please review the departmental academic integrity policy. In this course, you may discuss assignments with other students, but the work you turn in must be your own. Do not copy another student's work. You should help other students on specific technical issues but you must acknowledge such interactions. Copying code or other work without giving appropriate acknowledgment is a serious offense with consequences ranging from no credit to potential expulsion.
The following textbooks are recommended for further study:
The syllabus can be subject to change, so please refresh frequently.
Slides are adapted from Mohamed Zahran
Week | Date | Topics | Materials | Further Reading |
---|---|---|---|---|
1 | 09/04 |
|
||
1 | 09/05 |
|
||
2 | 09/09 |
Programming in C - Basics
|
|
|
2 | 09/11 |
Programming in C - Basics
|
|
|
2 | 09/12 |
|
||
3 | 09/16 |
Programming in C
|
|
|
3 | 09/18 |
Programming in C
|
|
|
3 | 09/19 |
|
||
4 | 09/23 |
Programming in C
|
|
|
4 | 09/25 |
Programming in C
|
|
|
4 | 09/26 |
|
||
5 | 09/30 |
Data representation
|
|
|
5 | 10/02 |
Data representation
|
|
|
5 | 10/03 |
|
||
6 | 10/07 |
Data representation
|
|
|
6 | 10/09 |
Machine Programming
|
|
|
6 | 10/10 |
|
||
7 | 10/14 |
|
|
|
7 | 10/15 |
Machine Programming
|
|
|
7 | 10/16 |
Machine Programming
|
|
|
7 | 10/17 |
|
||
8 | 10/21 |
|
|
|
8 | 10/23 |
|
|
|
8 | 10/24 |
Machine Programming
|
|
|
9 | 10/28 |
Machine Programming
|
|
|
9 | 10/30 |
Machine Programming
|
|
|
9 | 10/31 |
|
||
10 | 11/04 |
Machine Programming
|
|
|
10 | 11/06 | Linking and Loading |
|
|
10 | 11/07 |
|
||
11 | 11/11 |
Memory Management
|
|
|
11 | 11/13 |
Memory Management
|
|
|
11 | 11/14 |
|
||
12 | 11/18 |
Memory Management
|
|
|
12 | 11/20 |
Memory Management
|
|
|
12 | 11/21 |
|
||
13 | 11/25 |
Memory Management
|
|
|
13 | 11/27 |
|
|
|
13 | 11/28 |
|
||
14 | 12/02 |
Concurrency
|
|
|
14 | 12/04 |
Concurrency
|
||
14 | 12/05 |
|
||
15 | 12/09 |
Concurrency
|
||
15 | 12/11 |
Concurrency
|
||
15 | 12/12 |
|
||
16 | 12/16 | Final exam preparation (WWH 512) |
|
|
16 | 12/18 |
|
|
|