Assignments
topic denotes readings and class activities, listed separately on the working schedule.
lab denotes pre-lab assignments and lab activities, listed separately on the lab web page.
pencil denotes written assignments, listed below.
code denotes applied assignments, listed below.
- Introductions: Introduce yourself!
-
- assign: Tuesday, 28 January
- due: Friday, 31 January
- Entrance Gates: pencil Work with digital logic gates.
-
- assign: Tuesday, 28 January
- due: Tuesday, 4 February
- Integer Arithmancy: pencil Practice number representation and computer arithmetic.
-
- assign: Tuesday, 4 February
- due: Tuesday, 11 February
- Bit Transfiguration: code Transfigure data with bit-level operations.
-
- assign: Thursday, 6 February
- due: Tuesday, 18 February
- Circuit Herbology: pencil Grow logic circuits and processor components.
-
- assign: Tuesday, 18 February
- due: Tuesday, 25 February
- Pensieve Processing: pencil Inspect and manipulate memories and a processor design.
-
- assign: Tuesday, 25 February
- due: Tuesday, 3 March
- Pointer Potions: code Brew a command parser with C pointers and arrays.
-
- assign: Tuesday, 10 March
- checkpoint: Friday, 3 April
- due: Friday, 10 April
- x86 Runes: code Reverse engineer compiled x86 runes to recover the Sourceror's Code.
-
- assign: Thursday, 9 April
- checkpoint: Friday, 17 April
- due: Friday, 24 April
- Remembrallocator: code Implement a memory allocator.
-
- assign: Friday, 24 April
- checkpoint: Friday, 8 May
- due: Friday, 15 May
What we missed in Spring 2020
Due to mid-semester changes in response to the COVID-19 pandemic, we missed some topics and the following assignments usually included in CS 240:
- Dark Buffer Arts: code Smash the stack to understand calling conventions and security concerns.
- Cache Divination: pencil Use performance impact to reveal cache dimensions.
- Shell Spells: code Build a shell to explore the process model.
Feel free to try them out if you are curious!