Introduction théorique et appliquée à l'algorithmique. Ce cours couvre les notions d'algorithme, de complexité algorithmique, de spécification et de preuve formelle des algorithmes. Il présente également les principales catégories d'algorithmes: exploration, diviser/conquérir, programmation dynamique. Les travaux pratiques consistent à créer et implémenter des algorithmes avec le langage Java.