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 22 jan 23 jan 24
First day of classes
Block 1: Computer Systems Basics
jan 25
LEC 1: Course Overview and Machine Organization 🎥
Assigned: Project 1: Snake
Assigned: Lab 0 (Setup)
jan 26
jan 29 jan 30
LEC 2: Introduction to C 🎥
DUE: Lab 0 (Setup)
Assigned: Lab 1 (C Programming and Build Tools)
jan 31 feb 1
LEC 3: Pointers and Strings 🎥
Sections start
Section week 1 (Thu – Weds)
feb 2
DUE: Project 1: Snake (checkin)
Section week 1 (Thu – Weds)
feb 5
Section week 1 (Thu – Weds)
feb 6
LEC 4: Memory Representation and Memory Allocation 🎥
DUE: Lab 1 (C Programming and Build Tools)
Assigned: Lab 2 (Debugging)
Section week 1 (Thu – Weds)
feb 7
Section week 1 (Thu – Weds)
feb 8
LEC 5: Arrays and Structures 🎥
Section week 2 (Thu – Weds)
feb 9
DUE: Project 1: Snake (parts 1 and 2)
Section week 2 (Thu – Weds)
feb 12
Section week 2 (Thu – Weds)
feb 13
LEC 6: Structures, Signed Integers 🎥
Section week 2 (Thu – Weds)
feb 14
DUE: Lab 2 (Debugging)
Section week 2 (Thu – Weds)
feb 15
LEC 7: Signed Integers, Alignment, Collection Rules 🎥
feb 16
DUE: Project 1: Snake (everything)
Assigned: Project 2: DMalloc
feb 19
Long Weekend
feb 20
Long Weekend
feb 21 feb 22
LEC 8: Collection Rules, Assembly Language 🎥
Section week 3 (Thu – Weds)
feb 23
Section week 3 (Thu – Weds)
feb 26
Section week 3 (Thu – Weds)
feb 27
LEC 9: Assembly Language 🎥
Assigned: Lab 3 (Assembly)
Section week 3 (Thu – Weds)
feb 28
Section week 3 (Thu – Weds)
feb 29
LEC 10: Assembly Control Flow, Calling Convention 🎥
Section week 4 (Thu – Weds)
mar 1
DUE: Project 2: DMalloc
Assigned: Project 3: Caching I/O
Section week 4 (Thu – Weds)
mar 4
Section week 4 (Thu – Weds)
mar 5
LEC 11: File I/O, Stack 🎥
Section week 4 (Thu – Weds)
mar 6
Section week 4 (Thu – Weds)
mar 7
LEC 12: Stack, Buffer Overflow, Caching 🎥
Section week 5 (Thu – Weds)
mar 8
DUE: Project 3: Caching I/O (design discussion)
Section week 5 (Thu – Weds)
mar 11
Block 2: Fundamentals of Operating Systems
Section week 5 (Thu – Weds)
mar 12
LEC 13: Caching 🎥
DUE: Lab 3 (Assembly)
Assigned: Lab 4 (Intro to WeensyOS)
Section week 5 (Thu – Weds)
mar 13
Section week 5 (Thu – Weds)
mar 14
LEC 14: Operating Systems Intro
🎥 (no audio from 55:00)
🎥 2023 video (starting at 55:00)
mar 15
DUE: Project 3 (Caching I/O)
Assigned: Project 4: WeensyOS
Assigned: SRC: Time Machine
mar 18 mar 19
LEC 15: Privilege Separation, Memory Protection 🎥
2023 video 🎥
mar 20 mar 21
LEC 16: Virtual Memory 🎥
Midterm Quiz (evening: 7-9pm)
Materials: Open laptop, book, compiler, internet, NO communication or AI use
Scope: Lectures 1–14, Projects 1, 2, 3
mar 22
mar 25
Spring Recess
mar 26
Spring Recess
mar 27
Spring Recess
mar 28
Spring Recess
mar 29
Spring Recess
apr 1 apr 2
LEC 17: Page Tables, Address Translation 🎥
DUE: Lab 4 (Intro to WeensyOS)
apr 3 apr 4
LEC 18: Address Translation, Process Creation 🎥
Assigned: Lab 5 (Processes)
Section week 6 (Thu – Weds)
apr 5
DUE: Project 4A: WeensyOS (step 1-4)
Section week 6 (Thu – Weds)
apr 8
Section week 6 (Thu – Weds)
Block 3: Concurrency and Parallel Programming
apr 9
LEC 19: Process Creation 🎥
Section week 6 (Thu – Weds)
apr 10
Section week 6 (Thu – Weds)
apr 11
LEC 20: Inter-Process Communication, Pipes 🎥
Section week 7 (Thu – Weds)
apr 12
DUE: Project 4B: WeensyOS (all steps)
DUE: SRC: Time Machine (part 1)
Assigned: Project 5A: Concurrent Store
Section week 7 (Thu – Weds)
apr 15
Section week 7 (Thu – Weds)
apr 16
LEC 21: Pipes, Threads 🎥 
Assigned: Lab 6
Section week 7 (Thu – Weds)
apr 17
Section week 7 (Thu – Weds)
apr 18
LEC 22: Race Conditions, Synchronization, Mutexes 🎥
DUE: Lab 5 (Processes)
Section week 8 (Thu – Weds)
apr 19
DUE: SRC: Time Machine (all parts)
Section week 8 (Thu – Weds)
apr 22
Section week 8 (Thu – Weds)
apr 23
LEC 23: Synchronization, Atomics, Deadlock 🎥
DUE: Lab 6
Section week 8 (Thu – Weds)
apr 24
Section week 8 (Thu – Weds)
apr 25
LEC 24: Bounded Buffer 🎥
apr 26
DUE: Project 5A: Concurrent Store
Assigned: Project 5B: Distributed Store
apr 29
Block 4: Distributed Systems
apr 30
LEC 25: Condition Variables, Distributed Systems, and Sharding
🎥 (no screen up to 27 min)
🎥 (2023 video; up to 58:30)
may 1 may 2
LEC 26: Sharding, Networking 🎥
may 3
may 6 may 7
LEC 27: RPC, Replication, Summary and Outlook 🎥 
Last day of classes
may 8 may 9
DUE: Project 5B: Distributed Store (MAX 51 LATE HRS)
may 10
Final Quiz
Materials: Open laptop, book, compiler, internet, NO communication
Scope: All lectures, Projects 4, 5A, 5B
Timing: 9:00am - 12:00pm, rooms TBD