Assignments

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 not use any AI-based tools, including, but not limited to, ChatGPT, GitHub Copilot, and TabNine, for any purpose in this course. 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 this course in this semester. 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, or 1 day each on 3 assignments, etc.). On group projects, each student in the group must use a slip day in order to extend the deadline for the assignment.

To use a slip day, you must do two things. First, commit and push a file into your assignment repository before the deadline called slipday.txt. That file must contain a single number, which is the number of slip days you are using on the assignment. Do not add extra spurious text to the file. Second, clearly indicate how many slip days you used at the beginning of the assignment writeup. You must do both of these things in order to use slip days.

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
1: Factors 1/12 1/19 https://classroom.github.com/a/ZpGy3yQF 3%
2: Word Count 1/19 2/2 https://classroom.github.com/a/FhiWpH8t 7%
3: Linking 2/2 2/16 https://classroom.github.com/a/4cVp2iMg 10%
4: Shell 2/16 3/8 https://classroom.github.com/a/hYyQtfQ2 20%
5: Malloc 3/8 3/29 https://classroom.github.com/a/H2gBGTiZ 20%
6: Proxy 3/29 4/19 TBA 20%