| Date | Material Covered | Reading | Problem Set | Out | Due | |
|---|---|---|---|---|---|---|
| WEEK 1 | ||||||
| Mo | 8/20 | Administrative details, Course overview | Chapter 1 | PS 1 (solutions) | ||
| We | 8/22 | Information storage (code) | 2.1 | PS 2: 2.61-2.62, submit .c file(s) | Lab 1 | |
| WEEK 2 | ||||||
| Mo | 8/27 | Representing integers (code) | 2.2-2.3 | PS 3: 2.71, 2.76, 2.81 (.pdf) | ||
| We | 8/29 | Representing floats | 2.4-2.5 | PS 4: 2.83 (.c) hint, 2.86 and 2.88 (.pdf) | ||
| WEEK 3 | ||||||
| Mo | 9/3 | No class -- Labor Day | ||||
| We | 9/5 | x86 machine model | 3.1-3.5 | PS 5 | ||
| WEEK 4 | ||||||
| Mo | 9/10 | Representing control flow, GDB | 3.6, 3.11 | PS 6 | Lab 2 | Lab 1 |
| We | 9/12 | Representing procedures | 3.7 | PS 7 | ||
| WEEK 5 | ||||||
| Mo | 9/17 | Array allocation and access (extra slides, notes) | 3.8 | PS 8: 3.62-3.63 (.pdf) hint errata | ||
| We | 9/19 | Structures, Buffer overflow | 3.9-3.10, 3.12-3.13 | PS 9: 3.64-3.65 (.pdf) | ||
| WEEK 6 | ||||||
| Mo | 9/24 | Review for midterm exam 1 (sample exam, solns, slides) | Lab 3 | Lab 2 | ||
| We | 9/26 | Midterm exam 1 | ||||
| WEEK 7 | ||||||
| Mo | 10/1 | Optimization (code) | 5.1-5.8 | PS10: 5.15-5.16 (.pdf) | ||
| We | 10/3 | More on optimization | 5.9-5.15 | PS11: 5.17, 5.22 (.pdf) | ||
| WEEK 8 | ||||||
| Mo | 10/8 | No class – Fall Break | ||||
| We | 10/10 | No class – Fall Break | ||||
| WEEK 9 | ||||||
| Mo | 10/15 | Memory hierarchy, Locality, Caches (cachegrind) | 6.1-6.4 | PS 12: 6.28, 6.31-6.32 (.pdf) | Lab 4 | Lab 3 |
| We | 10/17 | Writing cache-friendly code (extra slides) | 6.5-6.7 | PS 13: 6.36, 6.39-6.41 (.pdf) | ||
| WEEK 10 | ||||||
| Mo | 10/22 | Linking | 7.1-7.6 | PS 14: 7.6-7.8 (.pdf) | ||
| We | 10/24 | More on linking | 7.7-7.14 | PS 15: 7.9-7.11 (.pdf) | ||
| WEEK 11 | ||||||
| Mo | 10/29 | Exceptions, Process control | 8.1-8.4 | PS16: 8.13-8.15 (.pdf) | Lab 5 | Lab 4 |
| We | 10/31 | Signals (code) | 8.5-8.8 | PS17: 8.10, 8.16, 8.18 (.pdf) | ||
| WEEK 12 | ||||||
| Mo | 11/5 | Review for midterm exam 2 (sample exam, solns, notes) | ||||
| We | 11/7 | Midterm exam 2 | ||||
| WEEK 13 | ||||||
| Mo | 11/12 | Virtual memory (code) | 9.1-9.7 | PS 18: 9.11-9.13 (.pdf) | ||
| We | 11/15 | Dynamic memory allocation | 9.9 | PS 19 | Lab 6 | |
| WEEK 14 | ||||||
| Mo | 11/19 | More on malloc | 9.9 | PS 20 | Lab 5 | |
| We | 11/21 | Garbage collection, Memory-related bugs (extra slides) | 9.10-9.12 | |||
| WEEK 15 | ||||||
| Mo | 11/26 | Network programming (extra slides, code) | Chapter 11 (skim) | PS 22 | ||
| We | 11/28 | Concurrent programming | 12.1-12.4 | PS 23: 12.16 (.c), 12.17 (.pdf) | ||
| WEEK 16 | ||||||
| Mo | 12/3 | Semaphores, Concurrency issues | 12.5-12.8 | PS 24: 12.25, 12.28-12.29 (.pdf) | ||
| We | 12/5 | Review for final exam (sample exam, solns, slides) | Lab 6 | |||