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