MAC0122 Princípios de Desenvolvimento de Algoritmos
OBJETIVOS: Estudo, através de exemplos, da correção, da análise de eficiência e do desenvolvimento de algoritmos e de suas estruturas de dados básicas.
PROGRAMA: Alguns exemplos de algoritmos usando pilhas e filas. Introdução aos conceitos de listas ligadas e ponteiros. Algoritmos recursivos. Busca, inserção e remoção em vetores e listas ligadas. Busca binária. Algoritmos de ordenação (inserção, seleção, mergesort, heapsort, quicksort, etc.). Algoritmos de casamento de padrões. Alguns exemplos de algoritmos de enumeração e otimização sobre seqüências. Prova informal da correção de algoritmos. Estudo empírico da eficiência de algoritmos.
PRÉ-REQUISITOS: MAC0110.
CARGA HORÁRIA SEMANAL E NÚMERO DE CRÉDITOS: 4 horas, 4 créditos-aula.
CRITÉRIO DE AVALIAÇÃO DA APRENDIZAGEM: Média ponderada de provas e exercícios.
BIBLIOGRAFIA BÁSICA:
- N. Wirth, Algorithms and Data Structures, Prentice Hall, 1986.
- R. Sedgewick, Algorithms in C, 3rd. ed, vol. 1, Addison-Wesley/Longman, 1998.
- N. Ziviani, Projeto de Algoritmos com Implementações em Pascal e C, Pioneira, 1993.
- J. Bentley, Programming Pearls, Addison-Wesley, 1986.
- J. Bentley, More Programming Pearls, Addison-Wesley, 1988.
- A.V. Aho, J.D. Ullman, Foundations of Computer Science, Computer Science Press, 1992.
OBSERVAÇÃO: Disciplina obrigatória nos currículos do BCC, BMA, BMAC, BE e BM.
[Veja dados da disciplina no JúpiterWeb]