601.229 (S20): Schedule
This page lists readings and homework/assignment due dates.
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 |
---|---|---|
Week 1 (Jan 27–31) | Course overview, binary data representation review: slides | 1.1–1.9 |
Data representation, addresses: slides | 2.1 | |
Integer representation: slides | 2.2 | |
Week 2 (Feb 3–7) | Integer arithmetic: slides | 2.3 |
Floating point: slides | 2.4 | |
Machine-level program representation: slides | 3.1–3.4 | |
Week 3 (Feb 10–14) | ALU operations, arithmetic: slides, alu.zip (example code) | 3.5 |
Control flow: slides, control.zip (example code) | 3.6 | |
Procedures, stacks: slides, control2.zip (example code) | 3.7 | |
Week 4 (Feb 17–21) | Assembly language in-class exercise, solution | |
Arrays and structs: slides, arraystruct.zip (example code) | 3.8–3.9 | |
Code and data interactions, buffer overflows: slides, buf.zip (example code) | 3.10 | |
Week 5 (Feb 24–28) | Program optimization (basic techniques): see Piazza for slides | 5.1–5.8 |
Pipelines: slides | Patterson&Hennessy 4.5–4.7 | |
Program optimization (ILP, memory, profiling): see Piazza for slides | 5.9–5.14 | |
Week 6 (Mar 2–6) | Memory hierarchy: slides | 6.1–6.3 |
Caches: slides | 6.4 | |
Midterm exam review | ||
Week 7 (Mar 9–13) | Midterm exam (March 9th) | |
two classes canceled | ||
Week 8 (Mar 16–20) | Spring break, no class | |
Optional dry run of online class meeting: slides | ||
Week 9 (Mar 23–27) | Caches and program execution: see Piazza for slides | 6.5 |
Linking basics, symbols, relocations, executables, loading: slides | 7.1–7.9 | |
Dynamic linking, shared libraries, PIC, interpositioning: slides, dynload.zip (example code) | 7.10–7.15 | |
Week 10 (Mar 30–Apr 3) | Exceptions, Processes: slides | 8.1–8.4, 8.7 |
Signals: slides, signals.zip (example code) | 8.5–8.6 | |
Virtual memory: slides | 9.1–9.3 | |
Week 11 (Apr 6–10) | Memory management, address translation: slides | 9.4–9.7 |
Memory mapping, dynamic memory allocation: slides | 9.8, 9.9, 9.11 | |
Unix I/O, files: slides | 10.1–10.11 | |
Week 12 (Apr 13–17) | Networks, Internet Protocol: slides | 11.1–11.3 |
Sockets, Application Protocols: slides, sockets.zip (example code) | 11.4 | |
Network applications, HTTP: slides, webserver.zip (example code), webclient.zip (example code) | 11.4–11.6 | |
Week 13 (Apr 20–24) | Concurrency with processes: slides, mp_webserver.zip (example code) | 12.1 |
Concurrency with threads: slides, mt_webserver.zip (example code), mandelbrot.zip (example code) | 12.3 | |
Thread synchronization: slides, synch.zip (example code) | 12.4–12.5 | |
Week 14 (Apr 27–May 1) | Concurrency with I/O multiplexing: slides, iomux.zip (example code) | 12.2 |
Parallelism, concurrency issues: slides, synch2.zip (example code) | 12.6–12.7 | |
Final exam review |