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