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