Schedule
    This page lists topics, readings, and has links to lecture slides. It also lists assignment due dates. Items in gray italic are tentative.
This schedule could change! Changes to the schedule will be announced in class and/or on Courselore.
Readings are from:
- CSAPP: Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, 3rd ed.
- P&H: Patterson and Hennessy, Computer Organization and Design (MIPS edition)
CSAPP is by far the more important of the two textbooks.
Important: do the reading before you come to class.
The links to slides are provided for reference. In general, there is no guarantee that they will be posted before class, or that their content will not change.
| Date | Topic/Slides | Reading | Assignment | 
|---|---|---|---|
| Aug 25 | Course overview | CSAPP 1.1–1.9 | |
| Aug 27 | Data representation, addresses | CSAPP 2.1 | |
| Aug 29 | Integer representation | CSAPP 2.2 | |
| Sep 1 | University holiday, no class | ||
| Sep 3 | Integer arithmetic | CSAPP 2.3 | A1 MS1 due | 
| Sep 5 | Floating point | CSAPP 2.4 | |
| Sep 8 | Machine-level program representation, addLongs.zip (example code) | CSAPP 3.1–3.4 | |
| Sep 10 | ALU operations, arithmetic, alu.zip (example code) | CSAPP 3.5 | A1 MS2 due | 
| Sep 12 | Control flow, control.zip (example code) | CSAPP 3.6 | |
| Sep 15 | Procedures, stacks, control2.zip (example code) | CSAPP 3.7 | |
| Sep 17 | Arrays and structs, arraystruct.zip (example code) | CSAPP 3.8–3.9 | |
| Sep 19 | Assembly language in class exercise | A2 MS1 due | |
| Sep 22 | Code and data interactions, buffer overflows, buf.zip (example code) | CSAPP 3.10 | |
| Sep 24 | Program optimization (basic techniques): see Canvas for slides | CSAPP 5.1–5.8 | |
| Sep 26 | Pipelines | P&H 4.5–4.7 | A2 MS2 due | 
| Sep 29 | Program optimization (ILP, memory, profiling): see Canvas for slides | CSAPP 5.9–5.14 | |
| Oct 1 | Memory hierarchy | CSAPP 6.1–6.3 | |
| Oct 3 | Exam 1 review session | A2 MS3 due | |
| Oct 6 | Exam 1 (in class) | ||
| Oct 8 | Cache policies | CSAPP 6.4 | |
| Oct 10 | Caches and program execution: see Canvas for slides | CSAPP 6.5 | A3 MS1 due | 
| Oct 13 | Linking basics, symbols, relocations, executables, loading | CSAPP 7.1–7.9 | |
| Oct 15 | Dynamic linking, shared libraries, PIC, interpositioning, dynload.zip (example code) | CSAPP 7.10–7.15 | |
| Oct 16–17 | WSE Fall Break, no class | ||
| Oct 20 | Exceptions, Processes | CSAPP 8.1–8.4, 8.7 | |
| Oct 22 | Signals, signals.zip (example code) | CSAPP 8.5–8.6 | |
| Oct 24 | Virtual memory | CSAPP 9.1–9.3 | A3 MS2 due | 
| Oct 27 | Memory management, address translation | CSAPP 9.4–9.7 | |
| Oct 29 | Memory mapping, dynamic memory allocation | CSAPP 9.8, 9.9, 9.11 | |
| Oct 31 | Exam 2 review session | A3 MS3 due | |
| Nov 3 | Exam 2 (in class) | ||
| Nov 5 | Unix I/O, files | CSAPP 10.1–10.11 | |
| Nov 7 | Networks, Internet Protocol | CSAPP 11.1–11.3 | |
| Nov 10 | Sockets, Application Protocols, sockets.zip (example code) | CSAPP 11.4 | |
| Nov 12 | Network applications, HTTP, webclient.zip (example code), webserver.zip (example code) | CSAPP 11.4–11.6 | |
| Nov 14 | Concurrency with pthreads, mt_webserver.zip (example code) | CSAPP 12.3 | |
| Nov 17 | Thread synchronization, synch.zip (example code) | CSAPP 12.4–12.5 | |
| Nov 19 | Parallelism, concurrency issues, synch2.zip (example code) | CSAPP 12.6–12.7 | |
| Nov 21 | Concurrency with processes, mp_webserver.zip (example code) | CSAPP 12.1 | |
| Nov 24–28 | Fall Recess, no class | ||
| Dec 1 | Concurrency with I/O multiplexing, iomux.zip (example code) | CSAPP 12.2 | |
| Dec 3 | Bonus topics (TBD) | ||
| Dec 5 | Exam 3 review session | ||
| Dec 18 | Exam 3, 9 am, location TBD |