The course schedule is tentative and subject to change. This page will be updated frequently to reflect the most up-to-date schedule. Chapter sections refer to the Computer Systems textbook.
Date | Class | Type | Topic | Readings | Slides | Exercises | |
---|---|---|---|---|---|---|---|
Wed | Sep 1 | 1 | in-person | Introduction, Lab 0 | Ch. 1 (skim) | Intro Slides | |
Fri | Sep 3 | 2 | in-person | Numbering Systems | Ch. 2.1 | Representation Slides | Binary Exercises |
Mon | Sep 6 | 3 | in-person | Bitwise Operators | |||
Wed | Sep 8 | 4 | in-person | Integer Representations | Ch. 2.2 | Representation Exercises | |
Fri | Sep 10 | 5 | in-person | Bit Puzzles, Lab 1 | Ch. 2.3 | Bitpuzzle Exercises | |
Mon | Sep 13 | 6 | in-person | Integer Representations | Logic Exercises | ||
Wed | Sep 15 | 7 | in-person | Floating-Point Representations | Ch. 2.4 | Float Exercises | |
Fri | Sep 17 | 8 | in-person | Floating-Point, Memory | Memory Slides | ||
Mon | Sep 20 | 9 | in-person | Memory and Pointers | Pointers tutorial | Pointer Exercises | |
Wed | Sep 22 | 10 | in-person | Arrays and Strings | Array Exercises | ||
Fri | Sep 24 | 11 | in-person | Memory Allocation, Lab 2 | |||
Mon | Sep 27 | 12 | in-person | Debugging, Lab D | GDB Reference Sheet | ||
Wed | Sep 29 | 13 | in-person | Machine Code & x86-64 | Ch. 3.1-3.4 | x86-basics Slides | |
Fri | Oct 1 | 14 | in-person | Data Movement | Ch. 3.5 | Operand Exercises | |
Mon | Oct 4 | 15 | in-person | Arithmetic & Condition Codes | Ch. 3.6 | x86-control Slides | |
Wed | Oct 6 | 16 | in-person | Conditionals, Reverse Engineering | |||
Fri | Oct 8 | 17 | in-person | Loops, Lab 3 | Gdb Exercises | ||
Mon | Oct 11 | No Class: Fall Break | |||||
Wed | Oct 13 | 18 | in-person | Switches & Jump Tables | |||
Fri | Oct 15 | 19 | in-person | Procedures & Stacks | Ch. 3.7 | x86-procedures Slides | |
Mon | Oct 18 | in-person | Midterm Exam | ||||
Wed | Oct 20 | 20 | in-person | Procedure Memory | |||
Fri | Oct 22 | 21 | in-person | Arrays & Structs | Ch. 3.8-3.9 | x86-structures Slides | Multiarray Exercises |
Mon | Oct 25 | 22 | in-person | Structs & Buffer Overflows | Ch. 3.10 | Buffers Slides | |
Wed | Oct 27 | 23 | in-person | Code Injection Attacks | |||
Fri | Oct 29 | 24 | in-person | ROP Attacks, Lab 4 | |||
Mon | Nov 1 | 25 | in-person | Data Storage & Caching | Ch. 6.1 | Caching Slides | |
Wed | Nov 3 | 26 | in-person | Direct-Mapped Caches | Ch. 6.4 | ||
Fri | Nov 5 | 27 | in-person | Caching & Associativity | Caching Exercises | ||
Mon | Nov 8 | 28 | in-person | Associative Caches | Associative Exercises | ||
Wed | Nov 10 | 29 | in-person | Locality, Lab 5 | Ch. 6.2-6.3, 6.5 | ||
Fri | Nov 12 | 30 | in-person | Exceptional Control Flow | Ch. 8.1-8.2 | Process Slides | |
Mon | Nov 15 | 31 | in-person | Lab 5 Discussion | |||
Wed | Nov 17 | 32 | in-person | Process Control & Shells | Ch. 8.4 | Fork Exercises | |
Fri | Nov 19 | 33 | in-person | Signals | Ch. 8.5 | ||
Mon | Nov 22 | No Class: Thanksgiving Break | |||||
Wed | Nov 24 | No Class: Thanksgiving Break | |||||
Fri | Nov 26 | No Class: Thanksgiving Break | |||||
Mon | Nov 29 | 34 | in-person | Reaping, Lab 6 | Ch. 8.3 | ||
Wed | Dec 1 | 35 | in-person | Concurrency & Threads | |||
Fri | Dec 3 | 36 | in-person | Lab 6 Discussion | |||
Mon | Dec 6 | 37 | in-person | Virtual Memory | Ch. 9.1 | Vm-wrapup Slides | |
Wed | Dec 8 | 38 | in-person | Compilers and Linkers | |||
Fri | Dec 10 | 39 | in-person | Logic Gates & Wrap-up |