⚠️ 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 24 | jan 25 Block 1: Computer Systems Basics |
jan 26 LEC 1: Course Overview and Machine Organization 🎥 ❓ Assigned: Project 1: Snake Assigned: Lab 0 (Setup) First day of classes |
jan 27 | jan 28 |
jan 31 LEC 2: Introduction to C, Programs as Data 🎥 ❓ |
feb 1 DUE: Lab 0 (Setup) Assigned: Lab 1 (C Programming and Build Tools) |
feb 2 LEC 3: Pointers and Strings 🎥 ❓ |
feb 3 | feb 4 |
feb 7 LEC 4: Memory Representation and Memory Allocation 🎥 ❓ DUE: Project 1: Snake (TA hours checkin) 🎥 Double Pointer Review (6 min, optional) |
feb 8 DUE: Lab 1 (C Programming and Build Tools) Assigned: Lab 2 (Debugging) |
feb 9 LEC 5: Arrays and Structures 🎥 ❓ |
feb 10 | feb 11 DUE: Project 1: Snake (part 1) |
feb 14 LEC 6: Alignment 🎥 ❓ |
feb 15 DUE: Lab 2 (Debugging) |
feb 16 LEC 7: Collection Rules, Signed Integers 🎥 (last 25 min have no audio) ❓ 🎥 Remainder of Alignment Material (2021) 🎥 Signed Integers (2021) |
feb 17 Assigned: Lab 3 (Assembly) |
feb 18 DUE: Project 1: Snake (everything) Assigned: Project 2: DMalloc |
feb 21 Long Weekend |
feb 22 Long Weekend |
feb 23 LEC 8: Assembly Language 🎥 ❓ |
feb 24 | feb 25 DUE: DMalloc (conceptual questions) |
feb 28 LEC 9: Assembly Control Flow, Calling Convention, Stack 🎥 ❓ |
mar 1 | mar 2 LEC 10: Stack, Buffer Overflow 🎥 ❓ |
mar 3 | mar 4 DUE: Project 2: DMalloc Assigned: Project 3: Caching I/O |
mar 7 LEC 11: Buffer Overflow, Caching 🎥 ❓ |
mar 8 DUE: Lab 3 (Assembly) Assigned: Lab 4 (Caching) |
mar 9 LEC 12: Caching 🎥 ❓ |
mar 10 Block 2: Fundamentals of Operating Systems |
mar 11 DUE: Project 3: Caching I/O (design checkoff) |
mar 14 LEC 13: Operating Systems Intro 🎥 ❓ |
mar 15 DUE: Lab 4 (Caching) Assigned: Lab 5 (Intro to WeensyOS) |
mar 16 LEC 14: Privilege Separation, Memory Protection 🎥 ❓ |
mar 17 | mar 18 DUE: Project 3 (Caching I/O) Assigned: Project 4: WeensyOS |
mar 21 Midterm Quiz Materials: Open book, notes, laptop, internet, NO communication Scope: Lectures 1 through 12, Projects 1, 2, and 3 |
mar 22 Assigned: SRC: Software Preservation |
mar 23 LEC 15: Virtual Memory 🎥 ❓ |
mar 24 | mar 25 DUE: Lab 5 (Intro to WeensyOS) |
mar 28 Spring Recess |
mar 29 Spring Recess |
mar 30 Spring Recess |
mar 31 Spring Recess |
apr 1 Spring Recess |
apr 4 LEC 16: Page Tables, Address Translation 🎥 ❓ |
apr 5 Assigned: Lab 6 (Processes) |
apr 6 LEC 17: Process Creation 🎥 ❓ DUE: Project 4A: WeensyOS (step 1-4) DUE: SRC: Software Preservation (part 1) |
apr 7 Block 3: Concurrency and parallel programming |
apr 8 |
apr 11 LEC 18: Inter-Process Communication 🎥 ❓ |
apr 12 DUE: Lab 6 (Processes) Part I Assigned: Lab 6 (Processes) Part II, Lab 7 (Threads) |
apr 13 LEC 19: Pipes, Multiprocessing, Threads 🎥 ❓ |
apr 14 | apr 15 DUE: Project 4B: WeensyOS (all steps) DUE: SRC: Software Preservation (all parts) Assigned: Project 5: Vunmo |
apr 18 LEC 20: Threads, Race Conditions 🎥 ❓ |
apr 19 | apr 20 LEC 21: Synchronization: Atomics, Mutexes, and Condition Variables 🎥 ❓ DUE: Lab 6 (Processes) Part II and Lab 7 (Threads) |
apr 21 Assigned: Lab 8 (Safer Systems Programming) |
apr 22 |
apr 25 LEC 22: Synchronization: Deadlock, Bounded Buffer 🎥 ❓ |
apr 26 DUE: Lab 8 (Safer Systems Programming) Assigned: Lab 9 (RPCs) Block 4: Distributed systems |
apr 27 LEC 23: Condition Variables, Networking 🎥 ❓ Assigned: Project 6: Distributed Store |
apr 28 | apr 29 DUE: Project 5: Vunmo |
may 2 LEC 24: Networking, RPC, and Sharding 🎥 ❓ |
may 3 | may 4 LEC 25: Replication, Consistency, Real-World Distributed Systems 🎥 ❓ |
may 5 DUE: Lab 9 (RPCs) |
may 6 |
may 9 LEC 26: Summary and Outlook 🎥 ❓ |
may 10 Last day of classes |
may 11 | may 12 DUE: Project 6: Distributed Store (MAX 24 LATE HOURS) |
may 13 Final Quiz Materials: Open laptop, book, compiler, internet, NO communication Scope: Lectures 13 through 25, Projects 4, 5, 6 Timing: 9:00am - 12:00pm, MacMillan Hall 117 |