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 | |
---|---|---|---|---|---|---|
Mon | Jan 22 | 1 | Introduction, Lab 0 | Ch. 1 (skim) | Intro Slides | |
Wed | Jan 24 | 2 | Numbering Systems | Ch. 2.1 | Representation Slides | Binary Exercises |
Fri | Jan 26 | 3 | Bitwise Operators | Ch. 2.2 | Bitwise Exercises | |
Mon | Jan 29 | No Class: Instructor out | ||||
Wed | Jan 31 | 4 | Integer Representations, Lab 1 | Ch. 2.3 | Representation Exercises | |
Fri | Feb 2 | 5 | Two's Complement, Bit Puzzles | Bitpuzzle Exercises | ||
Mon | Feb 5 | 6 | Integer Logic & Floating-Point | Logic Exercises | ||
Wed | Feb 7 | 7 | IEEE 754 Representation | Ch. 2.4 | Float Exercises | |
Fri | Feb 9 | 8 | Memory & Endianness | Memory Slides | ||
Mon | Feb 12 | 9 | Pointers and Arrays | Pointers tutorial | Pointer Exercises | |
Wed | Feb 14 | 10 | Arrays and Strings | Array Exercises | ||
Fri | Feb 16 | 11 | Memory Layout & Allocation, Lab 2 | Allocation Exercises | ||
Mon | Feb 19 | 12 | Debugging, Lab D | GDB Reference | ||
Wed | Feb 21 | 13 | x86-64 ISA, Data Movement | Ch. 3.1-3.4 | x86-basics Slides | |
Fri | Feb 23 | 14 | x86 Arithmetic | Ch. 3.5 | Operand Exercises | |
Mon | Feb 26 | 15 | Procedures & Condition Codes | Ch. 3.6 | x86-control Slides | Asm1 Exercises |
Wed | Feb 28 | 16 | Conditionals, Lab 3 | x86-64 Registers | ||
Fri | Mar 1 | Midterm Exam 1 | ||||
Mon | Mar 4 | 17 | Reverse Engineering & Loops | Asm2-gdb Exercises | ||
Wed | Mar 6 | 18 | Switches & Jump Tables | |||
Fri | Mar 8 | 19 | Procedures & Stacks | Ch. 3.7 | x86-procedures Slides | Procedures Exercises |
Mon | Mar 11 | No Class: Spring Break | ||||
Wed | Mar 13 | No Class: Spring Break | ||||
Fri | Mar 15 | No Class: Spring Break | ||||
Mon | Mar 18 | No Class: Spring Break | ||||
Wed | Mar 20 | No Class: Spring Break | ||||
Fri | Mar 22 | No Class: Spring Break | ||||
Mon | Mar 25 | No Class: Weather | ||||
Wed | Mar 27 | 20 | Stack Vars & Saved Registers | |||
Fri | Mar 29 | 21 | Arrays & Structs | Ch. 3.8-3.9 | x86-structures Slides | Struct Exercises |
Mon | Apr 1 | 22 | Buffer Overflows | Ch. 3.10 | Buffers Slides | |
Wed | Apr 3 | 23 | Code Injection Attacks, Lab 4 | |||
Fri | Apr 5 | 24 | Return-Oriented Programming | Overflow Exercises | ||
Mon | Apr 8 | No Class: Eclipse! | ||||
Wed | Apr 10 | 25 | Caching & Cache Designs | Ch. 6.1 | Caching Slides | |
Fri | Apr 12 | 26 | Direct-Mapped Caches | Ch. 6.4 | Caching Exercises | |
Mon | Apr 15 | Midterm Exam 2 | ||||
Wed | Apr 17 | 27 | Associative Caches, Lab 5 | Associative Exercises | ||
Fri | Apr 19 | No Class: Instructor away | ||||
Mon | Apr 22 | 28 | Locality & The Memory Hierarchy | Ch. 6.2-6.3, 6.5 | ||
Wed | Apr 24 | 29 | Processes & Exceptional Control Flow | Ch. 8.1-8.2 | Process Slides | |
Fri | Apr 26 | 30 | Process Management | Fork Exercises | ||
Mon | Apr 29 | 31 | Process Control & Shells, Lab 6 | Ch. 8.3 | ||
Wed | May 1 | 32 | Signals & Zombies | Ch. 8.4-8.5 | Shell Exercises | |
Fri | May 3 | 33 | Reaping & Concurrency | |||
Mon | May 6 | 34 | Threads & Lab 6 Discussion | |||
Wed | May 8 | 35 | Virtual Memory & Wrap-up | Ch. 9.1 | Vm-wrapup Slides |