Programação Concorrente

Código

01061540

Créditos ECTS

3

Objetivos

São objetivos desta UC dotar os alunos com conhecimentos e competência suficientes para a programação de aplicações concorrentes.
No fim da UC os alunos serão capazes de:
- Compreendera os conceitos teóricos relacionados com programação concorrente e paralela
- Compreender os ganhos, benefício, limitações do uso de programação concorrente
- Compreender, comparar e avaliar diversos modelos de programação concorrente
- Avaliar a aplicabilidade e aplicar diversas tecnologias de programação concorrente
- Aplicar tecnologias de programação concorrente no desenvolvimento de aplicações

Programa

Modelos de paralelismo (bit, instrução, dados, tarefas)
Programação Paralela vs programação concorrente
Modelos de concorrência
Programação multitarefa
Sincronização no acesso aos dados
Programação funcional
Programming asíncrona
Map reduce

Métodos de Ensino

As metodologias de ensino pretendem fomentar a aprendizagem baseada em resolução de problemas, reforçando-se a componente prática, a aprendizagem ativa, o trabalho autónomo e a responsabilização do estudante.
As aulas teórica incluem segmentos expositivos, onde são apresentados conceitos com recurso a exemplos, e demonstrações, que ilustram conceitos de concorrência e paralelismo. As aulas de laboratório são preenchidas pela apresentação e discussão com os alunos da resolução de problemas e fichas de trabalho.
São igualmente utilizadas atividades de tutoria e de apoio à realização dos trabalhos em grupo. Nas aulas de laboratório utilizam-se métodos de ensino baseados em aprender fazendo.

Bibliografia

Seven Concurrency Models in Seven Weeks, Paul Butcher, 2014, The Pragmatic Programmers;
Using Asyncio in Python: Understanding Python's Asynchronous Programming Features, Caleb Hattingh, 2018, O'Reilly Media, Inc.;
Hadoop: The Definitive Guide, 4th Edition, Tom White, 2015, O'Reilly Media, Inc. ; Other technical reports and scientific papers, , ,

Método de Avaliação