Cours
cours.roussille.eu est la plateforme que j'ai construite pour mes étudiants. Elle réunit mes cours actuels à 3iL Ingénieurs (Rodez) et une partie de ceux que j'ai donnés auparavant à l'EPITA et à l'Université Paul Sabatier (Toulouse). Chaque cours y a ses chapitres, ses exercices et, selon la matière, ses projets.
Le code s'écrit et s'exécute directement dans la page : un vrai compilateur Java, un interprète OCaml, un simulateur 68000 qu'on peut suivre pas à pas. Il n'y a rien à installer, et les exercices sont vérifiés par des tests, avec un retour immédiat. La plateforme donne à mes étudiants des chapitres à lire et des quiz qui ramènent les notions ratées.
Les supports de cours sont en accès libre ; le cœur des cours (exercices, parcours…) est réservé à mes étudiants. La plateforme contient aussi une page, « Ma méthode », où j'explique comment mes cours sont organisés et évalués, et sur quelles études ces choix s'appuient.
Cours actuels
3iL Ingénieurs (Rodez)
Je coordonne le domaine Développement sur le campus de Rodez.
1re année
- Programmation professionnelle (section par apprentissage, septembre à novembre 2026) : architecture logicielle, exceptions, patrons de conception.
- Conception orientée objet (apprentissage) : Java objet en profondeur, avec classes et objets, héritage, interfaces, généricité, collections et streams.
- Java, avant la rentrée (en accès libre) : le cours de pré-rentrée, avec un test de positionnement qui dit par où commencer.
- Fondamentaux du développeur : terminal, Git, refactoring, programmation défensive, débogage, tests et documentation.
- UML : besoins et cas d'utilisation, comportement dynamique, structure du projet.
- Méthodes de travail : apprendre, rédiger, survivre en ligne de commande.
- Prompt engineering : écrire pour un modèle de langage, et ce que cela engage.
- Architecture micro-services : découper un système en services indépendants, concevoir des API, et les déployer dans une chaîne DevOps (Docker, Jenkins, ELK, Kubernetes), avec Spring Boot, Django ou Node.js.
2e année
- Développement avancé, en trois matières :
- Architecture avancée : panorama des styles d'architecture logicielle (monolithique, hexagonale, micro-services…), patterns avancés (DDD, CQRS, Event Sourcing, Circuit Breaker, Saga) et choix argumenté selon les contraintes d'un projet.
- Programmation avancée : les langages Rust, JavaScript, Python, Java, Go et Elixir.
- DevOps avancé, assuré par F. Dieny.
- Programmation fonctionnelle : raisonner sur un programme comme une transformation de données, en F#, puis transférer ces réflexes vers Java moderne (lambdas, Streams).
- Initiation à la recherche : formuler une problématique, mener une recherche bibliographique (avec Zotero et LaTeX), puis rédiger en groupe un état de l'art au format d'un article scientifique.
Tutoriels
- Algorithmique et Python (pour les classes préparatoires scientifiques) : sur Tatoufé.
Anciens cours
EPITA, Toulouse (2019 à 2020)
- Programmation fonctionnelle en Caml (1re année, cycle préparatoire) : un séminaire d'algorithmique pour débuter la programmation.
- Théorie des langages rationnels (2e année, cycle préparatoire) : expressions rationnelles, automates finis, minimisation.
- Programmation en C (2e année, cycle préparatoire) : pointeurs, mémoire, structures de données, processus et threads POSIX.
- Algorithmique en Python (pas sur la plateforme).
- Programmation en C# (pas sur la plateforme).
Université Paul Sabatier, Toulouse (2013 à 2017, pendant ma thèse)
- Logique pour l'informatique (L2 Informatique) : calcul propositionnel et logique du premier ordre.
- Assembleur 68000 (L1 Informatique) : programmer le processeur Motorola 68000 au plus près de la machine.
- Informatique pour la L1 Sciences de la nature (pas sur la plateforme) : un cours orienté Python et R.
- Programmation en Ada (pas sur la plateforme).