Plano de Estudos
Programação Paralela e Concorrente PPC
Contextos
Groupo: 2_MCD 2025/26 > 2º Ciclo > Parte Escolar > Opcionais 1º Semestre > Opção Grupo 1, 2 ou 3 > 2008 - MCD - Grupo 2: Foco em Dados (CEI)
ECTS
6.0 (para cálculo da média)
Objectivos
Estudar programação concorrente com ênfase na correção e na produtividade. Aprender novas abstrações de programação para a concorrência que serão úteis para a programação de clusters de computadores multi-core. Introduzir técnicas de raciocínio sobre o comportamento e o desempenho de programas paralelos. Compreender e ser proficiente no uso de diferentes linguagens de programação e nos seus ambientes de desenvolvimento.
Programa
- O modelo de atores. - Programação com streams. - Barreiras. - A abstração Map-Reduce. - Memória transacional por software. - Os alunos irão estudar programas paralelos retirados de diferentes domínios aplicacionais. - Os alunos irão trabalhar com diversas linguagens de programação modernas, incluindo, possivelmente, as linguagens X10, Erlang, Go, Haskell, Scala, e Rust.
Método de Avaliação
Métodos de ensino: exposição da matéria em aulas teóricas e acompanhamento aos alunos. Avaliação: - Trabalhos escritos; - Projetos de programação;
Carga Horária
Carga Horária de Contacto -
Trabalho Autónomo - 119.0
Carga Total -
Bibliografia
Principal
- Programming models for parallel computing: Balaji, Pavan 2015
- Structured parallel programming: patterns for efficient computation: McCool, Michael D., Arch D. Robison, and James Reinders. 2012
- Learn Concurrent Programming with Go: James Cutajar 2023 ISBN 9781633438385
Secundária
- Seven concurrency models in seven weeks: when threads unravel: Butcher, P 2014
- Java concurrency in practice: Goetz, Brian 2016