Go to:
Esta página em português Ajuda Autenticar-se
You are in:: Start > CC4003

Site map
FC6 - Departamento de Ciência de Computadores FC5 - Edifício Central FC4 - Departamento de Biologia FC3 - Departamento de Física e Astronomia e Departamento GAOT FC2 - Departamento de Química e Bioquímica FC1 - Departamento de Matemática

Distributed Systems

Code: CC4003     Acronym: CC4003     Level: 400

Classification Keyword
OFICIAL Computer Science

Instance: 2014/2015 - 1S

Active? Yes
Responsible unit: Department of Computer Science
Course/CS Responsible: Master's degree in Computer Science

Cycles of Study/Courses

Acronym No. of Students Study Plan Curricular Years Credits UCN Credits ECTS Contact hours Total Time
M:CC 6 Study plan since 2014/2015 1 - 6 42 162
MI:ERS 18 Plano Oficial desde ano letivo 2014 4 - 6 42 162

Teaching Staff - Responsibilities

Teacher Responsibility
Luís Miguel Barros Lopes

Teaching - Hours

Theoretical and practical : 3,00
Type Teacher Classes Hour
Theoretical and practical Totals 1 3,00
Luís Miguel Barros Lopes 3,00

Teaching language



We aim to provide students with an introduction to the fundamental problems in the design and implementation of distributed systems. On completing this course, students must be able to:

(a) Explain what is a distributed system, why should an application be built as a distributed system, and what are the desirable properties of such systems;
(b) Describe the principles guiding the construction of distributed systems, the main problems and associated challenges, and perceive the efficiency and limitations of proposed solutions;
(c) Build systems that use basic OS mechanisms such as UNIX sockets, as well as higher level middleware RMI and Web Services.

Learning outcomes and competences

- knowledge of the architecture of a distributed system
- understanding the functioning of a distributed system
- capability to implement parts of a distributed system
- understanding of the capabilities and limitations of a distributed system


Working method


Pre-requirements (prior knowledge) and co-requirements (common knowledge)

- core programming skills
- algorithms and data structures
- design and analysis of algorithms
- operating systems


Introduction to Distributed Systems.
Software and System Architectures.
Processes, Threads and Virtual Machines.
Communication Models.
Names and Name Resolution.
Clocks and Synchronization.
Consistency Models.

Mandatory literature

Andrew S. Tanenbaum, Maarten van Steen; Distributed Systems: Principles and Paradigms, Prentice-Hall, 2nd ed., 2007
G. Coulouris, J. Dollimore, T. Kindberg; Distributed Systems: Concepts and Design, Addison-Wesley 4ed., 2005

Teaching methods and learning activities

Classes with theory and practical examples.

Evaluation Type

Evaluation with final exam

Assessment Components

designation Weight (%)
Exame 60,00
Participação presencial 0,00
Trabalho laboratorial 40,00
Total: 100,00

Eligibility for exams

Students are required to obtain a mark of at least 50% in the practical assignments to be eligible to qualify in this course.

Calculation formula of final grade

Final exam weighing 60% in the final grade.
Minimum grade of 50%.

Practical assignments weighing 40% in the final grade.
Minimum grade of 50%.

Final grade = (0.6 * exam + 0.4 * assignments) * 20

Classification improvement

Please contact the teacher.

Recommend this page Top
Copyright 1996-2022 © Faculdade de Ciências da Universidade do Porto  I Terms and Conditions  I Acessibility  I Index A-Z  I Guest Book
Page created on: 2022-01-24 at 14:11:06