601.229 (F20): Schedule
This page lists topics, readings, and has links to lecture slides. It also lists assignment due dates.
This schedule could (and probably will) change! Changes to the schedule will be announced in class and/or on Piazza.
Unless otherwise indicated, readings are from Bryant and O’Hallaron, Computer Systems: A Programmer’s Perspective, 3rd ed. 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, binary data representation review: slides | 1.1–1.9 | |
Sep 2 | Data representation, addresses: slides | 2.1 | |
Sep 4 | Integer representation: slides | 2.2 | |
Sep 7 | Holiday, no class | ||
Sep 9 | Integer arithmetic: slides | 2.3 | |
Sep 11 | Floating point: slides | 2.4 | |
Sep 14 | Machine-level program representation: slides | 3.1–3.4 | A1 due Tues 9/15 |
Sep 16 | ALU operations, arithmetic: slides, alu.zip (example code) | 3.5 | |
Sep 18 | Control flow: slides, control.zip (example code) | 3.6 | |
Sep 21 | Procedures, stacks: slides, control2.zip (example code) | 3.7 | |
Sep 23 | Review session, Exam 1 (take-home) | ||
Sep 25 | Assembly language in class exercise: slides | ||
Sep 28 | Arrays and structs: slides, arraystruct.zip (example code) | 3.8–3.9 | A2 MS1 due Tues 9/29 |
Sep 30 | Code and data interactions, buffer overflows: slides, buf.zip (example code) | 3.10 | |
Oct 2 | Program optimization (basic techniques): see Piazza for slides | 5.1–5.8 | |
Oct 5 | Pipelines: slides | Patterson&Hennessy 4.5–4.7 | |
Oct 7 | Program optimization (ILP, memory, profiling): see Piazza for slides | 5.9–5.14 | |
Oct 9 | Memory hierarchy: slides | 6.1–6.3 | A2 MS2 due |
Oct 12 | Cache policies: slides | 6.4 | |
Oct 14 | Caches and program execution: see Piazza for slides | 6.5 | |
Oct 16 | Linking basics, symbols, relocations, executables, loading: slides | 7.1–7.9 | A3 MS1 due |
Oct 19 | Review session, Exam 2 (take-home) | ||
Oct 21 | Dynamic linking, shared libraries, PIC, interpositioning: slides, dynload.zip (example code) | 7.10–7.15 | |
Oct 23 | Fall break, no class | ||
Oct 26 | Exceptions, Processes: slides | 8.1–8.4, 8.7 | A3 MS2 due Tues 10/27 |
Oct 28 | Signals: slides, signals.zip (example code) | 8.5–8.6 | |
Oct 30 | Virtual memory: slides | 9.1–9.3 | A3 MS3 due |
Nov 2 | Memory management, address translation: slides | 9.4–9.7 | |
Nov 4 | Memory mapping, dynamic memory allocation: slides | 9.8, 9.9, 9.11 | |
Nov 6 | Unix I/O, files: slides | 10.1–10.11 | |
Nov 9 | Review session, Exam 3 (take-home) | ||
Nov 11 | Networks, Internet Protocol: slides | 11.1–11.3 | |
Nov 13 | Sockets, Application Protocols: slides, sockets.zip (example code) | 11.4 | A4 due |
Nov 16 | Network applications, HTTP: slides, webserver.zip (example code) | 11.4–11.6 | |
Nov 18 | Concurrency with processes: slides, mp_webserver.zip (example code) | 12.1 | |
Nov 20 | Concurrency with threads: slides, mt_webserver.zip (example code), mandelbrot.zip (example code) | 12.3 | A5 due |
Nov 23–27 | Thanksgiving vacation, no class | ||
Nov 30 | Thread synchronization: slides, synch.zip (example code) | 12.4–12.5 | |
Dec 2 | Concurrency with I/O multiplexing: slides, iomux.zip (example code) | 12.2 | |
Dec 4 | Parallelism, concurrency issues: slides, synch2.zip (example code) | 12.6–12.7 | |
Dec 7 | Bonus topics: slides, bonus.zip (example code) | A6 due Tues 12/8 | |
Dec 9 | Final exam review session | ||
TBD | Exam 4 (take-home, during final exam period) |