EMDC - European Master in Distributed Computing

The European Master in Distributed Computing aims at giving the best possible foundation for a career in research and development of scalable and reliable distributed systems. After the program, students should not only understand and be able to use large distributed systems but they should be capable of designing and constructing such systems.

The European Master in Distributed Computing is an Erasmus Mundus Master program operated jointly by:

KTH Royal Institute of Technology, Sweden

Instituto Superior Técnico, IST , Portugal

Universitat Politècnica de Catalunya, UPC, Spain

Programme outline

Complete curriculum

Curriculum and course descriptions:

The programme comprises three semesters of course work and one semester for thesis work, 120 ECTS in total. The first year of studies, 60 ECTS, is carried out at one of the two optional entry locations, IST and UPC. The third semester of studies will be carried out at KTH, 30 ECTS. Students will then prepare their master thesis at one of the participant institutions, 30 ECTS.

The first year of studies achieves integration of courses between IST and UPC in solid distributed computing fundamentals background, while allowing a significant degree of specialization in more advance courses, tailored for different student profiles and principal faculty expertise of each institution.

The specific profiles offered at IST and UPC address two different sets of concerns in design, development, evaluation, and evolution of distributed computing systems: overall system reliability at IST (fault-tolerance, interoperability, autonomic systems), performance and scalability at UPC (performance measurement, tuning, large-scale systems).

The third semester of studies at KTH receives all students providing them with common advanced courses that assume and leverage course integration of previous semesters. This motivates students to develop large-scale projects integrating both common and complementary skills acquired earlier, and developing research methodology and scientific writing, essential to pursue further studies and research.

Course overview


1st Semester:
Distribute and Networked Systems, 6 ECTS
Security in Information Technology Systems, 6 ECTS
Parallel Programming Models and Algorithms, 6 ECTS
Performance Tuning and Analysis Tools, 6 ECTS
Concurrent and Distributed Programming, 6 ECTS

2nd Semester: (5 out of 6)
Execution Environments for Distributed Computing, 6 ECTS
Decentralized Systems, 6 ECTS
Scalable Distributed Systems, 6 ECTS
Measurement Tools and Techniques, 6 ECTS
Mathematical Concepts Applied to Computer Networks, 6 ECTS
Internet and Multimedia Application Protocols, 6 ECTS


1st Semester:
Middleware for Distributed Internet Applications, 7.5 ECTS
Network and Computer Security, 7.5 ECTS
Peer-to-Peer Systems and Overlay Networks, 7.5 ECTS
Parallel and Distributed Computing, 7.5 ECTS

2nd Semester: (4 out of 6)
Fault-Tolerant Distributed Systems, 7.5 ECTS
Cloud Computing, 7.5 ECTS
Virtual Execution Environments, 7.5 ECTS
Mobile Computing, 7.5 ECTS
Applications and Implementations of Cryptographic Algorithms, 7.5 ECTS
Database Administration and Tuning, 7.5 ECTS


3rd Semester:
Philosophy of Science, 7.5 ECTS
Advanced Topics in Distributed Computing, 7.5 ECTS
Implementation of Scalable Distributed Systems, 7.5 ECTS
Scientific Writing and Communication, 7.5 ECTS

Master's thesis

The objective is for students to demonstrate the individual skills acquired during the programme and apply them to solve a realistic problem. The student should write a thesis report and present, demonstrate and defend the results. The thesis project may be proposed by the student, an examiner, a company, a public agency or any other external organization.

Career prospects

Information technology is becoming ubiquitous and increasingly important for all kinds of organizations, including enterprises, factories, public utilities, state bodies, health care, banking, transportation, airport and harbor control, etc. Information technology, and Distributed Computing in particular, is required to successfully undertake and manage large-scale projects on such organizations. Furthermore, Distributed Computing provides the foundations to manage the communications and data processing required by other science fields such as health sciences, biology, physics, chemistry, mechanical and civil engineering.



Top page top