⚠️ This is not the current iteration of the course! Head here for the current offering.
Here is the tentative schedule of lectures and due dates. The lecture material for future lectures may change.
Generally, projects are due at 6pm on Fridays, labs are due at 8pm on Tuesdays.
While the notes and videos published here may help you remember the material discussed, they are not a replacement for attending lectures.
🎥: Lecture Capture — ❓: Post-Lecture Quiz (due 11:59pm the day before the next lecture).
Code from the lectures and section is available at github.com/csci0300/cs300-lectures.
Monday | Tuesday | Wednesday | Thursday | Friday |
jan 23 | jan 24 | jan 25 First day of classes Block 1: Computer Systems Basics |
jan 26 LEC 1: Course Overview and Machine Organization 🎥 ❓ Assigned: Project 1: Snake Assigned: Lab 0 (Setup) |
jan 27 |
jan 30 | jan 31 LEC 2: Introduction to C 🎥 ❓ DUE: Lab 0 (Setup) Assigned: Lab 1 (C Programming and Build Tools) |
feb 1 | feb 2 LEC 3: Pointers and Strings 🎥 (no screen) ❓ 🎥 2022 video (with screen) |
feb 3 Section week 1: Memory (Sat – Weds) |
feb 6 DUE: Project 1: Snake (TA hours checkin) Section week 1: Memory (Sat – Weds) |
feb 7 LEC 4: Memory Representation and Memory Allocation 🎥 ❓ DUE: Lab 1 (C Programming and Build Tools) Assigned: Lab 2 (Debugging) Section week 1: Memory (Sat – Weds) |
feb 8 Section week 1: Memory (Sat – Weds) |
feb 9 LEC 5: Arrays and Structures 🎥 ❓ |
feb 10 DUE: Project 1: Snake (part 1) |
feb 13 | feb 14 LEC 6: Structs, Signed Integers 🎥 ❓ |
feb 15 DUE: Lab 2 (Debugging) |
feb 16 LEC 7: Signed Integers, Alignment 🎥 ❓ |
feb 17 DUE: Project 1: Snake (everything) Assigned: Project 2: DMalloc |
feb 20 Long Weekend |
feb 21 Long Weekend |
feb 22 Section week 2: Structures (Weds – Sun) |
feb 23 LEC 8: Collection Rules, Assembly Language 🎥 ❓ Section week 2: Structures (Weds – Sun) |
feb 24 Section week 2: Structures (Weds – Sun) |
feb 27 | feb 28 LEC 9: Assembly Language 🎥 ❓ Assigned: Lab 3 (Assembly) |
mar 1 | mar 2 LEC 10: Assembly Control Flow 🎥 ❓ |
mar 3 DUE: Project 2: DMalloc Assigned: Project 3: Caching I/O Section week 3: Assembly (Sat – Weds) |
mar 6 Section week 3: Assembly (Sat – Weds) |
mar 7 LEC 11: Stack 🎥 ❓ Section week 3: Assembly (Sat – Weds) |
mar 8 Section week 3: Assembly (Sat – Weds) |
mar 9 LEC 12: Stack, Buffer Overflow, Caching 🎥 ❓ |
mar 10 |
mar 13 DUE: Project 3: Caching I/O (design checkoff) Block 2: Fundamentals of Operating Systems |
mar 14 LEC 13: Caching 🎥 ❓ DUE: Lab 3 (Assembly) Assigned: Lab 4 (Intro to WeensyOS) |
mar 15 | mar 16 LEC 14: Operating Systems Intro 🎥 ❓ |
mar 17 |
mar 20 DUE: Project 3 (Caching I/O) Assigned: Project 4: WeensyOS Assigned: SRC: Time Machine |
mar 21 LEC 15: Privilege Separation, Memory Protection 🎥 ❓ |
mar 22 | mar 23 Midterm Quiz Materials: Open book, notes, laptop, internet, NO communication Scope: Lectures 1 through 14, Projects 1, 2, and 3 |
mar 24 |
mar 27 Spring Recess |
mar 28 Spring Recess |
mar 29 Spring Recess |
mar 30 Spring Recess |
mar 31 Spring Recess |
apr 3 | apr 4 LEC 16: Virtual Memory, Page Tables 🎥 ❓ |
apr 5 DUE: Lab 4 (Intro to WeensyOS) Assigned: Lab 5 (Processes) Block 3: Concurrency and parallel programming |
apr 6 LEC 17: Address Translation, Process Creation 🎥 ❓ |
apr 7 DUE: Project 4A: WeensyOS (step 1-4) Section week 4: Virtual Memory (Sat – Weds) |
apr 10 Section week 4: Virtual Memory (Sat – Weds) |
apr 11 LEC 18: Process Creation 🎥 (no screen) ❓ Section week 4: Virtual Memory (Sat – Weds) 🎥 2022 video I (with screen) 🎥 2022 video II (with screen; up to 20:30) |
apr 12 Section week 4: Virtual Memory (Sat – Weds) |
apr 13 LEC 19: Inter-Process Communication 🎥 ❓ |
apr 14 DUE: Project 4B: WeensyOS (all steps) DUE: SRC: Time Machine (part 1) |
apr 17 | apr 18 LEC 20: Pipes, Multiprocessing, Threads 🎥 ❓ DUE: Lab 5 (Processes), Part I Assigned: Lab 5 (Processes), Part II, Lab 6 Assigned: Project 5A: Concurrent Store |
apr 19 | apr 20 LEC 21: Threads and Race Conditions 🎥 ❓ |
apr 21 DUE: SRC: Time Machine (all parts) Section week 5: Pipes and Multithreading (Sat – Weds) |
apr 24 Section week 5: Pipes and Multithreading (Sat – Weds) |
apr 25 LEC 22: Synchronization, Atomics, and Mutexes 🎥 ❓ DUE: Lab 5 (Processes), Part II Section week 5: Pipes and Multithreading (Sat – Weds) |
apr 26 Section week 5: Pipes and Multithreading (Sat – Weds) |
apr 27 LEC 23: Deadlock, Bounded Buffer 🎥 ❓ |
apr 28 DUE: Lab 6 |
may 1 | may 2 LEC 24: Condition Variables, Summary, and Outlook 🎥 ❓ |
may 3 Assigned: Project 5B: Privacy-Compliant KVStore |
may 4 No class! |
may 5 DUE: Project 5A: Concurrent Store |
may 8 | may 9 Last day of classes |
may 10 | may 11 DUE: Project 5B: Privacy-Compliant KVStore (MAX 56 LATE HRS) |
may 12 Final Quiz on Sat, May 13 Materials: Open laptop, book, compiler, internet, NO communication Scope: All lectures, Projects 4 and 5 Timing: 9:00am - 12:00pm, see CAB for rooms |