Your participation in the course will involve five forms of activity:
Attendance will not be taken at the lectures or recitation sections. You will be considered responsible for all material presented at the lectures, much of which is not covered to the same depth in the textbook. In addition, you will find the recitations useful for better understanding the course material, the assignments, and the exam coverage.
There will be two types of assignments in this class. Homework assignments will involve solving problems with paper and pencil, and possibly writing and executing small programs. They are intended to reinforce the material covered in the lectures. Laboratory assignments will be multi-week efforts providing in-depth understanding of some aspect of computer system design. They will involve some combination of C and assembly programming, as well as performance measurements. For both types of assignments, you will be allowed to work in groups of up to 3 people. Each group will turn in a single report, identifying the group members. We will let you form and regulate your own groups. You are free to work on your own as well.
The textbook covers much of the material taught in the course. In the schedule shown in this document, you will see the reading assignments associated with each section of the course. It would be a good idea to read over each of these assignments twice--a brief reading before the lecture to become familiar with the basic concepts, and a more thorough reading later to understand the details.