plano de ensino - Sheila Morais de Almeida

Propaganda
Ministério da Educação
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Câmpus Ponta Grossa
PLANO DE ENSINO
CURSO
Bacharelado em Ciência da Computação
FUNDAMENTAÇÃO
LEGAL
MATRIZ
797
Portaria Ministerial, nº 430, publicada no D.O.U, de 29 de julho de 2014 e Resolução 106/15 COGEP de 10 de dezembro de 2015.
DISCIPLINA/UNIDADE CURRICULAR
Análise e Projeto de Algoritmos
CÓDIGO
PERÍODO
CC55B
5
AT
51
CARGA HORÁRIA (Aulas)
AP
APS
AD APCC
17
4
-
Total Total
Aulas Horas
72
60
AT: Atividades Teóricas, AP: Atividades Práticas, APS: Atividades Práticas Supervisionadas, AD: Atividades a Distância, APCC: Atividades
Práticas como Componente Curricular.
PRÉREQUISITO
EQUIVALÊNCIA
CC53A - Estruturas de Dados 2
CC35B - Análise De Algoritmos
OBJETIVOS
Conhecer as técnicas e formalismos fundamentais para analisar algoritmos.
EMENTA
Medidas de complexidade e cotas inferiores. Análise de algoritmos iterativos e recursivos. Análise de estruturas de dados:
lineares, filas de prioridade, árvores. Análise de Algoritmos aleatorizados: tabelas de espalhamento, árvore binária de
pesquisa, ordenação. Técnicas de projeto de algoritmos: divisão e conquista, técnica gulosa e programação dinâmica.
Algoritmos em grafos: busca, caminho mínimo, ordenação topológica, árvore geradora de custo mínimo, fluxo máximo.
CONTEÚDO PROGRAMÁTICO
ITEM
EMENTA
1
Medidas de complexidade.
2
Notações.
3
Análise de algoritmos iterativos e recursivos.
Cotas inferiores.
4
Análise de estruturas de dados: lineares, filas
de prioridade, árvores.
5
Análise de Algoritmos aleatorizados: tabelas
de espalhamento, árvore binária de pesquisa.
6
Algoritmos de ordenação.
7
8
Técnicas de projeto de algoritmos: divisão e
conquista, técnica gulosa e programação
dinâmica.
Algoritmos em grafos: busca, caminho mínimo,
ordenação topológica, árvore geradora de
custo mínimo, fluxo máximo.
CONTEÚDO
- Modelo RAM, complexidade de tempo e espaço.
- Notações Theta, O, o pequeno, Ômega e ômega pequeno.
- Análises de pior caso e melhor caso.
- Provas de corretude de algoritmos e técnicas para prova de
pertinência em classes de complexidade.
- Uso de relações de recorrência para análise de algoritmos
recursivos.
- Definição de cotas inferiores.
- Análise de complexidade de tempo dos algoritmos que
executam operações básicas em vetores e listas ligadas, tais
como busca, inserção e remoção de elementos.
- Análise de complexidade de tempo em algoritmos de inserção e
remoção em filas de prioridade.
- Análise de complexidade de tempo de algoritmos que executam
operações de inserção e busca em tabelas de espalhamento.
- Análise de complexidade de tempo em algoritmos que
implementam busca em árvores binárias de pesquisa.
- Apresentação de algoritmos clássicos de ordenação e
comparação de suas complexidades de tempo.
- Técnicas de projeto de algoritmos: divisão e conquista, técnica
gulosa e programação dinâmica. Definições, análise comparativa,
exemplos de algoritmos e análise de complexidade
- Terminologia, definições e apresentação de algoritmos clássicos
em grafos: busca, caminho mínimo, ordenação topológica, árvore
geradora de custo mínimo, fluxo máximo.
PROFESSOR
TURMA
Sheila Morais de Almeida
ANO/SEMESTRE
2016/2
AT
50
AP
16
CARGA HORÁRIA(aulas)
APS
4
AD
-
AT: Atividades Teóricas, AP: Atividades Práticas, APS: Atividades Práticas Supervisionadas, AD: Atividades a Distância.
Total
70
DIAS DAS AULAS PRESENCIAIS
Dia da semana
Segunda
Terça
Quarta
Número de aulas no semestre
Quinta
34
Sexta
32
Sábado
PROGRAMAÇÃO E CONTEÚDOS DAS AULAS (Previsão)
Dia
Conteúdo das Aulas
11/08
12/08
18/08
19/08
25/08
26/08
01/09
02/09
Apresentação do plano de ensino. Modelo RAM, complexidade de tempo e espaço.
Notações O, Ômega e Theta.
Provas de pertinência de funções aos conjuntos O, Ômega e Theta.
Notações o pequeno e ômega pequeno.
Provas de pertinência de funções aos conjuntos o pequeno e ômega pequeno.
Análises de pior caso e melhor caso. Provas de pertinência em classes de complexidade.
Análises de pior caso e melhor caso. Provas de pertinência em classes de complexidade.
Análise de complexidade de tempo dos algoritmos que executam operações básicas em vetores e
listas ligadas, tais como busca, inserção e remoção de elementos.
Relações de recorrência.
Resolução de relações de recorrência.
Uso de relações de recorrência para análise de algoritmos recursivos.
Primeira prova.
SATI
SATI
Análise de complexidade de tempo em algoritmos que implementam busca em árvores binárias de
pesquisa.
Análise de complexidade de tempo em algoritmos de inserção e remoção em filas de prioridade.
Primeira prova substitutiva.
Análise de complexidade de tempo de algoritmos que executam operações de inserção e busca em
tabelas de espalhamento.
Análise complexidade dos algoritmos de ordenação por Inserção e Seleção.
Análise de Complexidade do QuickSort.
Análise de Complexidade do Merge Sort.
Projeto de Algoritmos por divisão e conquista.
Projeto de Algoritmos pela técnica gulosa. Algoritmo de Kruskal para o cálculo da Árvore Geradora de
Custo Mínimo. Algoritmo de Kahn para ordenação topológica.
Projeto de Algoritmos pela técnica de Programação Dinâmica. Algoritmo de Floyd &Warshall para
cálculo do menor caminho entre todos os pares de vértices.
Análise de complexidade dos algoritmos de busca em grafos.
Análise de complexidade e prova de corretude do Algoritmo de Dijkstra.
Análise de complexidade do Algoritmo de Ford &Fulkerson para determinação do Fluxo máximo em
redes.
Segunda prova.
Redução entre problemas.
Problemas NP-difíceis e NP-Completos.
Segunda prova substitutiva.
Fechamento do semestre.
Fechamento do semestre.
08/09
09/09
22/09
23/09
29/09
30/09
06/10
07/10
13/10
14/10
20/10
21/10
27/10
03/11
04/11
10/11
11/11
17/11
18/11
24/11
25/11
01/12
02/12
08/12
09/12
Número
de
Aulas
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
PROCEDIMENTOS DE ENSINO
AULAS TEÓRICAS
Aulas expositivas e dialogadas nas quais poderão ser utilizados como recursos didáticos: multimídia, computador,
entre outros que se fizerem necessários.
AULAS PRÁTICAS
As aulas práticas consistirão fundamentalmente de resolução de exercícios.
ATIVIDADES PRÁTICAS SUPERVISIONADAS
Atividades acadêmicas desenvolvidas sob orientação, supervisão e avaliação de docentes e realizadas pelos discentes em
horários diferentes daqueles destinados às atividades presenciais (aulas teóricas e aulas práticas). Estas atividades poderão
incluir: estudo dirigido, trabalhos individuais, trabalhos em grupo, desenvolvimento de projetos, atividades em laboratório,
atividades de campo, oficinas, pesquisas, estudos de casos, seminários, desenvolvimento de trabalhos acadêmicos, dentre
outras.
ATIVIDADES A DISTÂNCIA
Não estão previstas.
PROCEDIMENTOS DE AVALIAÇÃO
A aprovação dar-se-á por nota final, proveniente de avaliações realizadas ao longo do semestre letivo e por freqüência.
Considerar-se-á aprovado na disciplina o aluno que tiver freqüência igual ou superior a 75% (setenta e cinco por cento) e
nota final igual ou superior a 6,0(seis), consideradas todas as avaliações previstas no Plano de Aulas. Ao longo do semestre
serão realizadasduas avaliações substitutivas, de forma que o aluno possa recuperar o desempenho nas avaliações do
semestre.
A avaliação será composta de duas provas, P1 e P2, que serão aplicadas nas datas previstas no Plano de Aulas. A média
final do aluno será dada por:
M = (P1 + P2)/2
Para que o aluno possa recuperar o seu desempenho, serão oferecidas duas provas substitutivas, S1 e S2, que caso
tenham nota melhor, substituirão as notas das provas P1 e P2, respectivamente. As provas substitutivas também serão
aplicadas nas datas previstas no Plano de Aulas.
REFERÊNCIAS
Referências Básicas:
CORMEN, Thomas H. et al. Introduction to algorithms. 3rd ed. Cambridge, Mass.: MIT Press, 2009. 1292 p.
ZIVIANI, Nivio. Projeto de algorítmos: com implementações em Pascal e C. 3. ed. São Paulo: Cengage Learning, 2011. 639
p.
EDELWEISS, Nina; GALANTE, Renata. Estruturas de dados. Porto Alegre, RS: Bookman, 2009. 261 p.
ReferênciasComplementares:
WILF, Herbert S. Algorithms and complexity. 2nd ed. Natick, MA: A K Peters, 2002. 219 p.
TENENBAUM, Aaron M.; LANGSAM, Yedidyah; AUGENSTEIN, Moshe. Estruturas de dados usando C. São Paulo: Makron,
1995. 884 p.
FEOFILOFF, Paulo. Algoritmos em linguagem C. Rio de Janeiro, RJ: Elsevier; Campus, 2009. 208 p.
DASGUPTA, Sanjoy; PAPADIMITRIOU, Christos H.; VAZIRANI, Umesh. Algoritmos. São Paulo: McGraw-Hill, 2009. 320 p.
WIRTH, Niklaus. Algorítmos e estruturas de dados. Rio de Janeiro: LTC, 1999. 255 p.
KNUTH, Donald E. The art of computer programming. Reading, Mass.: Addison-Wesley; 2006. 3v. Addison-Wesley (series in
computer science and information processing)
Al Aho and Jeff Ullman. Foundations of Computer Science. Editora W. Freeman, 1994.
ORIENTAÇÕES GERAIS
Recomenda-se fortemente que o aluno dedique pelo menos 3 horas por semana extraclasse para resolução de
exercícios dos livros que são referências básicas da disciplina e que compareça nos horários de atendimento ao
aluno para sanar eventuais dúvidas. A solução de exercícios extraclasse é determinante para a aprovação nesta
disciplina.
Assinatura do Professor
Assinatura do Coordenador do Curso
Download