ID2203/FID3011 VT24 Distributed Systems, Advanced Course

Distributed Systems, Advanced Course - Overview

1. General Information

  • The course activities include a comprehensive set of live lectures (hybrid), pre-recorded videos, labs, notes, self-assessment & graded quizzes, programming assignments, a project, and a final exam.
  • The course requires no physical participation but know that physical attendance can give you a great interactive boost.
  • Most lectures will happen in Electrum (Ka-301) and also streamed live over Zoom Links to an external site..
  • Video recordings of the live lectures as well as pre-recorded videos will be accessible at the course Modules.
  • For Questions and Discussions, we mainly use Piazza Links to an external site. (ID2203 students are automatically enrolled).

2. How to study Distributed Systems

The subject of the course is demanding and requires your continuous involvement and focus. A deep understanding of the concepts involves a combination of domain knowledge as well as reasoning skills.

We, therefore, recommend you to follow these steps while studying this course:

  • Attend all lectures and don't be afraid to ask questions.
  • Go carefully through the course Modules that will be available in strict sequential order and take some time to watch the video lectures too, trying to understand all the properties and proofs involved.
  • Evaluate your understanding by doing every non-graded quiz.
  • Consult the textbook, especially for the introductory parts of the course as well as the specifications that are included in the book.
  • Attend all labs and tutorials and ask live questions that might have been introduced during your study.
  • Use the programming environment checker of your assignments as a sandbox to test your hypotheses. Try altering algorithms and see whether this affects the properties of the protocol that you implement (if you encounter bugs or other issues please report them in Piazza).
  • Do the graded quizzes once you feel comfortable with the module content.

3. How to Get Help?

Once the course starts you will be automatically enrolled in the Piazza Links to an external site. forum. This is the official forum of the course for all discussions, questions, and answers. If you are not enrolled after the course starts please notify the teachers via email.

You can ask questions at labs, which are described above, and also post questions in Piazza Links to an external site..  Do not send direct emails to teachers, instead post questions in Piazza Links to an external site., since then all students can be helped by the answers.

Mind that posts can be (optionally) anonymous to peer students in Piazza. Only the Instructors are able to see the author of every post.

4. Literature

The recommended reading for the course is the following book :

“Reliable and Secure Distributed Programming”
Cachin, Guerraoui, Rodrigues.

  • The book complements the course lectures but is not sufficient.
  • All additional content (notes, slides, papers) will be made available in Modules
  • If you do not want to buy a hard copy you access the e-book that is freely available to all KTH students (both in course canvas and KTH Lib)

5. Course Software

You will access an interactive programming environment based in Scala and the Kompics Links to an external site. middleware that we have developed specifically for this course. The programming interface resembles the specification style of the algorithms taught in the course. For more, check the Software section in the Modules and try to attend the programming tutorials.

6. Examination and Grading

To pass the course and get a final grade it is required to pass all examination components.

Below is more information about each examination.

  • Graded Quizzes (max 13P)
    • They assess the learning objectives of each module
    • A pass grade (>50%) is required for all Quizzes.
  • Programming Exercises (max 7P)
    • They assess your ability to express the logic of the protocols in code.
    • They help you get a better grade but are not required to pass.
  • Project (max 40P)
    • Individual/Group project (alternatives will be given)
    • The project is handed in two parts (an intermediate and final report)
    • Intermediate reports have to be peer-reviewed.
    • You will need 15P to pass the Project (LAB requirement)
    • Late project submissions that get a pass will get 15P.
  • Final exam (max 50P)
    • The exam will combine questions similar to graded quizzes with reasoning problems. In 2024 the exam is planned to be given physically at KTH. It gives max 50p, and you need 25p to pass. If you fail the exam you have to retake it on the next scheduled occasion. The exam is given two times per year, see the schema for the next occasion. 

When all examinations are passed, the final grade is calculated as follows:

total = Graded Quizzes (max 13P)  + Programming Exercises (max 7P) + Project (max 40P) + Exam (max 50P) = max 110P

where 90+: A, 80+: B, 70+: C, 60+: D, 50+: E, <50: F

The grade that is calculated according to the formula above will be given for all course examinations.

7. Disability

If you have a disability, you can get support through Funka, KTH's coordinator for students with disabilities, see https://www.kth.se/student/studentliv/funktionsnedsattning. In addition, if you have special needs that do not concern the written exam, inform the course coordinator and show the certificate from Funka.

Support actions under code R (i.e. adaptations relating to space, time, and physical circumstances) are generally granted by the examiner.

Support actions under code P (educational adaptation) can be granted or rejected by the examiner after you have applied in accordance with KTH's rules. Normally, support efforts under code P are also granted.

8. Teachers

  • All course-related questions should be asked in Piazza Links to an external site., so that all participants can see the answer. Furthermore, the Lab sessions will also offer live Q&A via the help of the course Teaching Assistants. However, if and only if the question contains private information you can contact the teachers directly:
    • Harald Ng, Course Teaching Assistant
    • Sonia-Florina Horchidan, Course Teaching Assistant
    • Jonas Spenger, Course Teaching Assistant

Public domain This course content is offered under a Public domain Links to an external site. license. Content in this course can be considered under this license unless otherwise noted.