15-213/18-243 Introduction to Computer Systems Assignments

Schedule is tentative.

  • All labs are due 11:59pm on the shown due date
  • You have 4 late days for the entire semester - use them wisely.
  • You can use at most 2 late days for one homework

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


    Out Points Assignment Due

1 Tue Jan 16 60   Data Lab   Thu Jan 29
2 Thu Jan 29 70   Binary Bomb Lab   Tue Feb 10
3 Tue Feb 10 65   Buffer Overflow Lab   Thu Feb 19
4 Thu Feb 19 100   Performance Lab   Thu Mar 09
5 Tue Mar 17 110   Shell Lab   Tue Mar 31
6 Tue Mar 31 150   Malloc Lab*   Tue Apr 16
7 Tue Apr 14 100   Web Proxy Lab   Thu Apr 30

* this lab can be done in teams of 2 and has a check point

Collaboration and Academic Integrity

All assignments in this course are single-student assignments. The work must be all your own. Do not copy any parts of any of the assignments from anyone including the web. Do not look at other students' code, papers, or exams. Do not make any parts of your assignments available to anyone, and make sure noone can read your files. The university policies on academic integrity will be applied rigorously.

We will be using the Moss system to detect software plagiarism including comparisons with labs from prior years. This system is amazingly good, because it understands the programming language in question (C, in our case).

It is not considered cheating to clarify vague points in the assignments or textbook, or to give help or receive help in using the computer systems, compilers, debuggers, profilers, or other facilities.

Due Dates and Late Days

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

Every student has up to 4 late days to use for any assignments throughout the semester. For example, if an assignment is due at 11:59pm on Thursday, and handing in the assignment at 1:05pm on Saturday incurs no penalty, but uses up 2 late days. Late days used so far are recorded both on Blackboard and the emails with assignment scores.

After your late days are used up, 15% will be subtracted per day late.

For any assignment you may not submit more than 2 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 two days late.

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.

On autolab, be sure to select

S6 - View your handin history and scores

to see the official autolab output and instructor evaluations of your submissions.


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.