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

Mondays & Wednesdays, 8:00 am - 9:20 am (L01) or Mondays & Wednesdays, 11:00 am - 12:20 pm (L02) (Light Engineering 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 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)