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