IntroduçãoNo início dos tempos da computação a maioria dos programas realizavam processamento sequencial (batch). Com o aumento da capacidade dos processadores e a demanda dos programas em realizar várias tarefas simultaneamente, tornaram importante as questões de programação concorrente. Atualmente, a profusão de processadores com vários núcleos e a demanda por serviços de rede em nuvens, torna a programação concorrente um tema importante para o futuro profissional. O assunto do curso consiste em aplicar na prática os conceitos da disciplina Sistemas Operacionais, pré-requisito para essa disciplina. O enfoque do curso será a aplicação e implementação dos conceitos para resolver problemas do mundo real que envolvem concorrência em uma máquina ou uma rede. Objetivos do Curso
O objetivo do curso é aprofundar conceitos de programação concorrente e paralela, focados na implementação. A metodologia consiste na exposição dos principais conceitos e mostrar exemplos de problemas e soluções em programação concorrente. AvaliaçãoA avaliação do curso consistirá em 2 (duas) avaliações escritas (NPC) e 1 (um) trabalho prático com valor de NPC. O trabalho prático da disciplina será a implementação de um programa para resolver o problema proposto abaixo. Será aplicada uma terceira NPC no final do semestre que servirá como segunda chamada das NPC 1 e NPC 2. O assunto da prova será toda a matéria. É facultado a todos os alunos fazer a NPC 3, sendo que será aproveitado as duas melhores notas (será desprezada a menor nota). O Trabalho prático é OBRIGATÓRIO. O trabalho consiste na implementação de um programa, sua apresentação em aula e a entrega de um relatório. A nota final será a média aritmética de três notas: duas NPCs e Trabalho Final. Caso o aluno não atinja a nota mínima deverá prestar o Exame Final (NEF) Conteúdo programático
Doug Lea Concurrent Programming in Java™: Design Principles and Pattern (2nd Edition) Prentice Hall 1999 Mordechai Ben-Ari Principles of Concurrent and Distributed Programming (2nd Edition) Addison Wesley 2006 Brian Goetz Java Concurrency in Practice Material do cursoTodo material do curso encontra-se nesta página: Material do cursoMaterial complementar:Texto com resumo sobre programação concorrente: Issue in Concurrent Programming O pequeno (não tão pequeno...) livro de semáforos: The Little Book of Semaphores Descrição do Trabalho FinalOs detalhes do projeto final da disciplina: Problema da Conta de Poupança O projeto deverá ser realizado individualmente. O trabalho prático é OBRIGATÓRIO e tem o valor igual a uma NPC. O projeto consiste em fazer uma implementação, apresentar em sala de aula e entregar um relatório descrevendo a solução adotada, os detalhes da implementação e um manual de instalação e uso, além do código fonte do programa. Será marcada uma ou mais datas para apresentação e entrega do trabalho. IMPORTANTE: A detecção de plágio nos trabalhos entregues são passíveis de aplicação das penalidades previstas no Regimento da UECE. Cronograma de apresentações do trabalho finalHorário e LocalHorário: 24AB Tarde Segunda e Quarta (13:30 h as 15:10 h) Sala: P2 do Bloco P Calendário (tentativa)Início das aulas: 02/09/2014 Primeira Avaliação (NPC 1): 13/10/2014 (Capítulos 1 a 5) Feriados: 15/10/2014 e 28/10/2014 Segunda Avaliação (NPC 2): 19/11/2014 (Capítulos 6 a 10) Semana Universitária (não haverá aula): 25/11/2014 a 28/11/2014 Terceira Avaliação (NPC 3): 17/12/2014 (Capítulos 1 a 10) (opcional) Apresentação do Trabalho Final: 01/12/2014 e 09/01/2015 Entrega do Trabalho Final (relatório): 09/01/2015 Prova Final (NEF): 14/01/2015 Fim das aulas: 14/01/2015 |
Cursos >