All assignments will be provided on this page.

All assignments are due at 11:55PM on the due date, unless otherwise specified.

Honor Code Policy

Unless otherwise stated, assignments are to be done individually. You may use your text, course notes, and any other reference material (such as C reference books, C reference web pages, or Unix man pages). You may discuss assignment problems, general strategies, or algorithms with other students in the course. However, you may not collaborate on the implementation of those strategies or algorithms and you must write all of your own code. You may not obtain any code from any source, aside from code provided as a part of the course. You may not consult solutions from prior semesters of this course or from similar courses at other universities. For assignments that allow work to be done in groups, you may work within your group however you see fit, but otherwise this policy applies to the entire group as if it were an individual.

Slip Days and Extensions

All students will be given 3 slip days to use throughout the semester. When you use a slip day, you will receive up to 24 additional hours to complete the assignment. You may use these slip days in any way you see fit (3 days on one assignment, 1 day each on 3 assignments, etc.). The only requirement for use of your slip days is that you e-mail the instructors prior to the time the assignment is due. On group projects, each student in the group must use a slip day in order to extend the deadline for the assignment.

When slip days are used, you should clearly indicate so at the beginning of the assignment writeup.

Other than slip days, no extensions will be given unless there are exceptional circumstances (such as severe sickness, not because you have too much other work). Such extensions must be requested and approved by the instructor (via e-mail, phone, or in person) before the due date for the assignment. Last minute requests are likely to be denied.

Style Guide

Part of the grade given for all of the assignments in this class is assigned based on code style. A comprehensive style guide for this course can be found here.

Assignment Handouts and Provided Code

Note: Dates and point values for assignments are subject to change.

For some assignments, you may use the code from the textbook, provided in csapp.c and csapp.h. For those assignments, the provided Makefile already compiles this code into your program.

Assignment Date Assigned Date Due Provided Code Value Average
1: Factors 1/11 1/18 3%  
2: Word Count 1/18 2/1 7%  
3: Linking 2/1 2/15 10%  
4: Shell 2/15 3/8 20%  
5: Malloc 3/8 3/29   20%  
6: Proxy 3/29 4/19   20%