Matthieu Perrin

Maître de conférences
à Nantes Université
LS2N, équipe GDD

Responsabilités pédagogiques

Parcours ALMA (Master Informatique)

Je suis co-responsable avec Hala Skaf-Molli du parcours ALMA (Architectures Logicielles et Distribuées) du Master Informatique de Nantes Université. Le parcours forme aux architectures logicielles robustes et aux systèmes distribués (modélisation, algorithmique, fiabilité), avec des applications vers le génie logiciel, les plates-formes distribuées, les données et l'intelligence artificielle. Il associe des enseignements de haut niveau et des projets de recherche, en lien étroit avec les laboratoires du LS2N.

Langages et Automates (Licence 2, Informatique et Info-Maths)

Ce cours introduit les langages formels et les automates finis, bases théoriques de la compilation et de l’analyse de programmes. Les étudiants y découvrent les expressions rationnelles, la déterminisation, la minimisation d’automates et les grammaires algébriques, avec des travaux pratiques sur l'analyse lexicale et syntaxique.

Calculabilité et Complexité (Licence 3, Informatique et Info-Maths)

Le cours présente les fondements de la calculabilité, à travers les machines de Turing, les langages décidables et indécidables, ainsi que les notions de réduction et de problèmes NP-complets. Il met l’accent sur la modélisation des problèmes de décision et la compréhension des limites du calcul effectif.

Programmation Concurrente en Multi-thread (Master 1, ALMA)

Ce module explore la programmation parallèle sur systèmes multi-cœurs, en particulier les mécanismes de synchronisation (verrous, sections critiques, objets partagés) et les structures concurrentes. Les étudiants développent et évaluent des programmes Java multi-threads, de la synchronisation basique aux algorithmes d'exclusion mutuelle.

Programmation Distribuée (Master 1, ALMA)

Le cours aborde l'algorithmique des systèmes concurrents, en étudiant les notions de terminaison non bloquante, de hiérarchie de consensus, et de preuves de correction. Les étudiants conçoivent des implémentations d’objets partagés garantissant la linéarisation, et des preuves d'impossibilité.

Services de Communication et Systèmes Distribués (Master 2, ALMA)

Ce module traite de l'algorithmique répartie dans les systèmes à passage de messages, soumis à des pannes et retards de communication. Il couvre les abstractions de diffusion de messages (reliable, causal, total order), la tolérance aux fautes, les registres distribués (ABD), le consensus et la machine à états répliquée.