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