Cursos‎ > ‎

Programação Concorrente e Paralela 2015.2

Introdução

No 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ção

A 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

  1. Introdução
  2. Simultaneidade e Paralelismo
  3. Modelagem e Threads
  4. Sincronização
  5. Vivacidade e Métodos Protegidos
  6. Objeto Condição
  7. Propriedades de Concorrência
  8. Redes de Petri
  9. Computação Paralela

Bibliografia






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











http://www.amazon.com/Java-Concurrency-Practice-Brian-Goetz/dp/0321349601
Brian Goetz
Java Concurrency in Practice
Addison Wesley
2006






Material do curso

Slides do curso e Lista de Exercício:

Todo material do curso encontra-se nesta página: Material do curso

Material 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 Final

Os detalhes do projeto final da disciplina: Problema do Jogo de Cartas

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 final

20/01: Bruno Filgueiras

27/01: Marcos Andres

01/02: Edgar Fonseca, Lucas dos Reis 

03/02: Lucas Vieira, Marcilio, Washington.

15/02: Alan Tavares, Bruno Marques, Joel Nogueira Após as apresentações haverá a aplicação da 3 NPC.

17/02: Benedito Jefferson, Marcelo Asfor, Thiago Gomes

22/02: Alex Pedrosa, Jafer Daltro, Renan da Silva 

24/02: Caroline, Jefferson Pinheiro, Juan Garcia, Renan Felipe  

Horário e Local

Horário: 24AB Tarde Segunda e Quarta  (13:30 h as 15:10 h)

Sala: P5 do Bloco P

Calendário (tentativa)

Início das aulas: 19/10/2015

Semana Universitária: 09-13/11/2015

Primeira Avaliação (NPC 1): 07/12/2015 (Capítulos 1 a 5)

Segunda Avaliação (NPC 2): 25/01/2016 (Capítulos 6 a 10)

Dúvidas do trabalho final com aluno Pedro Ramires: 27/01/2016 

Terceira Avaliação (NPC 3): 15/02/2016 (Capítulos 1 a 10) (opcional) 

Apresentação do Trabalho Final: 27/01/2016 a 24/02/2016

Entrega do Trabalho Final (relatório): 24/02/2016

Prova Final (NEF): 29/02/2016

Fim das aulas: 29/02/2016

Subpáginas (1): Problema do Jogo de Cartas
Comments