The following is our tentative schedule for the course, some changes should be expected throughout the semester.  We will announce in class or through Piazza any major changes.

  • To get the assignments/activities for the course, there will be a link provided for each that you must first click on and accept the assignment. The link for Assignments and Labs will be on the web page for corresponding to that Assignment or Lab (see the Modules in Canvas).
  • For lab classes, do not accept the lab until class starts. We often make changes and corrections until moments before class begins.

Note: The dates in parentheses signify the date of the Monday of the week and do not imply specific dates of assignment deadlines, etc.

Week (Monday) Topics Assignments & Labs
1 (Jan 6) Intro to Computer Systems
2 (Jan 13) Assembly
3 (Jan 20) Memory, the Stack, Recursion
4 (Jan 27) Intro to C
5 (Feb 3) Processes
6 (Feb 10) File I/O
7 (Feb 17) Virtual Memory
  • Project 1 due
8 (Feb 24) Concurrency
(Mar 3) Spring Break
9 (Mar 10) Concurrency
10 (Mar 17) Condition Variables, Semaphores, Shared Memory
11 (Mar 24) OS Kernels, Booting, xv6
12 (Mar 31) File Systems
13 (Apr 7) File Systems
14 (Apr 14) Wrap-up
  • Project 2 due