4 ECTS credits
100 h study time

Offer 1 with catalog number 4004970EER for all students in the 1st semester at a (E) Master - advanced level.

Semester
1st semester
Enrollment based on exam contract
Possible
Grading method
Grading (scale from 0 to 20)
Can retake in second session
Yes
Taught in
Dutch
Faculty
Faculteit Ingenieurswetenschappen
Department
Electronics and Informatics
Educational team
Nikolaos Deligiannis (course titular)
Activities and contact hours
18 contact hours Lecture
50 contact hours Independent or External Form of Study
Course Content

Distributed computing refers to a large collaboration between networked processing units that allows for their processing capacity to be put at the service of a large problem.  Nowadays, many systems and applications are being distributed for a variety of reasons: fault-tolerance, processing performance, security as well as geographical spreading of the data or the problem requirements.

This course digs into the internals of distributed computing and storage architectures, with particular emphasis on algorithms and techniques that underlie today’s distributed computing systems. Topics addressed in this course include: (1) Introduction to the Cloud, including a view on the components and features in Today’s Cloud; (2) an overview of MapReduce, including the environment of MapReduce and Hadoop, as well as fundamental operations (such as matrix-vector and matrix-matrix multiplication) in MapReduce; (3) The Gossip protocol and its analysis; (4) The Consensus problem in distributed system models and the Paxos algorithm; (5) the problem of fault detection and solutions such as membership and the optimal failure detector; (6) overview of Peer-to-Peer systems (including Napster, Gnutella, FastTrack, BitTorrent, and Chord); (7) description of key-value stores (including well-known solutions such as Cassandra and HBase); (8) the problem of time and synchronization in distributed systems (including, Lamport / vector timestamps, and pulse-coupled oscillators); (9) the problem of distributed coding for information exchange between distributed agents.

 

Course material
Handbook (Recommended) : Distributed Computing and Storage Architectures: Slides, Course notes, Selected Papers, Fundamentals of Superscalar Processors, Nikolaos Deligiannis, McGraw-Hill, 9781478607830, 2013
Digital course material (Recommended) : Distributed systems: concepts and design, George Coulouris, Jean Dollimore, Tim Kindberg, Gordor Blair, 5th Edition, pearson education, 2005
Digital course material (Recommended) : Data-intensive text processing with MapReduce. Synthesis Lectures on Human Language Technologies, Jimmy Lin and Chris Dyer, Morgan & Claypool Synthesis Lectures on Human Language Technologies, 2010
Additional info

The goal of this course is to introduce the fundamental concepts, methods, and technologies relevant for the design of distributed computing and storage systems as well as to present specific challenges associated with the distributed character of the processing task at hand. Distributed computing is an enabling technology for big data analytics, which is one of the most highly growing disciplines nowadays. The students will have the opportunity to follow a set of lectures and to practically use these concepts in the form of a project.

Learning Outcomes

General competencies

At the end of this course, the student will have developed a deep knowledge and understanding in state-of-the-art concepts and technologies in distributed computing. The student will be able to formulate, grasp, and analyse the fundamental designs in big data systems and to solve big data problems in the cloud using the MapReduce paradigm. The student will understand the basic technologies in distributed computing systems and will be able to use in practice the acquired knowledge in terms of a project. The student will be able to investigate how fundamental concepts and protocols such as Chord find application in today’s distributed systems.

Grading

The final grade is composed based on the following categories:
Other Exam determines 100% of the final mark.

Within the Other Exam category, the following assignments need to be completed:

  • exam with a relative weight of 1 which comprises 100% of the final mark.

    Note: Oral exam with written preparation

Additional info regarding evaluation

The final exam will be a written evaluation, where the students will address theoretical questions and will also be asked to write pseudo-code that solves specific distributed computing problems. The project will examine the students’ involvement in the seminar sessions, evaluate their in-depth understanding of distributed computing algorithms, and assess their practical coding skills.

The final grade is composed based on the following examinations: (1) the result of a final exam, which determines 70% of the final mark; and (2) the result of a project work, which determines 30% of the final mark.

Allowed unsatisfactory mark
The supplementary Teaching and Examination Regulations of your faculty stipulate whether an allowed unsatisfactory mark for this programme unit is permitted.

Academic context

This offer is part of the following study plans:
Master of Photonics Engineering: Standaard traject (only offered in Dutch)
Master of Applied Sciences and Engineering: Applied Computer Science: Standaard traject (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Artificial Intelligence (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Multimedia (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Software Languages and Software Engineering (only offered in Dutch)
Master in Applied Sciences and Engineering: Computer Science: Data Management and Analytics (only offered in Dutch)