programa de disciplina

Propaganda
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
DIVISÃO DE ASSUNTOS ACADÊMICOS
Secretaria Geral de Cursos
PROGRAMA DE DISCIPLINA
DEPARTAMENTO DE CIÊNCIAS EXATAS
CÓDIGO: EXA842
DISCIPLINA: PROGRAMAÇÃO CONCORRENTE
CARGA HORÁRIA: 60h
EMENTA:
Conceitos básicos: processos, threads, interrupções, escalonamento. Aspectos de
implementação e concorrência. Propriedades de segurança e imparcialidade.
Modelos de concorrência. Semântica e implementação de mecanismos de
sincronização. Problemas de programação concorrente: deadlock, alocação de recursos,
leitura e escrita concorrente, exclusão mútua, consenso. Semântica e implementação de
mecanismos de comunicação. Algoritmos baseados em variáveis compartilhadas:
Dijkstra, Peterson, consenso. Algoritmos baseados em envio de mensagens.
OBJETIVOS:
Geral:
• Discutir e aplicar mecanismos relacionados ao desenvolvimento de software
concorrentes e distribuídos, enfatizando a prática com uso de Java.
Específicos:
• Entender os conceitos básicos relacionados ao tema;
• Estudar algoritmos clássicos de concorrência;
• Aprender e utilizar os recursos da linguagem de programação Java para
desenvolvimento de software concorrente;
• Projetar e implementar software concorrente / distribuído;
• Analisar estratégias de validação de programas concorrentes.
METODOLOGIA:
O curso será formado por um conjunto de atividades: i) Aulas Expositivas; ii)
Práticas de Labora tório; iii) Seminários e iv) Projeto de Software.
A seguir apresentamos os alcances de cada uma destas estratégias metodológicas:
• Um conjunto de problemas e exercícios serão propostos para aplicação prática em
laboratório. O curso será for temente baseado nestas práticas.
• Alguns seminários serão propostos p ara apresentação por p ar te dos alunos.
- 1 de 4 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
METODOLOGIA (Continuação):
Devem ser aborda dos nestes seminários temas clássico, como apresentação de alguns
algoritmos mais conhecidos e temas relacionados à tecnologias atuais associados à
programação concorrente;
• Será definido também um projeto de software com características de concorrência e
distribuição para desenvolvimento pelos alunos. O objetivo é fornecer a oportunidade
de desenvolver um software com complexidade maior do que a dos exercícios
propostos nas práticas de laboratório;
• As aulas expositivas serão dialogadas com o objetivo de introduzir assuntos que serão
tratados mais detalhadamente nos exercícios e / ou que não foram cobertos.
Material Utilizado
Para as Práticas de Laboratório e desenvolvimento do software:
• Laboratório com uma máquina para cada um ou dois alunos. Laboratório com quadro
branco e kit para escrever no quadro.
Para as Aulas Expositivas e seminários:
• Salas tradicionais de aula, com quadro negro ou branco, kit para escrever nos quadros,
retro - projetor, computador e canhão multimídia.
Para as CIs:
• Sala do professor com quadro branco, kit para escrever nos quadros, computador,
impressora, cadeiras e mesa.
AVALIAÇÃO:
O componente optativo será dividido em duas unidades, para que o estudante
possa refletir sobre sua situação na metade do curso e, caso necessário, realizar correções
de rumo no processo de aprendizagem.
Primeira unidade:
• Para a primeira unidade será realizada uma avaliação teórica a respeito dos conceitos
discutidos no curso (AT);
• Os seminários também serão considerados nesta unidade (SM).
• A média da primeira unidade será calculada d a seguinte forma:
○ 0,6 X AT + 0,4 X SM
Segunda unidade
• Será realizada uma prova prática. Em laboratório os alunos devem implementar um
programa com características de concorrência para resolver um problema passa do
pelo professor (AP);
• O projeto / apresentação do software (PJ).
• A média da segunda unidade será:
○ 0,5 X AP + 0,5 X PJ
- 2 de 4 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
AVALIAÇÃO (Continuação):
• A média ponderada de cada unidade será transformada em um conceito, utilizando as
escalas tradicionais de conversão de notas para conceitos usadas na UEFS. Os dois
conceitos resultantes serão os conceitos finais para a avaliação do s alunos;
• As datas para entrega dos produtos da resolução dos problemas serão definidas ao
longo do curso.
Provas Finais:
• Não obtendo conceito suficiente na avaliação do componente optativo, o estudante
poderá fazer prova final, e o conceito final será de acordo com o sistema de avaliação
vigente na UEFS.
Aprovação no componente optativo:
Para ser aprovado no componente optativo, o estudante precisa cumprir os
seguintes requisitos:
• Ter freqüência igual ou superior a 75% da carga horária efetiva ministrada no
componente optativo, caso contrário haverá reprovação por freqüência e o
componente optativo completo deverá ser cursado novamente;
• Ser aprovado na avaliação do componente optativo, caso contrário haverá reprovação
por conceito;
• Caso o requisito de freqüência seja atendido e o estudante seja reprovado no processo
de avaliação, passa a ser opcional a freqüência às atividades acadêmicas ordinárias do
respectivo componente optativo em períodos letivos posteriores, embora a
universidade deva reservar espaço para o estudante dentre as vagas semestrais do
componente e este deva se matricular novamente no componente optativo; neste caso,
o estudante deve refazer as atividades de avaliação no(s) período(s) seguinte(s), até
que tenha concluído o componente. Havendo dificuldades para os estudantes com
reprovação no componente optativo em período(s) anterior(es) freqüentarem as
atividades de avaliação, o corpo docente responsável pelo componente poderá fazer
avaliações em separado para estes estudantes.
CONTEÚDO PROGRAMÁTICO:
1)
•
•
•
•
2)
•
•
•
•
•
Conceitos básicos
Processos
Threads
Exclusão mútua
Região crítica
Programação concorrente em Java:
Threads
Syncrhonized
RMI
EJB
Outros
- 3 de 4 -
UNIVERSIDADE ESTADUAL DE FEIRA DE SANTANA
Autorizada pelo Decreto Federal nº 77.496 de 27/04/76
Reconhecida pela Portaria Ministerial nº 874/86 de 19/12/86
Recredenciada pelo Decreto Estadual Nº 9.271 de 14/12/2004
CONTEÚDO PROGRAMÁTICO (Continuação):
3) Mecanismos de sincronização
• Semáforos
• Monitores
• Troca de mensagens
4) Algoritmos concorrentes:
• Peterson
• Consenso
• Dijkstra
• Outros
5) Modelos de estruturação de Programa s Distribuídos
• RPC
• CORBA
• RMI, EJB
• Socket s
REFERÊNCIA BIBLIOGRÁFICA:
Lea, D.; Concurrent Programming in Java: Design principles and patterns Addison Wesley, 1997
ECKEL, B. Thinking in Patterns with Java. 1a. ed. MindView, 2003.
Henri Bal - Programming Distributed Systems - Prentice Hall, 1990. Gerard
Tel - Introduction to Distributed Algorithms - Cambridge Universi ty Pres s, 1994.
Gregory Andrews - Foundations of Multithreaded, Parallel and Distributed
Programming - Addison -Wesley, 1999.
Z. Tari - Fundamentals of Distributed Object Systems - John Wiley & Sons, 2001
- 4 de 4 -
Download