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 |
sep 7 | sep 8 | sep 9 First day of classes Block 1: Computer Systems Basics | sep 10 No section this week | sep 11 |
sep 14 | sep 15 DUE:
Lab 0 (Setup) Assigned:
Lab 1 (C Programming & Build Tools) | sep 16 | sep 17 | sep 18 DUE:
Project 1: Snake (checkin) |
sep 21 | sep 22 DUE:
Lab 1 (C Programming & Build Tools) Assigned:
Lab 2 (Debugging) | sep 23 | sep 24 | sep 25 DUE:
Project 1: Snake (parts 1 and 2) |
sep 28 | sep 29 | sep 30 DUE:
Lab 2 (Debugging) | oct 1 No section this week | oct 2 DUE:
Project 1: Snake (everything) Assigned:
Project 2: DMalloc |
oct 5 | oct 6 | oct 7 | oct 8 | oct 9 |
oct 12 Indigenous People's Day | oct 13 Assigned:
Lab 3 (Assembly) | oct 14 | oct 15 Section week 4: Assembly | oct 16 DUE:
Project 2: DMalloc Assigned:
Project 3: Caching I/O |
oct 19 | oct 20 | oct 21 Block 2: Fundamentals of Operating Systems | oct 22 Section week 5: Caching I/O prep | oct 23 DUE:
Project 3: Caching I/O (design review, due during section) |
oct 26 | oct 27 LEC 14: Buffer overflow, Operating Systems Intro Assigned:
Lab 4 (Intro to WeensyOS) | oct 28 DUE:
Lab 3 (Assembly) | oct 29 LEC 15: Privilege Separation, Memory Protection No section this week | oct 30 DUE:
Project 3: Caching I/O Assigned:
SRC: Time Machine |
nov 2 | nov 3 Election Day | nov 4 Midterm Quiz (evening, 7-9pm) Materials: open laptop, compiler, limited Internet. NO communication, web search, or AI use; see Edstem for details. | nov 5 LEC 16: Virtual Memory No section this week | nov 6 Assigned:
Project 4: WeensyOS |
nov 9 | nov 10 LEC 17: Page Tables, Address Translation DUE:
Lab 4 (Intro to WeensyOS) | nov 11 Block 3: Concurrency and Parallel Programming | nov 12 LEC 18: Address Translation, Process Creation Assigned:
Lab 5 (Processes) Section week 6: Page table practice | nov 13 DUE:
Project 4: WeensyOS (steps 1-4) |
nov 16 | nov 17 LEC 19: Process Creation | nov 18 | nov 19 LEC 20: Inter-Process Communication, Pipes Section week 7: Pipes | nov 20 DUE:
Project 4: WeensyOS (everything) DUE: SRC: Time Machine (part 1) |
nov 23 | nov 24 LEC 21: Pipes, Threads | nov 25 Thanksgiving recess | nov 26 Thanksgiving recess | nov 27 Thanksgiving recess |
nov 30 Assigned:
Lab 6 (Threads) | dec 1 LEC 22: Race Conditions, Synchronization, Mutexes DUE:
Lab 5 (Processes) Assigned:
Project 5: Concurrent Store | dec 2 DUE:
SRC: Time Machine (all parts) | dec 3 LEC 23: Synchronization, Atomics, Deadlock Section week 8: Multithreading | dec 4 |
dec 7 | dec 8 LEC 24: Bounded Buffer, Condition Variables DUE:
Lab 6 (Threads) | dec 9 | dec 10 LEC 25: Networking, Replication, Summary, and Outlook Last day of classes No section this week | dec 11 DUE:
Project 5: Concurrent Store |
dec 14 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 | dec 15 | dec 16 | dec 17 No section this week | dec 18 |