15-213 Intro to Computer Systems: Assignments

The assignments are the heart of this course. Much of what you learn in this course will be through completing these assignments.

  • All labs are due 11:59pm on the shown due date.
  • The late penalty is 15% per day.
  • You have 5 grace days for the entire semester - use them wisely.
  • You can use at most 2 grace days for any one assignment.
  • You can submit any assignment at most 3 days late.
  • All assignments are handed out and handed in using Autolab.


Lab  Out Weight (%) Name Due

L1 Thu Jan 19 7 Data Lab Thu Feb 2
L2 Thu Feb 2 7 Bomb Lab Tue Feb 14
L3 Tue Feb 14 4 Buffer Lab Tue Feb 21
L4 Tue Feb 21 4 Cache Lab Thu March 1
L5 Thu March 8 8 Shell Lab Thu March 29
L6 Thu March 29 12 Malloc Lab Thu April 12
L7 Thu April 12 8 Proxy Lab Thu April 26
Total 50%

Collaboration and Academic Integrity

Each exam and lab assignment must be the sole work of the student turning it in. Assignments will be closely monitored by automatic cheat checkers, including comparing turned-in code to the work of students from the same and previous semesters, and students may be asked to explain any suspicious similarities. These cheat checkers are very effective, having been refined over years of research, and they are not fooled by attempts to mask copying of code. Please don't try your luck.

The penalty for cheating is to be removed from the course with a failing grade. The University also places a record of the incident in the student's permanent record.

The following are guidelines on what non-exam collaboration is authorized and what is not:

What is Cheating?

  • Sharing code or other electronic files: either by copying, retyping, looking at, or supplying a copy of a file from this or a previous semester. Be sure to store your work in protected directories, and log off when you leave an open cluster, to prevent others from copying your work without your explicit assistance.
  • Sharing written assignments or exams: Looking at, copying, or supplying an assignment or exam.
  • Using other's code. Using code from this or previous offerings of 15-213, from courses at other institutions, or from any other non-213 source (e.g., software found on the Internet).
  • Looking at other's code. Although mentioned above, it bears repeating. Looking at other students' code or allowing others to look at yours is cheating. There is no notion of looking ''too much,'' since no looking is allowed at all.

What is NOT Cheating?

  • Clarifying ambiguities or vague points in class handouts or textbooks.
  • Helping others use the computer systems, networks, compilers, debuggers, profilers, or other system facilities.
  • Helping others with high-level design issues.
  • Helping others with high-level (not code-based) debugging.
  • Using code from the CS:APP website or from the class Web pages.
Be sure to store your work in protected directories, and log off when you leave an open cluster, to prevent others from copying your work without your explicit assistance.

Due Dates and Grace Days

All handins are electronic via the Autolab system. Assignments are due at 11:59pm on the specified due date.

Each student will receive a budget of 5 grace days for the entire semster. Here is how they work:
  • You will be granted at most 2 grace days for each assignment. Grace days are used up automatically until you run out. You cannot defer or bank grace days.
  • After you use up the grace day for an assignment (or run out of grace days) then you will receive a penalty of 15% for each subsequent day late.
  • For any assignment you may not submit more than 3 days late. This allows timely grading and permits us to discuss or post aspects of solutions. You will receive no credit for an assignment which is more than three days late.

Grace day examples (Assume that the assignment is due at 11:59pm Thursday):
  • Your last handin is noon on Friday, and you still have some grace days left: Then no late penalty and you use up a grace day.
  • Your last handin is noon on Friday and you have used up all of your grace days: Then you will be penalized 15%.
  • Your last handin is noon on Saturday and you still have some grace days left: Then no late penalty and you use two grace days.
  • Your last handin is noon on Sunday and you still have some grace days. Then you will consume one grace day and be penalized 30%.

Exceptions to the policies above will be granted only under most dire circumstances and must be discussed with and approved by the course instructor in advance.


We always count your latest submission, both for grading purposes and for the purpose of counting late days. You should avoid the scenario where you make final clean-up edits close to the submission deadline without subsequently compiling and re-testing your code. You might end up with no credit if you accidentally fail to close a comment or miss a parenthesis!

Some labs permit unofficial submissions in order to test your code with the Autolab grader. Unofficial submissions will not be graded. Please make sure to hand in at least one official submission.


Grading criteria are stated separately with each lab. Most of each score will be determined by the Autolab grading script.

The teaching staff will decide on grade boundaries at the end of the year. We may use intangibles, such as participation in class and recitation for those close to grade boundaries.