CSE 320: Systems Fundamentals II – Course Schedule (Lec. 01 -- Prof. Stark)

Tuesdays & Thursdays, 2:00 pm - 3:20 pm (Humanities 1003)

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