Critical Computing Systems Engineering

ADVANCED PROGRAMMING PARADIGMS

General Data

Type of credits: ECTS
Number of credits: 6.50
Status: Mandatory
Type: Course
Academic Year:
Term:
Languages: English, Portuguese
Available for Mobility Students: No
Restricted to alliance: No
Code: Sin codigo

Coordination

Description

Theory
2

Laboratory
3

Instructors

Luís Miguel Pinho


 

Contents

PO1. Concurrent and Parallel Programming in Shared Memory Systems
PO2. Parallel Programming with OpenMP
PO3. Fine-grained Parallel Programming
PO4. Functional Programming in the Rust Language
PO5. Concurrency and Parallelism in Rust
PO6. Real-Time Parallel Programming

Learning Outcomes

It is intended that students learn how to analyse and understand advanced systems for managing concurrent computing tasks, exploit parallel execution, analyse and develop correct concurrent and parallel applications, and acquire knowledge on advanced platforms and technologies.

The specific objectives of the unit emanate from the intended outcomes and knowledge in the context of the critical computing systems domain, mapping from the general objective above to a set of three specific objectives:

CO1. Programming paradigms and languages for critical systems: provide students with the requirements and specific challenges which are placed in programming paradigms and languages to develop cyber-physical systems for critical applications.

CO2. Functional programming: present the functional programming paradigm as an enabling technology for programming concurrent and parallel code free of side effects, reducing the complexity of programming and increasing its reliability.

CO3. Parallel and concurrent programming: provide to students the required strategies, methodologies and tools to develop concurrent and parallel algorithms and applications, with both imperative and functional programming models.