601.229 (F20): Schedule

This page lists topics, readings, and has links to lecture slides. It also lists assignment due dates.

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