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 | Topic | Readings | Slides | Exercises | |
---|---|---|---|---|---|---|
Thu | Aug 31 | 1 | Introduction, Lab 0 | Ch. 1 (skim) | Intro Slides | |
Fri | Sep 1 | 2 | Numbering Systems | Ch. 2.1 | Representation Slides | Binary Exercises |
Tue | Sep 5 | 3 | Bitwise Operators | Ch. 2.2 | Bitwise Exercises | |
Thu | Sep 7 | 4 | Integer Representations | Ch. 2.3 | Representation Exercises | |
Fri | Sep 8 | 5 | Bit Puzzles, Lab 1 | Bitpuzzle Exercises | ||
Tue | Sep 12 | 6 | Bit Puzzles & Integer Logic | Logic Exercises | ||
Thu | Sep 14 | 7 | Floating-Point Numbers | Ch. 2.4 | Float Exercises | |
Fri | Sep 15 | 8 | Memory & Pointers | Memory Slides | ||
Tue | Sep 19 | 9 | Pointers | Pointers tutorial | Pointer Exercises | |
Thu | Sep 21 | 10 | Arrays and Strings | Array Exercises | ||
Fri | Sep 22 | 11 | Memory Layout & Segments, Lab 2 | |||
Tue | Sep 26 | 12 | Heap Allocation & Deallocation | Allocation Exercises | ||
Thu | Sep 28 | 13 | Debugging, Lab D | GDB Reference | ||
Fri | Sep 29 | 14 | x86-64 ISA, Data Movement | Ch. 3.1-3.4 | x86-basics Slides | |
Tue | Oct 3 | 15 | x86 Arithmetic | Ch. 3.5 | Operand Exercises | |
Thu | Oct 5 | 16 | Procedures & Condition Codes | Ch. 3.6 | x86-control Slides | Assembly1 Exercises |
Fri | Oct 6 | No Class: Instructor away | ||||
Tue | Oct 10 | No Class: Fall Break | ||||
Thu | Oct 12 | 17 | Conditionals, Lab 3 | x86-64 Registers | ||
Fri | Oct 13 | Midterm Exam 1 | ||||
Tue | Oct 17 | 18 | Loops | Gdb-asm Exercises | ||
Thu | Oct 19 | 19 | Switches & Jump Tables | |||
Fri | Oct 20 | 20 | Procedures & Stacks | Ch. 3.7 | x86-procedures Slides | |
Tue | Oct 24 | 21 | Procedure Memory | Procedures Exercises | ||
Thu | Oct 26 | No Class: Canceled | ||||
Fri | Oct 27 | 22 | Arrays & Structs | Ch. 3.8-3.9 | x86-structures Slides | |
Tue | Oct 31 | 23 | Buffer Overflows, Lab 4 | Ch. 3.10 | Buffers Slides | |
Thu | Nov 2 | 24 | Code Injection Attacks | |||
Fri | Nov 3 | 25 | Return-Oriented Programming | Overflow Exercises | ||
Tue | Nov 7 | 26 | Caching & Cache Designs | Ch. 6.1 | Caching Slides | |
Thu | Nov 9 | 27 | Direct-Mapped Caches | Ch. 6.4 | Caching Exercises | |
Fri | Nov 10 | 28 | Associative Caches, Lab 5 | Associative Exercises | ||
Tue | Nov 14 | Midterm Exam 2 | ||||
Thu | Nov 16 | 29 | Locality & The Memory Hierarchy | Ch. 6.2-6.3, 6.5 | ||
Fri | Nov 17 | 30 | Processes & Exceptional Control Flow | Ch. 8.1-8.2 | Process Slides | |
Tue | Nov 21 | 31 | Process Management | Fork Exercises | ||
Thu | Nov 23 | No Class: Thanksgiving Break | ||||
Fri | Nov 24 | No Class: Thanksgiving Break | ||||
Tue | Nov 28 | 32 | Process Control & Shells, Lab 6 | Ch. 8.3 | ||
Thu | Nov 30 | 33 | Signals & Zombies | Ch. 8.4-8.5 | Shell Exercises | |
Fri | Dec 1 | 34 | Reaping & Concurrency | |||
Tue | Dec 5 | 35 | Lab 6 Discussion | |||
Thu | Dec 7 | 36 | Threads & Virtual Memory | Ch. 9.1 | Vm-wrapup Slides | |
Fri | Dec 8 | 37 | Virtual Memory & Wrap-up |