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