This page lists all lab and homework assignments and their currently anticipated due times. (The schedule may change based on the actual pacing of the course material and other factors.)
There are also quizzes after each week of lecture.
Labs which allow submission are due by 11:59am (before noon) the following day unless otherwise noted. Labs which do not allow submission must be completed in the lab time (or some special arrangement made with the instructors) unless otherwise noted.
Homeworks are due at 11:59pm Eastern Time unless otherwise noted.
If an assignment is linked but tentative, there may be some changes to the assignment before it is officially released.
- Lab: make— on 2024-01-24
- Lab: permissions— on 2024-01-31
- HW: warmup— due 2024-02-02
- Lab: signal handling— on 2024-02-07
- Lab: fork lab— on 2024-02-14
- HW: timing— due 2024-02-16
- Lab: virtual memory exploration— on 2024-02-21
- HW: fork HW— due 2024-02-23
- Lab: sync games— on 2024-02-28
- HW: pagetable part 1— due 2024-03-01
- Lab: cache exercises— on 2024-03-13
- HW: pagetable part 2 (pre code review) due BEFORE FIRST LAB — normal late policy does not apply— on 2024-03-20
- Lab: code reviews (writeup tentative)— on 2024-03-20
- HW: pagetable 3 (post code review)— due 2024-03-22
- Lab: pthreads (dining philosophers) (writeup tentative)— on 2024-03-27
- HW: cache programs— due 2024-03-29
- Lab: openmp— on 2024-04-03
- HW: TLB— due 2024-04-05
- Lab: networking— on 2024-04-10
- HW: life— due 2024-04-12
- Lab: secure channels lab (writeup tentative)— on 2024-04-17
- HW: pipeline— due 2024-04-24
- Lab: side channel— on 2024-04-24
- Lab: C++ OR templates (writeup tentative)— on never
- HW: OOO due before lecture time, late submissions not normally accepted— on 2024-04-30