601.229 (F21): Schedule

This page lists topics, readings, and has links to lecture slides. It also lists assignment due dates. Dates in gray are tentative.

This schedule could (and probably will) change! Changes to the schedule will be announced in class and/or on Campuswire.

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