The following course schedule is TENTATIVE and subject to change. Readings are taken from Computer Systems: A programmer's Perspective, 3rd edition by Bryant and O'Hallaron.
Class # | Date | Lecture Topics | Book Readings |
---|---|---|---|
1 | 1/27 | Administrative & Overview | 1 |
2 | 1/29 | Revision control, git | |
3 | 2/3 | Revision control, git (cont.) | 5 |
6 | 2/5 | Linking and Loading | 7 |
7 | 2/10 | Linking and loading | |
4 | 2/12 | Profiling and Optimization | |
5 | 2/14 | Profiling and Optimization | |
8 | 2/19 | Debugging (tentative) | |
9 | 2/24 | Dynamic memory allocation (basic concepts) | 9.9-9.11 |
10 | 2/26 | Dynamic memory allocation (implementation techniques) | |
11 | 3/3 | Dynamic memory allocation (example) | |
12 | 3/5 | Exceptional control flow, processes | 8.1-8.4 |
13 | 3/10 | Exceptional control flow, processes | |
14 | 3/12 | Exceptional control flow, processes | |
3/17 | Fall Break (no class) | ||
3/19 | Fall Break (no class) | ||
15 | 3/24 | Signals, signal handlers | 8.5-8.8 |
16 | 3/26 | Async-signal-safety, waiting for signals, nonlocal jumps | 10.1-10.4 |
17 | 3/31 | Async-signal-safety, waiting for signals, nonlocal jumps | 10.6-10.12 |
18 | 4/2 | Midterm Exam | |
19 | 4/7 | System-level I/O: Unix I/O, Unix file system concepts | 11.1-11.4 |
20 | 4/9 | System-level I/O: File descriptors, sharing files, pipes, redirection | |
21 | 4/14 | Concurrent programming -- Motivation (via network servers) | 12.1-12.3 |
22 | 4/16 | Concurrent Programming - Overview of threads | 12.4-12.8 |
23 | 4/21 | Synchronization: Bounded buffer, Readers & Writers | |
24 | 4/23 | Synchronization: Race conditions, mutual exclusion, semaphores, mutexes | |
25 | 4/28 | Thread safety, races, deadlocks | |
26 | 4/30 | Memory hierarchy, cache concepts | 6 |
27 | 5/5 | Cache memories | 9.1-9.8 |
28 | 5/7 | Virtual memory concepts | |
5/16 | Final Exam (L02) (11:15 am -- 1:45 pm) | ||
5/21 | Final Exam (L01) (8:00 am -- 10:30 am) |