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, OSTEP #2    
Lab 1/29 Modern Python: virtualenv, types, for-comp   Lab1 - Intro to Simulation  
Lect 1/30 Data-Driven Programming      
Lect 2/4 What makes a good scheduler? What makes a Fair scheduler?      
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 (Video/Remote?)      
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   Lab3 - C1 cli_echo.c  
Lect 2/20 Pointers in C, Python and Java DiS: Ch. 2-2.3   P1 - Scheduler.py
Lect 2/25 Arrays, Strings, and Structs DiS: Ch. 2.4-2.7    
Lab 2/26 String Functions   Lab4 - 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 Building a int->int HashMap in C   Lab5 - hash_cli.c  
Lect 3/5 Stack, Heap & Memory OSTEP 13, 14    
Lect 3/10 Basic Memory Allocation      
Lab 3/11 Lab: alloc.py (foldLeft)   Lab6 - merge_chunks.py  
Lect 3/12 Garbage Collection     P2 - hash_any.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 Lab7 - 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 Lab8 - 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   Lab9 - 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    
Lab 4/15 Lab: elevator_problem.py   Lab10 - 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   Lab11 - 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