Publication in the Diário da República: Despacho n.º 8644/2020 - 08/09/2020
5 ECTS; 3º Ano, 1º Semestre, 28,0 PL + 28,0 TP , Cód. 911943.
Lecturer
- António Manuel Rodrigues Manso (1)(2)
(1) Lead Professor
(2) Teaching Professor
Prerequisites
Java programming
Graphical user interfaces
Object-oriented programming
Data structures and algorithms
Computer networks
Objectives
1 - To understand the key concepts of distributed computing and their application in
different architectures
2 - To understand and apply security principles in distributed systems.
3 - To develop the skills to design and develop robust,
efficient and secure distributed systems
Program
1 - Distributed systems
a. Introduction to distributed systems
b. Distributed systems architectures
c. Blockchain technology: Definition, data structures and consensus protocols.
2 - Information security
a. Trusted systems and security threats
b. Security objectives: Confidentiality, Integrity and Availability
c. Design and implementation of secure systems
3 - Multitasking computing
a. Models and architecture of parallel execution systems
b. Parallelization of algorithms
c. Programming with Threads
d. Concurrent access to resources
e. Load balancing
4 - Distributed computing
a. Models and architecture of distributed systems
b. Programming with Sockets
c. Remote execution of procedures
d. Programming with services
Evaluation Methodology
Practical work 60% - Minimum of 10.0 out of 20.
Theoretical exam: 40% - minimum of 7.0 out of 20
The assessment methodology applies to all terms, and for the purposes of passing, the final mark must be 10 (ten) or above.
Any situation not covered by the assessment rules will be dealt with in accordance with the academic regulations.
Bibliography
- Cardoso, J. (2010). Programação de Sistemas Distribuídos em Java. Lisboa: FCA
- Coulouris, G. e Dollimore, J. (2011). Distributed Systems: Concepts and Design. (Vol. 1). USA: Addison Wesley
- González, J. (2017). Java 9 Concurrency Cookbook. Oracle: PAckt
- Singhal , B. (2018). Beginning Blockchain: A Beginner's Guide to Building Blockchain Solutions . Paperback : Apress
Teaching Method
Lectures to present the syllabus.
Practical laboratory classes to solve problems and consolidate knowledge Accompanying and guiding the development of Distributed Systems projects
Software used in class
- Java Development Kit
- Bouncy Castle Open-source cryptographic API
- Netbeans

















