⚠️ 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.

MondayTuesday WednesdayThursday 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