Programmation Fine et Complexité Empirique
- Enseigant: Christophe Papazian
- Prérequis : Algorithmique, Structure de Données, Complexité
- Pour étudiants motivés par la programmation et l'algorithmique.
Le but de ce module est de donner aux étudiants
- la capacité d'évaluer dans un cadre pratique et de manière autonome la rapidité d'execution d'un algorithme ou d'une de ses parties.
- la capacité de choisir l'implémentation algorithmique la plus rapide pour un problème donné et pour un type d'entrées donné.
- la connaissance de la différence entre complexité asymptotique (théorie) et résultats empiriques obtenus par benchmark.
- la connaissance des compromis entre rapidité et fonctionnalités disponibles (accès rapides, mutables vs non mutables...).
- la capacité de présenter les résultats obtenus à un public non averti.
Comme sujets supports de ces évaluations pratiques, nous utiliserons des problèmes liés aux tris, aux files de priorités et à des structures algorithmiques plus complexes, comme les AVL. Les étudiants seront encouragés à utiliser différents langages de programmation (Python, Java, C, ...)