Tentative

Because unforeseen circumstances (snow days, delays, etc.) happen, the dates and times on this schedule are still subject to change. I will give as much advance warning as possible to any changes on the schedule. I promise to never move any assignment deadlines earlier.

Readings

Actual Schedule

Mtg. Date Content Reading Lab Project Due
Lect 1/28 Big Problems & Syllabi DiS, Ch. 0    
Lab 1/29 Modern Python: virtualenv, types, for-comp The Evolution of Trust up to Pt. 6 Lab1 - Intro to Simulation  
Lect 1/30 More Modern Python!      
Lect 2/4 Cancelled - flu      
Lab 2/5 impl Oracle Schedulers OSTEP #7 Lab2 - oracle_sched.py  
Lect 2/6 Rational Scheduler Design & Basic Probability      
Lect 2/11 FILE I/O: bytes/strings/files/folders      
Lab 2/12 impl Priority Scheduling OSTEP #8,#9 Lab3 - ticket_sched.py  
Lect 2/13 Bash & os.jjfoley.me      
Lect 2/18 Intro to C DiS: Ch 1    
Lab 2/19 Lab: guess.c   Lab4 - C1 guess.c, power.c, scream.c  
N/A 2/20 RALLY DAY AFTERNOON CANCELLED     P1 - Scheduler.py
Lect 2/25 Pointers in C, Python and Java DiS: Ch. 2-2.3    
Lab 2/26 Arrays, Strings, and Structs DiS: Ch. 2.4-2.7 Lab5 - C2 cli_hash_str.c  
Lect 2/27 I/O in C, Python, and Java DiS: Ch. 2.8    
Lect 3/3 HashMaps and Caches      
Lab 3/4 bytes_t and linear map   Lab6 - assoc_list.c  
Lect 3/5 Stack, Heap & Memory OSTEP 13, 14    
Lect 3/10 Basic Memory Allocation      
Lab 3/11 Lab: alloc.py (foldLeft)   Lab7 - merge_chunks.py  
Lect 3/12 Garbage Collection     P2 - hash_cli.c
    Spring Break      
Lect 3/24 Architecture Review DiS: Ch. 7 (skim 7.4, not 7.5)    
Lab 3/25 Lab: alloc_fixed.py OSTEP 15, 18 Lab8 - alloc_segmented.py  
Lect 3/26 Memory Hardware - TLB; Cache OSTEP 19, 22    
Lect 3/31 Scheduling Hardware - Threads & Processes OSTEP 6, 26    
Lab 4/1 Lab: multiprocess calculate PI OSTEP 32 Lab9 - estimate_pi.c  
Lect 4/2 Mutexes, Locks, & Atomic Instructions OSTEP 28   P3 - MemAlloc.py
Lect 4/7 Functional Programming & Java Collections      
Lab 4/8 Lab: estimate_pi.java; FP   Lab10 - map, filter, reduce  
Lect 4/9 Semaphores / Condition Variables OSTEP 30, 31    
Lect 4/14 Realities of I/O, Spinning Disks OSTEP 36, 37 Extra: 38, BB-HDD-2019    
Lab 4/15 Lab: elevator_problem.py   Lab11 - elevator_problem.py  
Lect 4/16 Low-level File I/O capabilities OSTEP 39   Final Project Proposal
Lect 4/21 FileSystem Design OSTEP 40,41    
Lab 4/22 Lab: filesystem.py   Lab12 - files_in_mem.py  
Lect 4/23 SSDs, Data Reliability OSTEP 44,45    
Lect 4/28 Flex Time      
Lab 4/29 Flex Time      
Lect 4/30 Final Project Presentations