Plano de Ensino

Ciência da Computação

Página do Curso

Plano de Ensino | URI Câmpus de Erechim

PLANO DE ENSINO

DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO

Disciplina: Programação Paralela e Distribuída

Código: 30-895

Carga Horária: 40h (30h Prática + 10h Teórica)

Nº de Créditos: 02

 

EMENTA

Programação Concorrente. Implementação de sincronização e IPC. Multithreading.

 

OBJETIVOS

Apresentar ao aluno conceitos de programação concorrente, com enfoque em multithreading, buscando através de conceitos teóricos e implementação prática, dar subsídios para o desenvolvimento de aplicações concorrentes e multitarefa.

 

CONTEÚDOS CURRICULARES

Definições de Programação Concorrente

Problemas de Concorrência

Implementação de comunicação entre processos

Implementação de sincronização de processos

Programação Procedural Baseada em Variáveis Compartilhadas

Programação Multithread

Gerenciamento de Processadores e Distribuição de Processos

Conceitos

Características de hardware e software

Escalonamento

Balanceamento de carga

Comunicação e Coordenação Distribuída

Ordenação de eventos

Exclusão mútua

Atomicidade

Controle

Impasse

Gerenciamento de recursos

Chamadas Remotas de Procedimento

 

METODOLOGIA

Os alunos desenvolverão Trabalhos Discente Efetivos (TDE) no total de 20h, de acordo com o planejamento do professor: estudos de caso, pesquisas bibliográficas, resolução de problemas e lista de exercícios.

O desenvolvimento dos conteúdos será feito através de aulas expositivas verbais e diálogo entre alunos e professor (com utilização de recursos audiovisuais e técnicas como exibição de slides, exposição oral, demonstrações práticas e teóricas), enquanto são discutidos os itens de cunho teórico; evoluindo em tópicos específicos para exercícios práticos e demonstrações (com técnicas como atividades práticas individuais, em grupos, demais atividades direcionadas ao conteúdo e discussões) visando a fixação dos conteúdos, e contextualização baseada em publicações atualizadas. Uso de atividades em laboratório com o objetivo de demonstrar os conceitos estudados. Também serão realizados estudos de caso, debates, resolução de exercícios práticos, com execução de atividades que possibilitem a aplicação do conteúdo visto em aula de forma dinâmica e interativa.

No decorrer do semestre, serão utilizadas metodologias ativas com o objetivo de potencializar o processo de ensino-aprendizagem.

 

AVALIAÇÃO

Para esta disciplina a avaliação semestral deve considerar a média ponderada entre as notas, que serão definidas através das seguintes avaliações:

Parte da avaliação da disciplina, com peso 20%, será referente às atividades desenvolvidas nas TDEs, conforme previsto pelas regras da graduação Ativa da URI;

Comporá também uma das notas da disciplina a avaliação do aluno conforme o projeto integrador, com peso a ser definido pelo professor de acordo com o tema norteador e projeto aplicado no semestre;

O restante das notas consistirá em provas e trabalhos (teóricos e/ou práticos), com assuntos específicos da disciplina.

A atribuição de notas para a avaliação do desempenho do acadêmico, segue o prescreve o Regimento Geral da Universidade, Art. 88 a 92.

 

BIBLIOGRAFIA

BIBLIOGRAFIA BÁSICA

BARNES, David J; KÖLLING, Michael. Programação orientada a objetos com Java: uma introdução prática usando o BlueJ. 4. ed. São Paulo: Pearson Prentice Hall, 2009.

SEBESTA, Robert W. Conceitos de linguagens de programação. 9 ed. Porto Alegre: Bookman, 2011.

TOSCANI, Simão Sirineo; OLIVEIRA, Rômulo Silva de; CARISSIMI, Alexandre da Silva. Sistemas operacionais e programação concorrente. Porto Alegre: Sagra Luzzatto, 2003.

 

BIBLIOGRAFIA COMPLEMENTAR

S., OLIVEIRA, Rômulo, CARISSIMI, Alexandre S., and TOSCANI, Simão S. Sistemas Operacionais - Vol. 11 - 4a edição. Bookman, 2010. VitalBook file.

Ken, ARNOLD,, GOSLING, James, and HOLMES, David. A Linguagem de Programação Java, 4a edição. Bookman, 2007. VitalBook file.

DANTAS, Mário. Computação distribuída de alto desempenho: redes, clusters e grids computacionais. Rio de Janeiro:Axcel Books do Brasil, 2005.

DEITEL, Paul; DEITEL, Harvey; FÁBIO LUÍS PICELLI LUCCHINI EV. TÉCNICA. Java: como programar. 8. ed. São Paulo: Pearson Prentice Hall, 2011. xxix, 1144 p.

SILBERSCHATZ, Abraham ; Galvin, Peter. B. GAGNE, Greg. Sistemas Operacionais Com Java. 7. ed. São Paulo: Elsevier, 2008