CSE 320: Systems Fundamentals II – Course Schedule

Mondays & Wednesdays, 4:00 pm - 5:20 pm (Frey 102)

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)