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 not imply specific dates of assignment deadlines, etc.

Week (Monday) Topics Assignments & Labs
1 (Jan 9) Intro to Computer Systems
2 (Jan 16) Assembly
  • A1 due
  • Assignment 2 out
  • Lab 2
3 (Jan 23) Memory, the Stack, Recursion
  • A2 due
  • Assignment 3 out
  • Lab 3
4 (Jan 30) Intro to C
  • A3 due
  • Assignment 4 out
  • Lab 4
5 (Feb 6) Processes
  • A4 due
  • Project 1 out
  • Lab 5
6 (Feb 13) File I/O
7 (Feb 20) Virtual Memory
  • Project 1 due
  • Assignment 5 out
  • Lab 7
8 (Feb 27) Concurrency
  • A5 due
  • Assignment 6 out
  • Lab 8
(Mar 6) Spring Break
9 (Mar 13) Concurrency
  • A6 due
  • Assignment 7 out
  • Lab 9
10 (Mar 20) OS Kernels, Booting, xv6
  • Assignment 8 out
  • A7 due
  • Lab 10
11 (Mar 27) OS Kernels, Booting, xv6
12 (Apr 3) File Systems
  • A8 due
  • Project 2 out
13 (Apr 10) File Systems
14 (Apr 17) Wrap-up
  • Project 2 due