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 (Sep 1) Intro to Computer Systems
2 (Sep 8) Assembly
3 (Sep 15) Memory, the Stack, Recursion
4 (Sep 22) Intro to C
5 (Sep 29) Processes
  • Project 1 out
6 (Oct 6) File I/O
  • A4 due
7 (Oct 13) Virtual Memory
  • Exam 1 (10/16)
  • Project 1 due
  • Assignment 5 out
8 (Oct 20) Concurrency
  • A5 due
  • Assignment 6 out
9 (Oct 27) Concurrency
  • A6 due
  • Assignment 7 out
10 (Nov 3) OS Kernels, Booting, xv6
  • A7 due
  • Assignment 8 out
11 (Nov 10) OS Kernels, Booting, xv6
  • A8 due
12 (Nov 17) File Systems
  • Exam 2 (11/20)
  • Project 2 out
13 (Nov 24) File Systems
13 (Dec 1) Wrap-up
  • Project 2 due