Here is the tentative schedule of lectures and due dates. The lecture material for future lectures may change.
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).
About deadlines: Assignments are generally due according to this schedule:
- Projects are generally due on Fridays at 8pm
- Labs are generally due on Tuesdays at 8pm
- ❓ Post-Lecture Quizzes (PLQs) are due the day before the next lecture at 11:59pm
Code from the lectures is available at github.com/csci0300/cs300-lectures. See the notes for each lecture for more info.
| Monday | Tuesday | Wednesday | Thursday | Friday |
jan 19 Martin Luther King Jr. Day | jan 20 | jan 21 First day of classes Block 1: Computer Systems Basics | jan 22 No section this week | jan 23 |
jan 26 | jan 27 DUE:
Lab 0 (Setup) Assigned:
Lab 1 (C Programming & Build Tools) | jan 28 | jan 29 | jan 30 DUE:
Project 1: Snake (checkin) |
feb 2 | feb 3 DUE:
Lab 1 (C Programming & Build Tools) Assigned:
Lab 2 (Debugging) | feb 4 | feb 5 | feb 6 DUE:
Project 1: Snake (parts 1 and 2) |
feb 9 | feb 10 | feb 11 DUE:
Lab 2 (Debugging) | feb 12 No section this week | feb 13 DUE:
Project 1: Snake (everything) Assigned:
Project 2: DMalloc |
feb 16 Long Weekend | feb 17 Long Weekend | feb 18 | feb 19 | feb 20 |
feb 23 | feb 24 Assigned:
Lab 3 (Assembly) | feb 25 | feb 26 Section week 4: Assembly | feb 27 DUE:
Project 2: DMalloc Assigned:
Project 3: Caching I/O |
mar 2 | mar 3 | mar 4 | mar 5 Section week 5: Caching I/O prep | mar 6 DUE:
Project 3: Caching I/O (design review, due during section) |
mar 9 | mar 10 LEC 13: Stack, Buffer Overflow | mar 11 Block 2: Fundamentals of Operating Systems DUE:
Lab 3 (Assembly) | mar 12 LEC 14: Operating Systems Intro Assigned:
Lab 4 (Intro to WeensyOS) No section this week | mar 13 DUE:
Project 3: Caching I/O Assigned:
Project 4: WeensyOS Assigned: SRC: Time Machine |
mar 16 | mar 17 LEC 15: Privilege Separation, Memory Protection | mar 18 Midterm Quiz (evening, 7-9pm) Materials: open laptop, compiler, limited Internet. NO communication, web search, or AI use; see Edstem for details. | mar 19 LEC 16: Virtual Memory No section this week | mar 20 |
mar 23 Spring recess | mar 24 Spring recess | mar 25 Spring recess | mar 26 Spring recess | mar 27 Spring recess |
mar 30 | mar 31 LEC 17: Page Tables, Address Translation DUE:
Lab 4 (Intro to WeensyOS) | apr 1 | apr 2 LEC 18: Address Translation, Process Creation Section week 6: Page table practice | apr 3 DUE:
Project 4: WeensyOS (steps 1-4) |
apr 6 | apr 7 LEC 19: Process Creation Assigned:
Lab 5 (Processes) | apr 8 | apr 9 LEC 20: Inter-Process Communication, Pipes Section week 7: Pipes | apr 10 DUE:
Project 4: WeensyOS (everything) DUE: SRC: Time Machine (part 1) Assigned:
Project 5A: Concurrent Store |
apr 13 | apr 14 LEC 21: Pipes, Threads | apr 15 Block 3: Concurrency and Parallel Programming | apr 16 LEC 22: Race Conditions, Synchronization, Mutexes Section week 8: Multithreading | apr 17 DUE:
SRC: Time Machine (all parts) |
apr 20 | apr 21 LEC 23: Synchronization, Atomics, Deadlock DUE:
Lab 5 (Processes) Assigned:
Lab 6 (Threads) | apr 22 | apr 23 LEC 24: Bounded Buffer No section this week | apr 24 DUE:
Project 5A: Concurrent Store Assigned:
Project 5B: Distributed Store |
apr 27 | apr 28 LEC 25: Condition Variables, Distributed Systems, Sharding DUE:
Lab 6 (Threads) | apr 29 Block 4: Distributed Systems | apr 30 LEC 26: Sharding, Networking No section this week | may 1 |
may 4 | may 5 LEC 27: Networking, Replication, Summary, and Outlook Last day of classes | may 6 | may 7 No section this week | may 8 DUE:
Project 5B: Distributed Store |
may 11 | may 12 | may 13 | may 14 No section this week | may 15 Final Quiz Timing: 9:00am-12:00pm, rooms TBD Materials: open laptop, compiler, limited Internet. NO communication, web search, or AI use Scope: All lectures, Projects 4, 5A, 5B |