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