Schedule
The schedule will remain tentative all term.
“Scribe notes” were produced by students (note taking schedule), and may be incomplete or wrong (although we certainly hope they're awesome). “Thoughts” are instructors’ supplementary notes on the lecture; these will not necessarily be comprehensible on their own (they might build on, or go beyond, actual lecture material). You can view the schedule for scribe note assignments here.
Recommended readings are generally from the textbook, CS:APP2e. The first edition often has comparable readings; we give section titles to help you match them up.
Date |
# |
Topic |
Recommended reading |
Notes |
---|---|---|---|---|
T 9/2 |
1 |
Course overview: Robustness |
||
W 9/3 |
Assignment 1 released |
|||
R 9/4 |
2 |
UNIT I. FUNDAMENTALS |
1 A Tour of Computer Systems- |
|
T 9/9 |
3 |
Data representation |
2.1 Information Storage (2.1–2.1.6) |
|
R 9/11 |
4 |
Representation of collections |
9.9 Dynamic Memory Allocation, through 9.9.4 Fragmentation |
|
F 9/12 |
Assignment 1 intermediate due date |
|||
T 9/16 |
5 |
Storage duration and dynamic allocation |
9.9 Dynamic Memory Allocation, from 9.9.5 Implementation Issues |
|
R 9/18 |
6 |
Fixed-size arena allocation |
9.10 Garbage Collection |
|
F 9/19 |
Assignment 1 due |
|||
T 9/23 |
7 |
Garbage collection II |
2.1.7–2.1.10 Introduction to Boolean Algebra, etc. |
|
W 9/3 |
Assignment 2 released |
|||
R 9/25 |
8 |
Caching, prefetching, buffer cache |
6.1 Storage technologies |
|
T 9/30 |
9 |
Cache model |
10 System I/O (but not 10.4) |
|
R 10/2 |
10 |
Eviction policies |
6.4 Cache Memories |
|
F 10/3 |
Assignment 2 intermediate checkin |
|||
T 10/7 |
— |
No class |
||
R 10/9 |
11 |
UNIT III. MACHINE PROGRAMMING |
3 through 3.5 Arithmetic and Logical Operations |
|
F 10/10 |
Assignment 2 due |
|||
T 10/14 |
12 |
Control flow instructions and calling convention |
3.12 Out-of-Bounds Memory References |
|
R 10/16 |
— |
Midterm (in class) |
||
T 10/21 |
13 |
Control flow instructions |
8.2 Processes |
|
R 10/23 |
14 |
Calling convention |
9.3 VM as a Tool for Caching |
|
F 10/24 |
Assignment 3 due |
|||
T 10/28 |
15 |
UNIT IV. KERNEL PROGRAMMING |
||
R 10/30 |
16 |
Privilege, exceptional control flow, virtual memory I |
||
T 11/4 |
17 |
Virtual memory II |
||
R 11/6 |
18 |
Fork, advanced virtual memory |
N/A |
|
F 11/7 |
Assignment 4 due |
|||
T 11/11 |
19 |
UNIT V. PROCESS MANAGEMENT |
5 Optimizing Program Performance, particularly 5.1-5.6, 5.13-5.14 |
|
R 11/13 |
20 |
Inter-process communication, pipes |
N/A |
|
T 11/18 |
21 |
Process interruption: signals |
11 Network Programming through 11.2 |
|
R 11/20 |
22 |
UNIT VI. CONCURRENCY |
12 Concurrent Programming through 12.2 |
|
F 11/21 |
Assignment 5 due |
|||
T 11/25 |
23 |
Threaded parallelism |
12.3 Concurrent Programming with Threads, 12.4, 12.6, 12.7 |
|
R 11/27 |
— |
Thanksgiving holiday |
||
T 12/2 |
24 |
Advanced concurrency |
N/A |
|
W 12/3 |
Assignment 6 “due” (in reading week) |