Currículo
Programação Concorrente e Distribuída L5096
Contextos
Groupo: Escola de Tecnologias e Arquitetura > Optativas > Departamento de Ciências e Tecnologias da Informação > 1º Ciclo
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: :