January 25 Lab #1 is due: race conditions
February 8 Lab #2 is due: threads and synchronization
February 22 Lab #3 is due: programming with threads
March 6 In-class midterm exam
March 8 Lab #4 is due: multiprogrammed kernel
March 13 No class (spring break)
March 15  No class (spring break)
April 10 Lab #5 is due: I/O
April 19 Lab #6 is due: virtual memory
April 24 Last class (exam deferred to scheduled final)
April 25 CPS 110 is over