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