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
2012 spring 17.01-23.02. 3-3 English Jussi Kangasharju


Time Room Lecturer Date
Tue 10-12 D122 Jussi Kangasharju 17.01.2012-23.02.2012
Thu 10-12 D122 Jussi Kangasharju 17.01.2012-23.02.2012

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

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


 In this course, you will familiarize yourself with practical aspects of distributed systems and algorithms. The course consists of one individual assignment and  two small (group) projects which concentrate on different aspects of distributed systems. You are allowed to work in groups of up to 3 students. The details of the assignments will be posted later.

As background knowledge, we assume that you are familiar with the material covered in the Distributed Systems course and in the Linux Fundamentals course. 

Completing the course

 Each of the assignments and projects is graded separately on scale 1-5. To pass the course you need to successfully complete each of them (i.e., get at least 1 from each of them). 

Literature and material

  • Material from the Distributed Systems course
  • Information from the web as needed

Assignment 1

Introductory slides

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

Example configuration file and example outputs for different tasks. NOTE: These are just examples and do not represent any real execution sequence of these programs!

Very brief tutorial on socket programming in Java.

 Assignment 2


Assignment 3