Currículo

Programação Concorrente e Distribuída L5096

Contextos

Groupo: IGE - 2020 > 1º Ciclo > Unidades Curriculares Obrigatórias

Groupo: IGE - 2020 > 1º Ciclo > Unidades Curriculares Obrigatórias

ECTS

6.0 (para cálculo da média)

Objectivos

Após a conclusão desta unidade curricular o aluno deverá ficar apto a: OA1. Saber programar usando o paradigma da programação por eventos. OA2. Adquirir competências básicas de programação gráfica em Java - Swing. OA3. Apreender a noção de processo ligeiro. OA4. Compreender os problemas de sincronização de processos ligeiros no acesso a recursos partilhados. OA5 Compreender os mecanismos de coordenação de processos bem como os seus principais problemas como Deadlock, Livelock e Starvation. OA6. Conhecer os principais padrões de coordenação de processos ligeiros. OA7. Conhecer as arquiteturas clássicas do paradigma de programação distribuída e algoritmos concorrentes e distribuídos.

Programa

CP1. Introdução. CP2. Programação gráfica por eventos em SWING. CP3. Noção de Processo Ligeiro. Ciclo de vida de um processo ligeiro. CP4. Sincronização, cadeados. CP5. Coordenação de processos ligeiros. CP6. Bloqueio explícito. Starvation e deadlock. CP7. Estudo de alguns dos problemas clássicos da programação concorrente. CP8. Pools de processos ligeiros. CP9. Programação em rede CP10. Arquiteturas distribuídas.

Método de Avaliação

As aulas estão organizadas em blocos teóricos e de exercícios. As teóricas caracterizam-se por blocos de exposição encadeados com exemplos e exercícios. Nas aulas de exercícios, os alunos devem resolver um conjunto de problemas. Adicionalmente espera-se dos alunos ~6 horas de trabalho semanal para completar os exercícios das aulas e realizar o projeto final. | É obrigatória a inscrição para as provas escritas. A avaliação é efectuado por um projeto e uma frequência. O projeto tem dois momentos de avaliação: uma entrega intercalar e uma oral numa das últimas semanas de aulas. As classificações possíveis no Projeto Individual são (A, B, C, D). A classificação obtida no projeto não tem peso na nota final, mas define um limite máximo para a mesma: A-max. 20 B-max. 16 C-max. 12 D-reprovação à UC Nota final é apenas dada pela classificação da frequência.

Carga Horária

Carga Horária de Contacto -

Trabalho Autónomo - 95.0

Carga Total -

Bibliografia

Principal

  • Introduction to Java Programming, Y. Daniel Liang, 2009 Pearson. Foundations of Multithreaded, Parallel, and Distributed Programming, Gregory R. Andrews, 1999 Addison Wesley Principles of Concurrent and Distributed Programming, M. Ben-Ari, 2006 Addison Wesley JAVA Threads, Third Edition, Scott Oaks & Henry Wong, 2004 O'Reilly. :

Secundária

  • http://download.oracle.com/javaee/5/tutorial/doc/ Tutorial for J5EE: http://download.oracle.com/javase/tutorial/index.html Tutorial for J6SE: :

Disciplinas de Execução

2020/2021 - 2º Semestre

2021/2022 - 1º Semestre

2022/2023 - 1º Semestre

2023/2024 - 1º Semestre

2024/2025 - 1º Semestre