Computer Engineering

Distributed Computation

<< back to Curriculum Plan

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

 

 

 


<< back to Curriculum Plan
ISO 9001
NP4552
SGC
KreativEu
erasmus
catedra
b-on
portugal2020
centro2020
compete2020
crusoe
fct
feder
fse
poch
portugal2030
poseur
prr
santander
republica
UE next generation
Centro 2030
Lisboa 2020
Compete 2030
co-financiado