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

Tuesdays & Thursdays, 8:00 am - 9:20 am (L01) (Javits 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.

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