Here is the tentative schedule of lectures and due dates. Lecture dates and material for future lectures may change.

Generally, projects are due at 6pm 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.

🎥: Lecture Capture  —  ❓: Post-Lecture Quiz (due 6pm the day before the next lecture).

Code from the lectures and section is available at github.com/csci1310/cs131-lectures.

MondayTuesday WednesdayThursday Friday
jan 20
Martin Luther King, Jr. holiday
jan 21 jan 22
First day of classes
Block 1: Computer Systems Basics
jan 23
LEC 1: Overview and machine organization 🎥
Assigned: Project 1: Strings & Vectors
Assigned: Lab 0 (Setup)
jan 24
jan 27 jan 28
LEC 2: Introduction to Systems Programming 🎥
jan 29 jan 30
LEC 3: Memory Allocation and Strings 🎥
jan 31
feb 3 feb 4
LEC 4: Arrays, Pointer Arithmetic and Structures 🎥
DUE: Lab 0 (Setup) (EXTENDED)
Assigned: Lab 1 (C programming)
feb 5 feb 6
LEC 5: Structures and Alignment 🎥
feb 7
feb 10 feb 11
LEC 6: Collection Summary and Signed Number Representation 🎥
DUE: Lab 1 (C programming)
Assigned: Lab 2 (Build tools)
feb 12 feb 13
LEC 7: Assembly Language 🎥
feb 14
DUE: Project 1: Strings & Vectors
Assigned: Project 2: DMalloc
feb 17
Long Weekend
feb 18
Long Weekend
feb 19
DUE: Lab 2 (Build tools)
Assigned: Lab 3 (Assembly)
feb 20
LEC 8: Calling Conventions, Stack 🎥
feb 21
feb 24
DUE: Project 2: DMalloc (conceptual questions)
feb 25
LEC 9: C++, Caching 🎥
DUE: Lab 3 (Assembly)
Assigned: Lab 4 (Caching)
feb 26 feb 27
LEC 10: Caching 🎥
feb 28
DUE: Project 2: DMalloc (all)
Assigned: Project 3A: WeensyOS (step 1-4)
mar 2
Block 2: Fundamentals of Operating Systems
mar 3
LEC 11: Operating System Intro 🎥
DUE: Lab 4 (Caching)
Assigned: Lab 5 (Intro to WeensyOS)
mar 4 mar 5
LEC 12: Privilege Separation, Memory Protection 🎥
mar 6
mar 9 mar 10
LEC 13: Virtual Memory, Page Tables 🎥
DUE: Lab 5 (Intro to WeensyOS)
mar 11 mar 12
LEC 14: Page Tables, Process control 🎥
mar 13
mar 16
CLASSES CANCELLED
mar 17
CLASSES CANCELLED
mar 18
CLASSES CANCELLED
mar 19
CLASSES CANCELLED
mar 20
CLASSES CANCELLED
mar 23
Spring Recess
mar 24
Spring Recess
mar 25
Spring Recess
mar 26
Spring Recess
mar 27
Spring Recess
mar 30
Block 3: Concurrency and parallel programming
mar 31
LEC 15: Processes, IPC 🎥
Assigned: Lab 6 (Processes)
apr 1 apr 2
LEC 16: IPC, Threads 🎥
apr 3
DUE: Project 3A: WeensyOS (step 1-4)
apr 6 apr 7
LEC 17: Threads and Race conditions 🎥
apr 8 apr 9
LEC 18: Synchronization 🎥
apr 10
DUE: Project 3B: WeensyOS (all steps)
Assigned: Project 4: Vunmo
apr 13 apr 14
LEC 19: Synchronization (II) 🎥
DUE: Lab 6 (Processes)
Assigned: Lab 7 (Threads)
apr 15
Block 4: Distributed systems
apr 16
LEC 20: Synchronization Patterns, Deadlock 🎥
apr 17
apr 20 apr 21
LEC 21: Deadlock avoidance, Networking 🎥
DUE: Lab 7 (Threads)
Assigned: Lab 8 (RPCs)
apr 22 apr 23
LEC 22: Scalability 🎥
apr 24
DUE: Project 4: Vunmo
Assigned: Project 5: Distributed Store
apr 27 apr 28
LEC 23: Distributed scalability, Failures 🎥
apr 29 apr 30
LEC 24: Consistency, Real-world distributed systems 🎥
may 1
may 4 may 5
LEC 25: Summary and Outlook 🎥
DUE: Lab 8 (RPCs)
Last day of classes
may 6 may 7 may 8
DUE: Project 5: Distributed Store
may 11 may 12
Final quiz completion due
Materials: Open laptop, book, compiler, restricted internet
Timing: Released 12:00 noon on May 9, due 12:00 noon on May 12
may 13 may 14 may 15