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