Distributed Systems

Year
3
Academic year
2025-2026
Code
01000241
Subject Area
Informatics
Language of Instruction
Portuguese
Mode of Delivery
Face-to-face
Duration
SEMESTRIAL
ECTS Credits
6.0
Type
Compulsory
Level
1st Cycle Studies

Recommended Prerequisites

Object-Oriented Programming, Operating Systems, Computer Networks.

Teaching Methods

This course includes theoretical-practical (TP) lectures with detailed exposition, using visual aids, of concepts, principles and fundamental techniques of Distributed Systems, accompanied by examples designed to increase students' interest in theoretical concepts and demonstrate their practical application. The course also includes practical (PL) classes in which students, with the guidance of the teacher, solve exercises that require combining theoretical concepts and promote critical thinking with respect to more complex problems. The practical classes are also dedicated to supporting the practical projects.

Learning Outcomes

The Distributed Systems course provides students with a comprehensive approach to the algorithms, protocols and fundamentals of modern distributed systems, including concurrent programming and parallel computing. Students shall be able to demonstrate skills in developing distributed applications using various technologies. They must also understand and combine knowledge about fundamental techniques for designing distributed applications in an organizational environment and for the Internet. The course aims to promote the acquisition of skills in analysis and synthesis, computer knowledge related to the scope of distributed and parallel systems, competence in solving problems, competence in autonomous learning and competence in applying knowledge in practice.

Work Placement(s)

No

Syllabus

Introduction to distributed systems, motivation and challenges, architectural models and middleware.

Layers of services, hardware, operating system, middleware and applications.

Concurrency, computer organization, processes, threads and synchronization.

Parallel computing, parallel machine learning, and Amdahl's law.

Remote procedure call, invocation semantics and request-response protocols.

Indirect communication, publish-subscribe systems and message-oriented middleware.

Distributed applications for the Internet, Web programming and RESTful Web services.

Primary-secondary replication and active replication, high availability solutions.

Time in distributed systems, synchronization of physical and logical clocks.

Distributed coordination and consensus, reliable multicast, causal and total ordering.

Distributed transactions and atomic commit.

Names and naming services.

Peer-to-peer systems and the blockchain.

Assessment Methods

Assessment
Project: 40.0%
Exam: 60.0%

Bibliography

 Principal | Required:

 

- Distributed Systems: Concepts and Design, 5th edition, G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, ISBN 0-13-214301-1, Pearson Education, 2011.

 

Secundária | Supplemental:

 

- Operating System Concepts, 10th edition, A. Silberschatz, P. B. Galvin, G. Gagne, ISBN 978-1119454083, Wiley, 2019.

 

- Distributed Systems, 4th edition, M. van Steen, A. S. Tanenbaun, ISBN 978-90-815406-3-6, 2023.