Enseignement
Certification du Logiciel
Algorithmique géométrique en Python
Ce cours s'est déroulé en juillet 2013 puis a été repris par une enseignante de l'université Cheik Anta Diop. Le principe était de faire une introduction à le géométrie algorithmique à travers des problématiques classiques que l'on trouve dans les ouvrages de référence (intersection de segments, triangulation de polygones, enveloppe convexe, diagrammes de Voronoï) et de le programmer en Python avec une interface graphique minimaliste, le public visé étant une promotion d'étudiants en mathématiques non forcément habitués à programmer.
Voici quelques exercices basiques de programmation pour s'entraîner à Python et/ou à la programmation, suivis de quelques algorithmes standard de géométrie algorithmique à implanter en Python.
1. Exercices de base en Python 3
2. Structures de contrôle en Python 3
3- Géométrie tortue - euclide.py
4. Triangularisation d'un polygone par la méthode des oreilles
Les corrigés (pas forcément complets)
Corrigé de la première feuille
corrigé de la deuxième feuille
Corrigé de la troisième feuille
ISN
Les cours intégrés de préparation à l'habilitation ISN des professeurs du secondaire sont essentiellement assurés par Stéphane Cateloin et Julien Montavont. J'ai eu la charge de l'introduction à l'architecture des ordinateurs (présentation jointe, c'est celle de 2012) et de théorie des langages, compilation.
Cours d'introduction à l'architecture des ordinateurs
Petits exercices d'application : circuits combinatoires et séquentiels
Enseignements 2009/2010
Calculabilité et complexité (1ère année de master)
Après avoir rappelé la notion de machine de Turing et diverses variantes, dont les machines de Turing non-déterministes, on expose d'autres paradigmes de calcul : les grammaires générales et les fonctions mu-calculables. On montre que toutes les variantes de machines de Turing sont équivalentes -- toute fonction calculable avec une variante, l'est avec tout autre variante et tout langage décidé dans une variante est décidable avec toute autre variante -- et équivalentes aux grammaires et aux fonctions mu-calculables. Toutes les preuves données sont constructives : on donne des "algorithmes" transformant une machine dans un formalisme en une machine équivalente dans un autre formalisme.
On montre ensuite des fonctions qui sont non-calculables au sens de Turing, ou des problèmes qui sont non décidables.
On se pose ensuite la question de la calculabilité en pratique en abordant les notions de classe de complexité P, NP et EXP. On définit la NP-complétude, on pose le problème "P=NP ?" et on démontre le théorème de Cook et la NP-complétude de divers problèmes classiques.
Introduction aux grandes catégories de problèmes (2ème année de licence)
Introduction aux questions essentielles de la notion de calculabilité et de classes de langages.
Automates, machines de Turing, Halting problem, complexité et NP-complétude.
On essaie d'être aussi précis que possible sans faire, naturellement, un cours complet de théorie des langages et calculabilité.
Graphes et recherche opérationnelle (2ème année de licence)
Théorie des graphes (MTG, 1ère année ENSIIE)
Logique (MLO, 1ère année ENSIIE)
Fondement des systèmes d'exploitation (3ème année de licence)
Programmation et VBA (3ème année de licence math-éco)
Cours de programmation de base avec un soupçon de programmation orientée objet et des exemples d'utilisation des objets de l'application Excel en VBA.
Ce cours est une introduction à la preuve assistée par ordinateur à travers le logiciel Coq. Vous trouverez ici les sujets de TP rédigés par N. Magaud, avec qui j'ai eu la charge des TP. Le cours a été assuré par J. Narboux, vous trouverez les transparents de ce cours sur sa page.