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 | |
---|---|---|---|---|---|---|---|
Mon | Feb 8 | 1 | remote | Introduction, Lab 0 | Ch. 1 (skim) | Intro Slides | |
Wed | Feb 10 | 2 | remote | Numbering Systems | Ch. 2.1 | Representation Slides | |
Fri | Feb 12 | 3 | remote | Bitwise Operators | Binary Exercises | ||
Mon | Feb 15 | 4 | remote | Integer Representations | Ch. 2.2 | ||
Wed | Feb 17 | 5 | in-person | Integer Representations, Lab 1 | Representation Exercises | ||
Fri | Feb 19 | 6 | in-person | Integer Representations | Ch. 2.3 | Bitpuzzle Exercises | |
Mon | Feb 22 | 7 | in-person | Floating-Point Representations | Ch. 2.4 | Logic Exercises | |
Wed | Feb 24 | 8 | in-person | Floating-Point Representations | Float Exercises | ||
Fri | Feb 26 | 9 | in-person | Memory and Pointers | Pointers tutorial | Memory Slides | |
Mon | Mar 1 | 10 | in-person | Pointers and Arrays | Pointer Exercises | ||
Wed | Mar 3 | 11 | remote | Strings, Lab 2 | |||
Fri | Mar 5 | 12 | in-person | Memory Allocation | |||
Mon | Mar 8 | 13 | in-person | Debugging, Lab D | |||
Wed | Mar 10 | 14 | in-person | x86-64 ISA, Data Movement | Ch. 3.1-3.4 | x86-basics Slides | |
Fri | Mar 12 | 15 | in-person | x86 Arithmetic | Ch. 3.5 | Operand Exercises | |
Mon | Mar 15 | 16 | in-person | Condition Codes & Conditionals | Ch. 3.6 | x86-control Slides | |
Wed | Mar 17 | 17 | in-person | Reverse Engineering, Lab 3 | GDB Reference | ||
Fri | Mar 19 | in-person | Midterm Exam | ||||
Mon | Mar 22 | No Class: Spring Break | |||||
Wed | Mar 24 | 18 | in-person | Loops & Switches | |||
Fri | Mar 26 | 19 | in-person | Jump Tables | |||
Mon | Mar 29 | 20 | in-person | Procedures & Stacks | Ch. 3.7 | x86-procedures Slides | |
Wed | Mar 31 | 21 | in-person | Procedure Memory | |||
Fri | Apr 2 | 22 | in-person | Arrays & Structs | Ch. 3.8-3.9 | x86-structures Slides | Array Exercises |
Mon | Apr 5 | 23 | remote | Structs & Buffer Overflow | Ch. 3.10 | Buffers Slides | |
Wed | Apr 7 | 24 | remote | Code Injection Attacks | |||
Fri | Apr 9 | 25 | remote | Buffer Overflow Defenses | |||
Mon | Apr 12 | 26 | in-person | ROP Attacks, Lab 4 | |||
Wed | Apr 14 | 27 | in-person | Caching & Cache Designs | Ch. 6.1 | Caching Slides | |
Fri | Apr 16 | 28 | in-person | Direct-Mapped Caches | Ch. 6.4 | Caching Exercises | |
Mon | Apr 19 | 29 | in-person | Associative Caches | Associative Exercises | ||
Wed | Apr 21 | 30 | in-person | Locality, Lab 5 | Ch. 6.2-6.3, 6.5 | ||
Fri | Apr 23 | 31 | in-person | Processes | Ch. 8.2 | Process Slides | |
Mon | Apr 26 | 32 | in-person | Exceptional Control Flow | Ch. 8.1 | ||
Wed | Apr 28 | 33 | in-person | Process Control & Shells | Ch. 8.3 | Fork Exercises | |
Fri | Apr 30 | 34 | in-person | Lab 5 Discussion | |||
Mon | May 3 | 35 | in-person | Process Control | Ch. 8.4 | ||
Wed | May 5 | 36 | in-person | Signals | Ch. 8.5 | ||
Fri | May 7 | 37 | in-person | Concurrency & Threads | |||
Mon | May 10 | 38 | in-person | Lab 6 Discussion | |||
Wed | May 12 | 39 | in-person | Virtual Memory | Ch. 9.1 | Vm-wrapup Slides | |
Fri | May 14 | 40 | in-person | Virtual Memory, Lab 6 | |||
Mon | May 17 | 41 | in-person | Beyond 2330 & Wrap-up |