News

Course overview

This course provides a programmer's view of how computer systems execute programs, store information, and communicate. The course attempts to expose students to the practical issues that affect performance, portability, robustness, and extensibility. This course provides a foundation for subsequent courses on operating systems, networks, compilers and many other courses that require an understanding of the system-level issues.

Topics include

Course schedule

Please see the web page for 0051 (Computer Architecture) for more information.

Groups and assistants

All groups meet on Tuesday.

Room Time Assistant nethz ID
HG G 5 1:15 -- 3:00 Biörn Biörnstad, Jianbo Xue bbioern, jxue
HG D 3.2 1:15 -- 3:00 David Landis, Johannes Schmid dlandis, schmidjo
IFW D 42 1:15 -- 3:00 Rene Müller, Yang Su muellren, ysu
HG E 33.3 3:15 -- 5:00 Manuel Lang, Roni Oeschger malang, oroni

Assignments

Assignments are an important part of the course. You will not learn this material from listening to a lecture alone -- you have to do the assignments.

You must solve the assignments on your own! It is important that you realize that the solution to an assignment that you turn in must be your work. Copying another student's solution (or providing a solution for another student) is not acceptable and we must refer to the university's rules on cheating in exams. You are welcome (and encouraged) to discuss problems and assignments with other students but the work you turn in must be your own. If you have any questions about this policy, please contact the instructors.

Your grade will be based on the midterm and final (50%) and on the solutions to the assignments (50%).

Number Out Due Description Other
1 11/08 11/15 Assignment 1 Solution 1
2 11/29 12/13 Assignment 2 (Bomb Lab)
3 12/13 12/20 Assignment 3 (for fun)
4 1/10 1/17 Assignment 4 (for fun)
5 1/17 1/31 Assignment 5 shell-lab-handout Solution
6 1/31 2/10 Assignment 6 vmlab-handout