Ementa:
Conceitos básicos: recorrências, medidas de complexidade: melhor caso, caso médio e pior caso. Técnicas gerais de projeto de algoritmos: divisão e conquista, método guloso e programação dinâmica. Classes de complexidade: P, NP e NP-completude. 

Recomendação:
Matemática Discreta, Algoritmos e Estruturas de Dados I

Bibliografia:
- J. Erickson, "Algorithms," disponível em https://jeffe.cs.illinois.edu/teaching/algorithms/
- T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stain, "Introduction to Algorithms," 3rd ed., MIT Press (2009)