Ce document présente un cours d'algorithmique avancée axé sur la complexité et l'optimalité des algorithmes, avec un aperçu des différents types de complexité et des techniques de programmation récursive. Il aborde également des exemples concrets d'algorithmes tels que le calcul de polynômes et le tri par insertion, en détaillant leur efficacité et leurs coûts en termes d'opérations. Les sections sur la récursivité explorent divers types de récursivité et donnent des exemples d'implémentation d'algorithmes récursifs.