Main navigation | Main content
Week | Date | Topics | Readings | Assignments due |
---|---|---|---|---|
1 | 01/20 Mo | No class, Martin Luther King Jr. Day | ||
01/22 We | Introduction | 1.1–1.10 | ||
01/24 Fr | C Basics 1 | CTut 1–8, 14 | ||
2 | 01/27 Mo | C Basics 2 | CTut 10–11, 20 | |
01/29 We | C Basics 3 | CTut 9, 15, 21 | ||
01/31 Fr | Data representation 1 | 2.1 | ||
3 | 02/03 Mo | Data representation 2 | 2.2 | |
02/05 We | Data representation 3 | 2.3 | ||
02/07 Fr | Data representation 4 | 2.4 | ||
4 | 02/10 Mo | Machine-level code 1 | 3.1–3.5 | |
02/12 We | Machine-level code 2 | 3.6 | Problem set 1 due | |
02/14 Fr | Machine-level code 3 | 3.6, cont'd | ||
5 | 02/17 Mo | Machine-level code 4 | 3.7 | |
02/19 We | Machine-level code 5 | Project 1 due | ||
02/21 Fr | Midterm 1 review | |||
6 | 02/24 Mo | Midterm 1 in class | ||
02/26 We | Machine-level code 6 | 3.7, cont'd | Problem set 2 due | |
02/28 Fr | Machine-level code 7 | 3.7, cont'd | ||
7 | 03/02 Mo | Data structures and memory 1 | 3.8–3.9 | Project 2 due |
03/04 We | Data structures and memory 2 | 3.10 | ||
03/06 Fr | Data structures and memory 3 | 9.11 | ||
03/09 Mo | 03/09 - 03/13: Spring Break, no classes | |||
8 | 03/16 Mo | CPU architecture 1 | 4.1 | |
03/18 We | CPU architecture 2 | 4.2 | Problem set 3 due | |
03/20 Fr | CPU architecture 3 | 4.3 | ||
9 | 03/23 Mo | CPU architecture 4 | 4.4–4.5 | |
03/25 We | Implementing dynamic allocation 1 | 9.9.0–9.9.5 | ||
03/27 Fr | Implementing dynamic allocation 2 | 9.9.6–9.9.14 | Project 3 due | |
10 | 03/30 Mo | Caches 1 | 6.1–6.3 | |
04/01 We | Caches 2 | 6.4 | Problem set 4 due | |
04/03 Fr | Caches 3 | 6.4, cont'd | ||
11 | 04/06 Mo | Optimization 1 | 5.1–5.3 | |
04/08 We | Midterm 2 review | |||
04/10 Fr | Midterm 2 in class | |||
12 | 04/13 Mo | Optimization 2 | 5.1–5.3 | |
04/15 We | Optimization 3 | 5.4–5.6, 5.13–5.14 | ||
04/17 Fr | Optimization 4 | 6.5–6.6 | Project 4 due | |
13 | 04/20 Mo | Virtual memory 1 | 9.1–9.3 | |
04/22 We | Virtual memory 2 | 9.6–9.7 | ||
04/24 Fr | Virtual memory 3 | 9.4–9.5, 8.1–8.2 | ||
14 | 04/27 Mo | Side channel vulnerabilities | Optional details: 1, 2, 3 | |
04/29 We | Linking 1 | 7.1–7.9 | Problem set 5 due | |
05/01 Fr | Linking 2 | 7.10–7.15 | ||
15 | 05/04 Mo | Last lecture, final exam review | ||
16 | 05/13 We | Final exam, 8:00–10:00am |
Readings shown with only a section number are from the primary textbook: Computer Systems: A Programmer's Perspective, third edition, by Randal Bryant and David O'Hallaron.
"CTut" in the readings refers to The GNU C Programming Tutorial, edition 4.1, by Mark Burgess and Ron Hale-Evans. Feel free to substitute a different C language book if you prefer it; we've given reading suggestions from this one because it is free (in both the "free speech" and "free beer" senses). The PDF version of the tutorial is available here, and the Texinfo source is here.