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