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.
Date | Lecture Topics | Book Readings |
---|---|---|
1/22 | Introduction & Overview | 1 |
1/24 | Revision control, git | |
1/29 | Revision control, git (cont.); Profiling and Optimization | |
1/31 | Profiling and Optimization | |
2/5 | Debugging (tentative) | |
2/7 | Linking and Loading | 7 |
2/12 | Linking and loading | |
2/14 | Dynamic memory allocation (basic concepts) | 9.9-9.11 |
2/19 | Dynamic memory allocation (implementation techniques) | |
2/21 | Dynamic memory allocation (example) | |
2/26 | Exceptional control flow, processes | 8.1-8.4 |
2/28 | Exceptional control flow, processes | |
3/4 | Exceptional control flow, processes | |
3/6 | Signals, signal handlers | 8.5-8.8 |
3/11 | Spring Break (no class) | |
3/13 | Spring Break (no class) | |
3/18 | Async-signal-safety, waiting for signals, nonlocal jumps | 10.4-10.4 |
3/20 | System-level I/O: Unix I/O, Unix file system concepts | 10.6-10.12 |
3/25 | System-level I/O: Unix I/O, Unix file system concepts | |
3/27 | Midterm Exam | |
4/1 | System-level I/O: File descriptors, sharing files, pipes, redirection | 11.1-11.4 |
4/3 | Concurrent programming -- Motivation (via network servers) | 12.1-12.3 |
4/8 | Concurrent Programming - Overview of threads | 12.4-12.8 |
4/10 | Synchronization: Race conditions, mutual exclusion, semaphores, mutexes | |
4/15 | Synchronization: Bounded buffer, Readers & Writers | |
4/17 | Thread safety, races, deadlocks | |
4/22 | (threads/synchronization?) | |
4/24 | Memory hierarchy, cache concepts | 6 |
4/29 | Cache memories | 9.1-9.8 |
5/1 | Virtual memory concepts | |
5/13 | Final Exam (5:30 pm -- 8:00 pm) |