601.229 (S23): 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 Courselore.

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