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.

MondayTuesdayWednesdayThursdayFriday
jan 19
Martin Luther King Jr. Day
jan 20
jan 21
First day of classes
Block 1: Computer Systems Basics
jan 22
Assigned: Lab 0 (Setup)
Assigned: Project 1: Snake
No section this week
jan 23
jan 26
jan 27
DUE: Lab 0 (Setup)
jan 28
jan 29
jan 30
DUE: Project 1: Snake (checkin)
feb 2
feb 3
DUE: Lab 1 (C Programming & Build Tools)
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)
feb 16
Long Weekend
feb 17
Long Weekend
feb 18
feb 19
feb 20
feb 23
feb 24
feb 25
feb 26
Section week 4: Assembly
feb 27
DUE: Project 2: DMalloc
mar 2
mar 3
mar 4
mar 5
LEC 12: Stack
📄Notes
🎥Video
PLQ
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


Creative Commons Licence This work is licensed under a Creative Commons Attribution 4.0 International License.