Here is the tentative schedule of lectures and due dates. The lecture material for future lectures may change.
Generally, projects are due at 8pm 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. Videos for each lecture will be published shortly after the lecture ends; if you do not see a link yet, check this page (Brown login required).
🎥: 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 20 | jan 21 | jan 22 First day of classes Block 1: Computer Systems Basics |
jan 23 LEC 1: Course Overview and Machine Organization 🎥 ❓ Assigned: Lab 0 (Setup) Assigned: Project 1: Snake |
jan 24 |
jan 27 | jan 28 LEC 2: Introduction to C 🎥 ❓ DUE: Lab 0 (Setup) Assigned: Lab 1 (C Programming and Build Tools) |
jan 29 | jan 30 LEC 3: Pointers and Strings 🎥 ❓ Sections start Section week 1 (Thu – Sat) |
jan 31 DUE: Project 1: Snake (checkin) Section week 1 (Thu – Sat) |
feb 3 | feb 4 LEC 4: Memory Representation and Memory Allocation 🎥 ❓ DUE: Lab 1 (C Programming and Build Tools) Assigned: Lab 2 (Debugging) |
feb 5 | feb 6 LEC 5: Arrays and Structures Section week 2 (Thu – Sat) |
feb 7 DUE: Project 1: Snake (parts 1 and 2) Section week 2 (Thu – Sat) |
feb 10 | feb 11 LEC 6: Structures, Signed Integers DUE: Lab 2 (Debugging) |
feb 12 | feb 13 LEC 7: Signed Integers, Alignment, Collection Rules |
feb 14 DUE: Project 1: Snake (everything) Assigned: Project 2: DMalloc |
feb 17 Long Weekend |
feb 18 Long Weekend |
feb 19 | feb 20 LEC 8: Collection Rules, Assembly Language Section week 3 (Thu – Sat) |
feb 21 Section week 3 (Thu – Sat) |
feb 24 | feb 25 LEC 9: Assembly Language Assigned: Lab 3 (Assembly) |
feb 26 | feb 27 LEC 10: Assembly Control Flow, Calling Convention Section week 4 (Thu – Sat) |
feb 28 DUE: Project 2: DMalloc Assigned: Project 3: Caching I/O Section week 4 (Thu – Sat) |
mar 3 | mar 4 LEC 11: File I/O, Stack |
mar 5 | mar 6 LEC 12: Stack, Buffer Overflow, Caching Section week 5 (Thu – Sat) |
mar 7 DUE: Project 3: Caching I/O (checkin) Section week 5 (Thu – Sat) |
mar 10 Block 2: Fundamentals of Operating Systems |
mar 11 LEC 13: Caching DUE: Lab 3 (Assembly) Assigned: Lab 4 (Intro to WeensyOS) |
mar 12 | mar 13 LEC 14: Operating Systems Intro |
mar 14 DUE: Project 3: Caching I/O Assigned: Project 4: WeensyOS Assigned: SRC: Time Machine |
mar 17 | mar 18 LEC 15: Privilege Separation, Memory Protection |
mar 19 Midterm Quiz (evening: 7-9pm) Materials: Open laptop, book, compiler, internet, NO communication or AI use |
mar 20 LEC 16: Virtual Memory |
mar 21 DUE: Lab 4 (Intro to WeensyOS) |
mar 24 Spring Recess |
mar 25 Spring Recess |
mar 26 Spring Recess |
mar 27 Spring Recess |
mar 28 Spring Recess |
mar 31 | apr 1 LEC 17: Page Tables, Address Translation |
apr 2 | apr 3 LEC 18: Address Translation, Process Creation Assigned: Lab 5 (Processes) Section week 6 (Thu – Sat) |
apr 4 DUE: Project 4A: WeensyOS (steps 1-4) Section week 6 (Thu – Sat) |
apr 7 | apr 8 LEC 19: Process Creation Block 3: Concurrency and Parallel Programming |
apr 9 | apr 10 LEC 20: Inter-Process Communication, Pipes Section week 7 (Thu – Sat) |
apr 11 DUE: Project 4B: WeensyOS (all steps) DUE: SRC: Time Machine (part 1) Assigned: Project 5A: Concurrent Store Section week 7 (Thu – Sat) |
apr 14 | apr 15 LEC 21: Pipes, Threads DUE: Lab 5 (Processes) Assigned: Lab 6 |
apr 16 | apr 17 LEC 22: Race Conditions, Synchronization, Mutexes Section week 8 (Thu – Sat) |
apr 18 DUE: SRC: Time machine (all parts) Section week 8 (Thu – Sat) |
apr 21 | apr 22 LEC 23: Synchronization, Atomics, Deadlock DUE: Lab 6 |
apr 23 | apr 24 LEC 24: Condition Variables, Bounded Buffer Section week 8 (Thu – Sat) |
apr 25 DUE: Project 5A: Concurrent Store Assigned: Project 5B: Distributed Store Section week 8 (Thu – Sat) |
apr 28 Block 4: Distributed Systems |
apr 29 LEC 25: Distributed Systems, Sharding |
apr 30 | may 1 LEC 26: Sharding, Networking |
may 2 |
may 5 | may 6 LEC 27: RPC, Replication, Summary, and Outlook |
may 7 Last day of classes Final Quiz Materials: Open laptop, book, compiler, internet, NO communication Scope: All lectures, Projects 4, 5A, 5B Timing: 9:00am - 12:00pm, rooms TBD |
may 8 DUE: Project 5B: Distributed Store |
may 9 |