Pré-requisitos: Estruturas de Dados I
Professor Responsável: Vânia Félix Dias
Objetivos da Disciplina
Estudar as principais estruturas de dados não triviais. Obter base para o desenvolvimento de sistemas com estruturas de dados eficientes e transmitir noções básicas de complexidade relacionadas as estruturas de dados.
Ementa
Noções de complexidade de algoritmos. Árvores balanceadas. Tabelas de Dispersão (Hashing). Representações de Grafos.
Conteúdo Programático
- Noções de complexidade de algoritmos
- Árvores binárias de busca
- Árvores AVL
- Árvores Rubro-Negras
- Árvores B e B+
- Tabelas de Dispersão
- Estruturas de Dados para Conjuntos Disjuntos
Metodologia
Exposição de conteúdo: nas aulas presenciais serão apresentados o conteúdo teórico das diversas estruturas de dados não triviais, fortemente demonstrados através de exemplos de cada uma das estruturas estudadas.
Aprendizagem colaborativa: para o entendimento dos conteúdos serão apresentados problemas cujas soluções serão propostas e discutidas pelos alunos.
Aprendizagem baseada em projeto: a fim de solucionar alguns problemas propostos, o aluno deverá desenvolver projetos de algoritmos utilizando as estruturas de dados vistas em sala.
Avaliação
Avaliação contínua: ao longo da disciplina, o estudante apresentará em grupo aproximadamente 5 projetos, um para cada problema proposto, sendo cada um dos problemas correspondente a uma das estruturas de dados estudada no momento.
Avaliação somativa: ao longo da disciplina haverão duas avaliações com o objetivo de avaliar pontos específicos do conteúdo programático de forma individual.
Cálculo da nota final: (média dos trabalhos intermediários) / 2 + (média das provas) / 2.
Para ser aprovado na disciplina, o aluno precisa obter nota final acima de 5.
Bibliografia
- Szwarcfiter, J.L. & Markenzon, L. Estruturas de Dados e seus Algoritmos. Rio de Janeiro: LTC, 1994.
- Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald L., STEIN, Clifford. Algoritmos: Teoria e Prática, Rio de Janeiro: Editora Campus, 2002.
- Cormen, T.H.; Leiserson, C.E.; & Rivest, R.L.; Stein, C. Introduction to Algorithms. 3rd Ed.. The MIT Press, 2009.
- Knuth, D.E. The Art of Computer Programming – Vols I e III. 2nd Ed. Addison Wesley, 1973.
- Gersting, J.L. Fundamentos Matemáticos para a Ciência da Computação. 3ª Edição, Rio de Janeiro: LTC, 1995;