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 31 | Course overview | CSAPP 1.1–1.9 | |
| Sep 2 | Data representation, addresses | CSAPP 2.1 | |
| Sep 4 | Integer representation | CSAPP 2.2 | |
| Sep 7 | Labor day, no class | ||
| Sep 9 | Integer arithmetic | CSAPP 2.3 | A1 MS1 due |
| Sep 11 | Floating point | CSAPP 2.4 | |
| Sep 14 | Machine-level program representation, addLongs.zip (example code) | CSAPP 3.1–3.4 | |
| Sep 16 | ALU operations, arithmetic, alu.zip (example code) | CSAPP 3.5 | A1 MS2 due |
| Sep 18 | Control flow, control.zip (example code) | CSAPP 3.6 | |
| Sep 21 | Procedures, stacks, control2.zip (example code) | CSAPP 3.7 | |
| Sep 23 | Arrays and structs, arraystruct.zip (example code) | CSAPP 3.8–3.9 | |
| Sep 25 | Assembly language in class exercise | A2 MS1 due | |
| Sep 28 | Code and data interactions, buffer overflows, buf.zip (example code) | CSAPP 3.10 | |
| Sep 30 | Program optimization (basic techniques): see Canvas for slides | CSAPP 5.1–5.8 | |
| Oct 2 | Pipelines | P&H 4.5–4.7 | A2 MS2 due |
| Oct 5 | Program optimization (ILP, memory, profiling): see Canvas for slides | CSAPP 5.9–5.14 | |
| Oct 7 | Memory hierarchy | CSAPP 6.1–6.3 | |
| Oct 9 | Exam 1 review session | A2 MS3 due | |
| Oct 12 | Exam 1 (in class) | ||
| Oct 14 | Cache policies | CSAPP 6.4 | |
| Oct 16 | Caches and program execution: see Canvas for slides | CSAPP 6.5 | A3 MS1 due |
| Oct 19 | Linking basics, symbols, relocations, executables, loading | CSAPP 7.1–7.9 | |
| Oct 21 | Dynamic linking, shared libraries, PIC, interpositioning, dynload.zip (example code) | CSAPP 7.10–7.15 | |
| Oct 22–23 | WSE Fall Break, no class | ||
| Oct 26 | Exceptions, Processes | CSAPP 8.1–8.4, 8.7 | |
| Oct 28 | Signals, signals.zip (example code) | CSAPP 8.5–8.6 | |
| Oct 30 | Virtual memory | CSAPP 9.1–9.3 | A3 MS2 due |
| Nov 2 | Memory management, address translation | CSAPP 9.4–9.7 | |
| Nov 4 | Memory mapping, dynamic memory allocation | CSAPP 9.8, 9.9, 9.11 | |
| Nov 6 | Exam 2 review session | A3 MS3 due | |
| Nov 9 | Exam 2 (in class) | ||
| Nov 11 | Unix I/O, files | CSAPP 10.1–10.11 | |
| Nov 13 | Networks, Internet Protocol | CSAPP 11.1–11.3 | |
| Nov 16 | Sockets, Application Protocols, sockets.zip (example code) | CSAPP 11.4 | A4 due |
| Nov 18 | Network applications, HTTP, webclient.zip (example code), webserver.zip (example code) | CSAPP 11.4–11.6 | |
| Nov 20 | Concurrency with pthreads, mt_webserver.zip (example code) | CSAPP 12.3 | |
| Nov 23–27 | Fall Recess, no class | ||
| Nov 30 | Thread synchronization, synch.zip (example code) | CSAPP 12.4–12.5 | A5 MS1 due |
| Dec 2 | Parallelism, concurrency issues, synch2.zip (example code) | CSAPP 12.6–12.7 | |
| Dec 4 | Concurrency with processes, mp_webserver.zip (example code) | CSAPP 12.1 | |
| Dec 7 | Concurrency with I/O multiplexing, iomux.zip (example code) | CSAPP 12.2 | |
| Dec 9 | Bonus Topics | ||
| Dec 11 | Exam 3 review session | A5 MS2 due | |
| Dec 18 | Exam 3, 9 am, Location TBD |