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