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