Notions élémentaires d'algorithmique. Notation asymptotique. Analyse d'algorithmes selon le temps de calcul et l'espace mémoire : approches empirique, théorique et hybride ; consommation en pire cas, en moyenne et amortie. Patrons de conception d'algorithmes : vorace, diviser-pour-régner, programmation dynamique, parcours de graphes, métaheuristique, approximatif, probabiliste. Caractérisation des algorithmes d'optimisation : exact, heuristique, approximatif. Introduction aux classes de complexité : P et NP. Décidabilité.