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