Ce cours, enseigné par Cyril Nicaud et Pascal Romon, introduit des notions de mathématiques discrètes et informatique telles que les graphes et les diverses opérations que l'on peut effectuer avec : calcul de connexité, optimisation des flots, avec un focus particulier sur les probabilités discrètes et une introduction au transport optimal discret, ainsi qu'au calcul de complexité moyenne ou maximale.
Une seconde partie s'intéresse aux algorithmes probabilistes, où l'on enrichit le modèle d'ordinateur avec l'accès à des bits aléatoires, ce qui permet de développer des solutions plus efficaces en moyenne. On revisite dans ce paradigme des algorithmes classiques comme les tris, les tables de hachage, ...
La particularité du cours est de mélanger théorie et pratique lors de TP où les notions abordées font l'objet de programmation en python. C'est une bonne préparation aux cours du M2 Mathématique et informatique, où ces concepts seront approfondis.
