Plano de aula

Propaganda
U NIVERSIDADE F EDERAL DE U BERL ÂNDIA
FACULDADE DE C OMPUTAÇ ÃO
BACHARELADO EM S ISTEMAS DE I NFORMAÇ ÃO
P LANO DE D ISCIPLINA
D ISCIPLINA: Estrutura de Dados 2
( X ) S EMESTRAL - ( ) A NUAL
C ÓDIGO: GSI011
P ER ÍODO: 3o Perı́odo
C ARGA H OR ÁRIA: 72 horas-aula / semestre, 4 ( X )O BRIGAT ÓRIA - ( ) O PTATIVA
horas-aula / semana - teóricas
P R É - REQUISITOS: não há
C Ó -R EQUISITOS: não há
P ROFESSOR: Marcelo Keese Albertini
U NIDADE ACAD ÊMICA: Faculdade de
Computação - FACOM
C URSO: Graduação em Sistemas de Informação
E MENTA R ESUMIDA
Recursividade; Programação Dinâmica; Princı́pios de Análise de Algoritmos: Análise Empı́rica,
Análise Matemática, Análise Assintótica, Notação O; Ordenação; Grafos; Árvores; Busca; Árvore
de Busca Binária (ABB), Balanceamento de ABB, Hashing.
J USTIFICATIVA
Muitos problemas de alta complexidade computacional são constituı́dos por sub-problemas básicos
relacionados à organização, ordenação e busca de dados. O estudo de estruturas de dados permite
a compreensão desses problemas básicos de forma sistematizada, viabilizando a solução de problemas de alta complexidade.
O BJETIVOS
O BJETIVO GERAL
Capacitar o aluno a desenvolver soluções computacionais eficientes para problemas que necessitam
de algoritmos e/ou estruturas de dados avançadas.
O BJETIVOS ESPEC ÍFICOS
• Discutir o custo computacional de algoritmos.
• Utilizar adequadamente solução iterativa e recursiva.
• Aplicar apropriadamente solução para problemas de busca.
• Aplicar apropriadamente solução para problemas de ordenação.
• Utilizar árvores e grafos.
P ROGRAMA DA D ISCIPLINA
0. Introdução; Algoritmos, Tipo abstrato de dados
1. Princı́pios de Análise de Algoritmos
• Análise empı́rica; Análise Matemática; Análise Assintótica; Notação O
2. Recursão
• Algoritmos recursivos; Programação dinâmica
3. Ordenação
• Seleção; Inserção; Bolha; Shellsort; Mergesort; Quicksort
4. Grafos
• Terminologia; Matriz de adjacências; Listas de adjacências; Caminho de Euler e de Hamilton;
Busca em Profundidade e em largura;
5. Árvores
• Tipos de árvores; Árvore binária
6. Algoritmos de Busca
• Busca em texto; busca linear; busca binária
7. Árvore de busca binária (ABB)
• Balanceamento de árvore de busca binária
8. Hashing
9. Coleta de lixo (garbage collection)
2
Aula 1. 22/10/2013 - Apresentação da disciplina; Algoritmos; Tipo Abstrato de dados;
Aula 2. 24/10/2013 - Prática
Aula 3. 29/10/2013 - Recursividade. Programação dinâmica.
Aula 4. 31/10/2013 - Prática
Aula 5. 05/11/2013 - Análise de algoritmos: porque analisar algoritmos; tempo e espaço. Abordagem
Empı́rica. Abordagem Matemática.
Aula 6. 07/11/2013 - Prática
Aula 7. 12/11/2013 - Análise de algoritmos: porque analisar algoritmos; tempo e espaço. Abordagem
Empı́rica. Abordagem Matemática.
Aula 8. 14/11/2013 - Prática
Aula 9. 19/11/2013 - Ordenação - introdução. Algoritmos básicos: Bolha, Inserção, Seleção e Shellsort. Custo e Contexto.
Aula 10. 21/11/2013 - Prática
Aula 11. 26/11/2013 - Quicksort
Aula 12. 28/11/2013 - Prática
Aula 13. 03/12/2013 - Mergesort
Aula 14. 05/12/2013 - Prática
Aula 15. 10/12/2013 - Prova 1: análise de algoritmos e ordenação
Aula 16. 12/12/2013 - Busca em Árvore Binária de Busca (ABB): definição, algoritmos e custo
Aula 17. 17/12/2013 - Prática
Aula 18. 19/12/2013 - Busca em ABB: Heap e AVL
Aula 19. 07/01/2014 - Prática
Aula 20. 09/01/2014 - Busca: texto. Ingênuo e Automato. Custo dos algoritmos
Aula 21. 14/01/2014 - Prática
Aula 22. 16/01/2014 - Busca e árvores: revisão e exercı́cios
Aula 23. 21/01/2014 - Prática
Aula 24. 23/01/2014 - Hash: definição e funções de espalhamento; tratamento de colisão
Aula 25. 28/01/2014 - Prática
Aula 26. 30/01/2014 - Coleta de lixo (garbage collector)
Aula 27. 04/02/2014 - Prova 2: busca
Aula 28. 06/02/2014 - Grafos: O que é um grafo. Definição formal. Aplicações
Aula 29. 11/02/2014 - Prática
Aula 30. 13/02/2014 - Grafos: definições importantes. Tipo abstrato de dados: operações
Aula 31. 18/02/2014 - Prática
Aula 32. 20/02/2014 - Grafos: representações: matriz de adjacência
Aula 33. 25/02/2014 - Prática
Aula 34. 27/02/2014 - Grafos: representações: lista de adjacência
Aula 35. 06/03/2014 - Prática
Aula 36. 11/03/2014 - Grafos: caminhos em grafos: largura e profundidade
Aula 37. 13/03/2014 - Prova 3: árvores balanceadas e grafos
3
M ETODOLOGIA
• O conteúdo será apresentado na forma expositiva.
• Os conceitos serão explorados em listas de exercı́cios.
• O aprendizado será estimulado em projetos de implementação de sistemas.
• O aprendizado será avaliado através de provas, trabalhos práticos e exercı́cios conceituais.
AVALIAÇ ÃO
A avaliação do conhecimento será feita da seguinte forma:
• 3 provas teóricas, somando 80 pontos
– 1a. prova: 28/11/2013, valendo 25 pontos
– 2a. prova: 23/01/2013, valendo 25 pontos
– 3a. prova: 11/03/2013, valendo 30 pontos
• 3 trabalhos, somando 20 pontos
ATENDIMENTO
Atendimento com o professor em horário agendado e correio eletrônico.
4
B IBLIOGRAFIA
B IBLIOGRAFIA B ÁSICA
• Cormen, Thomas H. et. al. Algoritmos: Teoria e Prática. Editora Campus, 2002.
• Aho, A.V & Ullman, J.D. & Hopcroft, J.E. Data Structures and Algorithms. 3a edição,
Editora Addison Wesley
• Sedgewick, R. Algorithms in C, Parts 1-4: Data Structures, Sorting, Searching. 3a edição,
Editora Addison-Wesley
B IBLIOGRAFIA C OMPLEMENTAR
• Ziviani, N. Projeto de Algoritmos. 2a edição, Editora Thomson
• Tenenbaum, A.M. & Langsam, Y. & Augenstein, M.J. Estrutura de Dados Usando C. Editora
Pearson (Makron Books)
Entregue em
/
/
.
Assinatura do Professor
Aprovado pelo colegiado do curso em
Assinatura do Coordenador
5
/
/
.
Download