601.229 (F22): 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 (and probably will) change! Changes to the schedule will be announced in class and/or on Piazza.

Readings are from:

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