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 | ||
---|---|---|---|---|---|
Thu | Sep 5 | 1 | Introduction | Ch. 1 (skim), intro-slides.pdf | |
Fri | Sep 6 | L0 | Unix Warmup | ||
Tue | Sep 10 | 2 | Bits and Binary | Ch. 2.1, representation-slides.pdf, binary-exercises.pdf | |
Thu | Sep 12 | 3 | Integer Representations | Ch. 2.2, representation-slides.pdf, representation-exercises.pdf | |
Fri | Sep 13 | L1 | A Bit Puzzling | ||
Tue | Sep 17 | 4 | Integer Representations | Ch. 2.3, representation-slides.pdf, logic-exercises.pdf | |
Thu | Sep 19 | 5 | Floating-Point Representations | Ch. 2.4, representation-slides.pdf, float-exercises.pdf | |
Fri | Sep 20 | L1 | A Bit Puzzling (cont) | ||
Tue | Sep 24 | 6 | Memory and Pointers | memory-slides.pdf, C Pointers & Memory tutorial | |
Thu | Sep 26 | 7 | Pointers, Arrays, and Strings | memory-slides.pdf, stringtest.c, pointer-exercises.pdf | |
Fri | Sep 27 | 8 | Memory Allocation | memory-slides.pdf, pointertest.c | |
Tue | Oct 1 | 9 | Debugging Mini-Lab | ||
Thu | Oct 3 | L2 | Programming Pointers | ||
Fri | Oct 4 | 10 | x86-64 ISA, Data Movement | Ch. 3.1-3.4, x86-basics-slides.pdf | |
Tue | Oct 8 | 11 | x86 Arithmetic | Ch. 3.5, x86-basics-slides.pdf, mov-exercises.pdf | |
Thu | Oct 10 | 12 | Condition Codes & Conditionals | Ch. 3.6, x86-control-slides.pdf | |
Fri | Oct 11 | L3 | BitBombs | x86-registers.pdf, gdb-reference.pdf | |
Tue | Oct 15 | No Class: Fall Break | |||
Thu | Oct 17 | No Class: Weather | |||
Fri | Oct 18 | 13 | Loops & Switches | x86-control-slides.pdf | |
Tue | Oct 22 | Midterm Exam | |||
Thu | Oct 24 | 14 | Procedures & Stacks | Ch. 3.7, x86-procedures-slides.pdf | |
Fri | Oct 25 | 15 | Saved Registers & Arrays | Ch. 3.8, x86-structures-slides.pdf, array-exercises.pdf | |
Tue | Oct 29 | 16 | Structs | Ch. 3.9, x86-structures-slides.pdf | |
Thu | Oct 31 | L3 | BitBombs (cont) | ||
Fri | Nov 1 | 17 | Buffer Overflow & Code Injection | Ch. 3.10, buffers-slides.pdf | |
Tue | Nov 5 | 18 | Return-Oriented Programming | buffers-slides.pdf | |
Thu | Nov 7 | L4 | Byte Stacker | ||
Fri | Nov 8 | 19 | Caching & Cache Designs | Ch. 6.1, caching-slides.pdf | |
Tue | Nov 12 | 20 | Direct-Mapped Caches | Ch. 6.4, caching-slides.pdf, caching-exercises.pdf | |
Thu | Nov 14 | 21 | Associative Caches & Locality | Ch. 6.2-6.3, 6.5, caching-slides.pdf, associative-exercises.pdf | |
Fri | Nov 15 | L5 | Make Some Cache | ||
Tue | Nov 19 | 22 | Exceptional Control Flow | Ch. 8.1-8.3, process-slides.pdf | |
Thu | Nov 21 | 23 | Processes & Shells | process-slides.pdf, fork-exercises.pdf | |
Fri | Nov 22 | L5 | Make Some Cache (cont) | ||
Tue | Nov 26 | 24 | Process Control | Ch. 8.4, process-slides.pdf | |
Thu | Nov 28 | No Class: Thanksgiving Break | |||
Fri | Nov 29 | No Class: Thanksgiving Break | |||
Tue | Dec 3 | 25 | Signals | Ch. 8.5, process-slides.pdf | |
Thu | Dec 5 | 26 | Concurrency | process-slides.pdf | |
Fri | Dec 6 | L6 | The Bowdoin Shell | ||
Tue | Dec 10 | 27 | Virtual Memory & Wrap-up | Ch. 9.1, vm-wrapup-slides.pdf |