Distributed SystemsECE419, Winter 2025
|
![]() |
Home Lectures Labs Piazza Quercus |
Lab Machines Lab Setup Lab Submission Lab 1 Lab 2 Lab 3 Lab 4 |
The labs consist of a number of programming assignments. These lab assignments will be released here. All the assignments are to be done individually. You can use the lab sessions to get one-on-one help from TAs. Note that all marking will be performed by the TAs after the due date outside lab hours, and hence it is not required to attend the lab sessions.
Please be aware that this course will require significant time for the programming assignments. However, the assignments have been designed so that there is enough time to completely finish each assignment. Each assignment specifies the code that needs to be read and understood. Please read the handouts carefully before starting with the assignments.
To get help with assignments, you can attend the lab sessions or use the Piazza website. Please do not post code on Piazza. Doing so will be treated as an academic offense. You can also post messages on Piazza that are only visible to TAs and the instructors.
All assignments will be done in the Go programming language. Go is a systems language originally introduced by Google. It is especially well suited for building distributed systems. Go is well documented and there are many tutorials on it. You are expected to learn this language mostly on your own.
You should start with the go tour. You can take the tour in a web browser or you can install Go on your local machine and run the tour there.
After this tour, you can go over these resources:
If you prefer a step-by-step introduction to Go, you can read one of these books:
The Go Programming Language and Environment is a short article by the original Go authors. It describes the motivation and the key design features of the language.
The assignments, their release dates, and their due dates are shown in the table below. These assignments are worth 40% of the total course mark. The breakup of the marks is shown in the last column of the table. The last assignment is a bonus assignment.
Assignments will be released on Monday evenings and due on Sunday nights at 11:59 pm, unless indicated below.
Penalties will be applied for late submission. The late penalty is 20% of the assignment's mark for every 24 hour delay, so you receive no marks after 5 days.
Lab | Topic | Release Date | Due Date | Time Alloted | Marks |
---|---|---|---|---|---|
1 | Learning Go | Jan 13 | Jan 26 | 2 weeks | 6 |
2 | Basic KV server | Jan 27 | Feb 9 | 2 weeks | 6 |
3A | Raft leader election | Feb 10 | Mar 2 | 2 weeks | 8 |
3B | Raft log | Mar 3 | Mar 16 | 2 weeks | 10 |
3C | Raft persistence | Mar 17 | Mar 30 | 2 weeks | 10 |
4A | Replicated KV server (bonus) | Mar 31 | Apr 7 | 1 week | 4 |