Assignments
- Zero: Starting from scratch in CS 240.
-
- assign: Monday, 31 Aug
- due: Wednesday, 2 Sep
- Bits: Manipulate data with bit-level operations.
-
- assign: Wednesday, 2 Sep
- due: Wednesday, 9 Sep
- People who Change Systems:
-
- assign: Monday, 7 Sep
- checkpoint: Monday, 14 Sep
- Pointers: Build a command parser with C pointers and arrays.
-
- assign: Wednesday, 9 Sep
- due: Wednesday, 16 Sep
- x86: Reverse engineer x86 code to recover a secret.
-
- assign: Thursday, 17 Sep
- due: Wednesday, 23 Sep
- Buffer: Smash the stack to understand calling conventions and security concerns.
-
- assign: Thursday, 24 Sep
- due: Wednesday, 30 Sep
- Malloc: Build a memory allocator.
-
- assign: Thursday, 1 Oct
- checkpoint: Monday, 5 Oct
- due: Tuesday, 13 Oct
- +Shell: Build a shell to explore the process model.
-
- assign: Thursday, 8 Oct
- due: Tuesday, 13 Oct
A note on assignments as of Fall 2020:
Assignments in prior versions of this course followed the theme of different courses at a school of magic from a popular book series, as we gradually showed that there is no magic inside a computer. The instructors decided to remove this theme in Fall 2020. The theme was, however, deeply integrated into assignments in past years, so there is a chance you may encounter traces that we missed. If you do, please let us know.