Ficha de Disciplina proposta

Disciplina:

Sistemas Distribuídos
Período: 1º Semestre
Ano:
Créditos: 3,5
Ano Lectivo: 2002/2003
2a) Objectivos: Dotar os alunos com a capacidade de:
- conceber e implementar aplicações distribuídas relativamente simples
- avaliar a adequação de soluções distribuídas para diversos problemas.
2b) Programa: Introdução aos sistemas distribuídos e à computação em rede. Modelos de comunicação: troca de mensagens, invocação remota. Objectos distribuídos. Nomes: identificação e localização. Sincronização. Replicação e consistência; tolerância a falhas. Segurança. Infraestruturas de sistemas distribuídos.
2c) Bibliografia:  
Principal: Distributed Systems: Principles and Paradigms, A. S. Tanenbaum, M. van Steen, Prentice-Hall, 2002, ISBN 0-13-088893-1
Complementar: Distributed Systems: Concepts and Design, 3rd ed., G. Coulouris, J. Dollimore, T. Kindberg, Addison-Wesley, 2001, ISBN: 0-201-61918-0.
Unix Network Programming- Vols. 1 e 2, W. R. Stevens, Prentice-Hall, 1998, ISBN: 0-13-490012-X e 0-13-081081-9.
Metodologia: As aulas teóricas são de exposição, apresentadas normalmente com recurso a acetatos. Sempre que fôr adequado, exemplos que ajudem à compreensão dos tópicos serão apresentados. A matéria exposta segue de perto a contida no livro de Tanenbaum e van Steen. Apontamentos ou artigos sobre as matérias não (devidamente) cobertas pela bibliografia indicada, serão fornecidos ou indicados à medida que for oportuno. A cadência de apresentação da matéria será tal que permita aos alunos adquirirem conhecimentos sólidos dos princípios fundamentais da área de Sistemas Distribuídos. Não se pretende a cobertura total da área (mesmo que tal fosse possível), pelo que ramificações do tema e aplicações específicas serão mencionadas mas não enfatizadas. As aulas teórico-práticas serão essencialmente usadas para discutir questões relacionadas com problemas de programação, que serão propostos aos alunos para resolução fora das aulas. Os exercícios práticos sugeridos, utilizarão ferramentas disponíveis nos sistemas operativos actuais ou de domínio público, que farão parte dos recursos informáticos do CICA e do DEEC. O sistema operativo de referência é o Unix, nas suas variantes Linux e Digital Unix.
3a) Modo Avaliação: Avaliação distribuída com exame final.
3b) Componentes de Avaliação: Alunos em regime normal:
PP1,2 - provas práticas de programação (durante o período lectivo, 2h de duração, 6 valores);
TC - trabalhos para casa (4 valores).
ET - componente teórica do exame final (escrita, 1h30m de duração, sem consulta de documentação, 10 valores).
Alunos em regime especial:
É idêntica à dos alunos ordinários, mas estão isentos dos trabalhos para casa, pelo que as provas práticas serão, agora, classificadas até 10 valores.
3c) Condições para obtenção de frequência: Não ultrapassagem do número limite de faltas e obtenção de um mínimo de 50% na soma das componentes PP1,2 e TC.
3d) Fórmula de cálculo da classificação final: Alunos em regime normal:
- 0.15PP1 + 0.15PP2 + 0.2TC + 0.5ET
Alunos em regime especial:
- 0.25PP1 + 0.25PP2 + 0.5ET
3e) Provas e trabalhos especiais: Os alunos que pretenderem efectuar a melhoria de nota, nas épocas correspondentes, submeter-se-ão a um exame teórico idêntico ao da época normal, e a um exame prático idêntico às provas práticas antes descritas, classificado para 10 valores.
No entanto, a melhoria de classificação de notas iguais ou superiores a 18 valores será feita através dum exame oral, que incidirá não só sobre aspectos teóricos mas também sobre aspectos práticos.
Observações e comentários adicionais, incluindo pré-requisitos: Todas as provas escritas serão efectuadas sem consulta de documentação pessoal.

Como pré-requisitos que possibilitem o sucesso no aproveitamento da disciplina, espera-se que os alunos tenham
- conhecimentos de programação em C, C++ ou Java;
- conhecimentos de utilização de Unix;
- conhecimentos básicos de sistemas operativos.