DM883: Distributed Systems

Study Board of Science

Teaching language: Danish or English depending on the teacher, but English if international students are enrolled
EKA: N340091102
Assessment: Second examiner: Internal
Grading: 7-point grading scale
Offered in: Odense
Offered in: Spring
Level: Master

STADS ID (UVA): N340091101
ECTS value: 5

Date of Approval: 08-10-2020


Duration: 1 semester

Version: Archive

Entry requirements

None

Academic preconditions

The student is expected to be familiar with the basics of operating systems and computer networks and have a basic understanding of concurrent programming obtained e.g. by having followed:

  • DM563 Concurrent Programming,
  • DM510 Operating Systems,
  • DM557 Network and Security.

Course introduction

The course aims to provide students with the foundations and tools for the design and implementation of distributed systems. For this purpose, the course is organised into three main parts:

      • The first covers architectural aspects of distributed systems by analysing the main paradigms and patterns. 
      • The second covers communication models that can be adopted in these distributed systems and the corresponding middleware solutions. 
      • The third deals with the main problems that commonly arise in distributed programming, such as achievement of consensus, detection of failures and deadlocks, resource management and replication, by providing adequate techniques and algorithmic solutions.

      In relation to the competence profile of the degree it is the explicit focus of the course to:

      • Give the competence to reflect on the knowledge of the field of Computer Science and to identify scientific issues.
      • Give skills to elucidate hypotheses on a qualified theoretical background and critically refer to own and others' research results and scientific models.
      • Give knowledge and understanding of how scientific knowledge is obtained and modeled through an interplay between theory and experiment.

      Expected learning outcome

      The learning objective of the course is that the student demonstrates independence in the analysis, design, and programming of distributed systems.  Specifically, after the course the student is expected to be able to:

        • Identify fundamental scenarios and solutions in distributed systems.
        • Describe distributed architectures and algorithms covered in the course.
        • Explain fundamental problems, techniques, and solutions for distributed systems.
        • Reason about properties of concrete distributed systems.
        • Describe and analyse distributed architectures and algorithms using model-based approaches.
        • Design and implement non-trivial distributed systems.

        Content

        The following main topics are contained in the course:

        • Logical time and global state in distributed systems.
        • Communication paradigms, message ordering, and group communication.
        • Distributed coordination and shared memory.
        • Consensus and agreement in distributed systems.
        • Replication, consistency, and fault tolerance.
        • Decentralised and peer-to-peer architectures.

        Literature

        See Blackboard for syllabus lists and additional literature references.

        Examination regulations

        Exam element a)

        Timing

        Spring

        Tests

        Projects and oral examination

        EKA

        N340091102

        Assessment

        Second examiner: Internal

        Grading

        7-point grading scale

        Identification

        Full name and SDU username

        Language

        Normally, the same as teaching language

        Examination aids

        To be announced during the course.

        ECTS value

        5

        Additional information

        During the course a set of problems is assigned as well as a final project. These form the basis for an oral exam at the end of the course. The final grade, will be based on an overall impression of the student's performance in the two elements which are part of the evaluation. The co-examiner will be able to see the solutions of the assigned problems.

        The examination form for re-examination may be different from the exam form at the regular exam.

        Indicative number of lessons

        40 hours per semester

        Teaching Method

        The teaching method is based on three phase model.

        • Intro phase: 24 hours.
        • Skills training phase: 16 hours, hereof tutorials: 16 hours.

        Activities during the study phase:

        • Self study of various parts of the course material.
        • Reflection upon the intro and training sections.
        • Solving small assignments, individually or in small groups.

        Teacher responsible

        Name E-mail Department
        Marco Peressotti Peressotti@imada.sdu.dk Institut for Matematik og Datalogi

        Timetable

        Administrative Unit

        Institut for Matematik og Datalogi (datalogi)

        Team at Educational Law & Registration

        NAT

        Offered in

        Odense

        Recommended course of study

        Profile Education Semester Offer period