Zero: Starting from scratch in CS 240.
Bits: Manipulate data with bit-level operations.
People who Change Systems:
Pointers: Build a command parser with C pointers and arrays.
x86: Reverse engineer x86 code to recover a secret.
Buffer: Smash the stack to understand calling conventions and security concerns.
Malloc: Build a memory allocator.
+Shell: Build a shell to explore the process model.

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.