🏗 Work
Contents
Lecture Preparation
Lab Preparation
Assignments
- Gates: Work with digital logic gates.
-
- assign: Monday 24 January
- due: Monday 31 January
- Zero: Starting from scratch in CS 240.
-
- assign: Monday 24 January
- due: Wednesday 2 February
- Bits: Manipulate data with bit-level operations.
-
- assign: Monday 31 January
- checkpoint: Monday 7 February
- due: Thursday 10 February
- Circuits: Grow logic circuits and processor components.
-
- assign: Thursday 10 February
- due: Thursday 17 February
- Arch: Inspect and manipulate memories and a processor architecture.
-
- assign: Thursday 17 February
- due: Tuesday 1 March
- Pointers: Build a command parser with C pointers and arrays.
-
- assign: Monday 7 March
- due: Wednesday 16 March
- x86: Reverse engineer x86 code to navigate an adventure.
-
- assign: Wednesday 16 March
- due: Thursday 7 April
- Buffer: Smash the stack to understand calling conventions and security concerns.
-
- assign: Wednesday 6 April
- due: Thursday 14 April
- Malloc: Build a memory allocator.
-
- assign: Monday 25 April
- checkpoint: Monday 2 May
- due: Wednesday 11 May
A note on assignments as of Fall 2020:
Assignments in versions of this course from Spring 2015 through Spring 2020 integrated 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 it was time to remove this theme in Fall 2020. If you encounter any lingering traces that we missed, please let us know.
Exams
- HW Exam: Computational Building Blocks
-
- preview: Thursday 24 February
- available: 3:35pm Thursday 3 March
- due: 2:20pm Monday 7 March
- ISA Exam: Hardware-Software Interface
-
- preview: Thursday 14 April
- available: 3:35pm Thursday 21 April
- due: 2:20pm Monday 25 April
Extra Fun
Parts of these assignments will be used in lab activities, but completing them in full is not required this semester. They are linked here if you are curious to explore further.