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.

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