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 and dissect a computer.
-
- assign: Monday, 28 January
- due: Friday, 1 February
- Entrance Gates: pencil Work with digital logic gates.
-
- assign: Tuesday, 29 January
- due: Tuesday, 5 February
- Integer Arithmancy: pencil Practice number representation and computer arithmetic.
-
- assign: Tuesday, 5 February
- due: Tuesday, 12 February
- Bit Transfiguration: code Transfigure data with bit-level operations.
-
- assign: Monday, 11 February
- due: Wednesday, 20 February
- Circuit Herbology: pencil Grow logic circuits and processor components.
-
- assign: Tuesday, 19 February
- due: Tuesday, 26 February
- Pensieve Processing: pencil Inspect and manipulate memories and a processor design.
-
- assign: Tuesday, 26 February
- due: Tuesday, 5 March
- Pointer Potions: code Brew a command parser with C pointers and arrays.
-
- assign: Monday, 11 March
- due: Wednesday, 20 March
- x86 Runes: code Reverse engineer compiled x86 runes to recover the Sourceror's Code.
-
- assign: Monday, 1 April
- due: Friday, 12 April
- Dark Buffer Arts: code Smash the stack to understand calling conventions and security concerns.
-
- assign: Friday, 12 April
- due: Friday, 19 April
- Cache Divination: pencil Use performance impact to reveal cache dimensions.
-
- assign: Friday, 19 April
- work: Monday, 22 April
- due: Tuesday, 23 April
- Shell Spells: code Build a shell to explore the process model.
-
- assign: Monday, 29 April
- due: Friday, 10 May
- Remembrallocator: code Implement a memory allocator.
-
- assign: Monday, 6 May
- due: Tuesday, 21 May