There will be five main programming assignments for this course. The first four use the Go programming language are based on assignments used in MIT’s distributed systems course (6.824). In completing these assignments, you will become familiar with Go while building a fault-tolerant distributed key-value store. Some of the assignments build off of each other, thus it is critical that you begin them early, and have working versions of each by the deadlines. To facilitate this, we will make all assignments available to you immediately. If you find yourself struggling with any assignments, please consult Piazza and come to CA office hours!

The fifth homework is under development to replace the in-class exams/quizzes this course would normally have in non-pandemic times. We will release that homework shortly after HW4’s due date.

Deadlines are specified in each homework’s descriptions and summarized in the Deadlines page. There will be NO DEADLINE EXTENSIONS for any reason other than health conditions (of the student or of someone close if that impacts the student). However, there is a 72-hour grace period, accumulated over all homeworks, for which you will not be downgraded. Lateness is accounted at hour granularity (i.e., 1 second late == 1 hour late). Once you reach 72 hours of lateness, the next homework to incur even a one-second delay will be graded as ZERO. Thus, the strong recommendation is to submit on time, even if with an imperfectly running homework.