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
- DiS = Dive Into Systems.
NOTE: This book requires a password, to be distributed via Moodle announcement. - OSTEP = http://pages.cs.wisc.edu/~remzi/OSTEP/
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 |