Apresentação de conceitos avançados que levem o aluno a uma maturidade em programação estruturada, com conhecimento de uma linguagem de programação com recursos avançados.Aprendizado de técnicas para construção de algoritmos e para análise da complexidade de algoritmos.Aprendizado de algoritmos clássicos de ordenação e busca em memória interna. Prática de Programação.
Conceitos avançados de análise de algoritmos. Paradigmas de projetos de algoritmos. Métodos de ordenação. Espalhamento (hashing). Grafos.
Conceitos avançados de análise de algoritmos: método da árvore de recorrência e teorema mestre. Paradigmas de projetos de algoritmos. Métodos de ordenação diretos e avançados: inserção, seleção, bubblesort, quicksort, heapsort. Métodos de busca em memória interna: sequencial, binária e árvores, comparação entre métodos. Espalhamento (hashing). Grafos: noções básicas, representação, percurso e algoritmos clássicos sobre grafos (caminhos mínimos, ordenação topológica, componentes fortemente conectados, árvores geradoras mínimas).
Livro Texto:. CORMEN, T. H.; LEISERSON, C. E.; RIVEST, R. L.; STEIN, C. Algoritmos: Teoria ePratica. Editora Campus. 2002.. ZIVIANI, N., Projeto de algoritmos, 2a. edição, Thomson, 2004.Bibliografa Complementar:. ROBERTS, E., Programming Abstractions in C, Addison Wesley, 1996.. SEDGEWICK, R., Algorithms in C, Addison-Wesley, 1990.. KERNIGHAM, B. W.; RITCHIE, D. M. C, A Linguagem de Programação Padrão ANSI,Editora Campus, 1995.