See course resources for information on the book abbreviations found in the Extra column.
This schedule is tentative and subject to change!
Week | Date | Topic | Reading | Extra | Assignment |
---|---|---|---|---|---|
Computer Organization | |||||
1 | Mon Aug 29 | Introduction to Computer Systems [notes] [recording] [drawing] [birrell] | Stack frame layout on x86-64 | [BO Ch. 1] | |
Wed Aug 31 | C Programming Practice [notes] | [BO Ch. 2.1-2.3] | |||
Fri Sep 2 | [handout] [solution] | Blob to Image (Learning C) (No checkpoint) | |||
2 | Mon Sep 5 | Labor Day (no class) | |||
Wed Sep 7 | Data Representation [notes] [recording] [birrell:ints1] [birrell:ints2] [birrell:floats] | Floating Point Visually Explained | [BO Ch. 2.4] | ||
Fri Sep 9 | [handout] [solution] | Data Representation | |||
3 | Mon Sep 12 | x86-64 Assembly [recording] [drawing] [slides] [birrell] | NASM Tutorial | [BO Ch. 3.1-3.4] | |
Wed Sep 14 | Debugging Practice [notes] [birrell] | [BO Ch. 3.5-3.6] | |||
Fri Sep 16 | [handout] [solution] | Debugging the Labyrinth | |||
4 | Mon Sep 19 | Assembly Control Flow and Data [slides] [birrell] | Read Parts 1 through 4 | [BO Ch. 3.7] | |
Wed Sep 21 | Assembly Data and Subroutines [slides] [recording] [subroutines] [birrell] | [BO Ch. 3.8-3.9] | |||
Fri Sep 23 | [handout] [solution] | Binary Bombs | |||
5 | Mon Sep 26 | Security and Overflows [slides] [birrell] | ROP Chaining: Return Oriented Programming | [BO Ch. 3.10] | |
Wed Sep 28 | Security and Overflows [slides] [birrell] | [Shacham07] | |||
Fri Sep 30 | [handout] [solution] | Binary Attacks | |||
6 | Mon Oct 3 | Dynamic Memory [slides] [birrell] | Writing My Own Dynamic Memory Management | ||
Wed Oct 5 | Dynamic Memory [slides] [birrell] | [BO Ch. 5] | |||
Fri Oct 7 | [handout] [solution] | Dynamic Memory | |||
7 | Mon Oct 10 | Caching (Direct-Mapped) [slides] [birrell] | How Does CPU Cache Work? | [BO Ch. 6.2-6.4.2] | |
Wed Oct 12 | Caching (Set-Associative) [slides] [birrell] | [BO Ch. 6.4.3-6.4.7] | |||
Fri Oct 14 | [handout] [solution] | Caching | |||
8 | Mon Oct 17 | Fall break (no class) | |||
Wed Oct 19 | Cache Performance [slides] [birrell] | See gradescope | [BO Ch. 6.5] | ||
Fri Oct 21 | [handout] [solution] | Catch Up (no Checkpoint) | |||
Operating Systems | |||||
9 | Mon Oct 24 | Processes [slides] [birrell] | Threads vs. Processes | [AA Ch. 4, 5, 6] | |
Wed Oct 26 | Scheduling [slides] [birrell] | [AA Ch. 7, 8] | |||
Fri Oct 28 | [handout] [solution] | Command Line Shell | |||
10 | Mon Oct 31 | Virtual Memory [slides] [birrell] | The Abstraction: Address Spaces (PDF) | [AA Ch.15,16,18,21] | |
Wed Nov 2 | Paging Virtual Memory [slides] [birrell] | [AA Ch. 19, 20, 23] | |||
Fri Nov 4 | [handout] [solution] | Virtual Memory | |||
11 | Mon Nov 7 | Threading [slides] [birrell] | Introduction to Pthreads | [AA Ch. 26, 28] | |
Wed Nov 9 | Synchronization [slides] [birrell] | [AA Ch. 31, 30] | |||
Fri Nov 11 | [handout] [solution] | Synchronization | |||
12 | Mon Nov 14 | System I/O [slides] [birrell] | The Definitive Guide to Linux System Calls | [AA Ch. 39, BO Ch. 10] | |
Wed Nov 16 | File Systems [slides] [birrell] | [AA Ch. 40, 41] | |||
Fri Nov 18 | Guest Lecture | [handout] [solution] | |||
13 | Mon Nov 21 | File Systems | |||
Wed Nov 23 | Thanksgiving (no class) | ||||
Fri Nov 25 | Thanksgiving (no class) | ||||
14 | Mon Nov 28 | Networks [slides] [birrell] | The Internet | [BO Ch. 11.1-11.3] | |
Wed Nov 30 | Transmission Control Protocol (TCP) [slides] [birrell] | [BO Ch. 11.4] | |||
Fri Dec 2 | [handout] [solution] | Networking | |||
15 | Mon Dec 5 | Simulation, Emulation, Virtualization [slides] | (Optional) Emulator 101 | ||
Wed Dec 7 | Linux from Scratch [slides] | ||||
Fri Dec 9 | Reading day (no class) | ||||
16 | Fri Dec 16 | Final (2:00 - 5:00 PM) |