Distributed Systems Project

Networking and Services
Advanced studies
Practical exercises on distributed systems in form of a programming project. Project topics revolve around the concepts of the distributed systems course and show how they can be implemented in practice. Pre-requisites: Distributed Systems course.
Year Semester Date Period Language In charge
2015 spring 13.01-26.02. 3-3 English Jussi Kangasharju


Time Room Lecturer Date
Tue 10-12 C222 Jussi Kangasharju 13.01.2015-26.02.2015
Thu 10-12 C222 Jussi Kangasharju 13.01.2015-26.02.2015

Ensimmäinen kokoontuminen on tiistaina 13.1. klo 10 salissa C222 ja myöhemmistä kokoontumisista sovitaan ensimmäisellä kerralla.

The first meeting is on Tue 13th of January at 10 in room C222 and the rest of the meetings are agreed then.


The introductory slides describe the basics of the course, schedule, and grading.

NOTE: Slides have typo on schedule page. Deadline for first exercise is 20.1. and second exercise 3.2.

We use Twitter as the main means of distributing announcements under the hashtag #UnivHelsinkiCS_DSP15. Longer announcements will be also posted separately on this page.



  • 13.1. Start of first exercise (individual)
  • 15.1. Q&A for first exercise
  • 20.1. Deadline for first exercise
  • 20.1. Start of second exercise (individual)
  • 22.1., 27.1., and 29.1., Q&A for second exercise
  • 10.2. Deadline for second exercise (chaged)
  • 3.2. Start of third exercise (group)
  • 5.2., 10.2., 12.2., 17.2., 19.2., 24.2., and 26.2. Q&A for third exercise
  • 8.3. Deadline for third exercise

Completing the course

The course has 3 assignments and you have to pass all of them to pass the course. Each assignment is graded separately and the final grade is a weighted average of the individual assignment grades. Assignments 1 and 2 have weight 1 and assignment 3 has weight 2.



Assignment 1

The first assignment is to implement one distributed algorithm from the following set. Your assignment number is calculated by (your student ID % 4) + 1.

NOTE: Some versions of the assignment sheets have the wrong deadline. The correct deadline is January 20 at 10:00.

  1. Lamport clocks
  2. Vector clocks
  3. Bully election algorithm
  4. Gossiping



Assignment 2

Assignment 2 is about using Spark to process large data sets. Note that the deadline has been extended to 10.2.


Assignment 3

Assignment 3 is about overlay networks. We provide the assignment sheet already now, but official support for the assignment will only start on February 3 when we have the opening lecture on this assignment.