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 e por projectos, reforçando-se a componente prática, a aprendizagem, activa, o trabalho autónomo e a responsabilização do estudante.
O modelo de avaliação incorpora elementos de avaliação contínua no âmbito da aprendizagem ativa (projectos faseados e relatórios) compatível com a redução significativa do peso de avaliação por exames.
Avaliação:
- Exame (50%)
- O projecto contribuirá com os seguintes pesos :
- Entrega intermédia (20 %)
- Entrega final (20%)
- Relatório(10%)

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

  • Entrega final - 20 %
  • Entrega intermédia - 20 %
  • Exame - 50 %
  • Relatório - 10 %