PyRat

Présentation du cours

Le cours se base sur un jeu prenant la forme d’un labyrinthe, dans lequel sont dispersés des morceaux de fromage. Deux personnages y sont placés, et se déplacent de case en case grâce à des scripts Python écrits par les étudiants. L’objectif du jeu est de ramasser plus de morceaux de fromage que l’adversaire.

Si l’objectif est simple à énoncer, il n’est pas forcément simple à atteindre. En effet, le cours apprend aux étudiants à abstraire le problème en encodant le labyrinthe sous la forme d’un graphe. Les algorithmes de parcours de graphe vus en cours permettent ensuite d’atteindre des objectifs de difficulté croissante :

  1. Aller chercher un unique morceau de fromage.
  2. Réussir l’objectif 1. en effectuant le moins de mouvements possible.
  3. Réussir l’objectif 2. dans des labyrinthes contenant de la boue (deux cases séparées par de la boue nécessitent plus de mouvements pour passer de l’une à l’autre).
  4. Aller chercher plusieurs morceaux de fromage en effectuant le moins de mouvements possible.
  5. Ramasser plus de morceaux de fromage qu’un adversaire.

L’objectif 4. permet d’introduire des notions plus fondamentales de l’informatique, comme les classes de complexité. En réalité, ce quatrième objectif ne peut pas être atteint en un temps acceptable quand le nombre de morceaux de fromage est trop grand (on parle ici de plusieurs années/siècles). On peut donc étudier des solutions approchées, donnant un nombre de mouvements proche de l’optimal en un temps bien plus court.

A la fin des cours, les programmes des étudiants s’affrontent dans un grand tournoi en amphithéâtre. Voici les liens des finales 2015-2016 et 2016-2017.

Ressources

Le cours utilise un blog sur lequel sont disponibles les cours, les transparents, ainsi qu’un grand nombre d’autres documents et d’informations.

Le logiciel PyRat est disponible en licence libre GNU GPL v3 fonctionnant sous Linux. Les instructions de téléchargement sont disponibles sur le blog.

Communication

J’ai présenté le cours PyRat lors de la conférence PyCon 2016 à Rennes ainsi que lors des journées UTICE 2016 sur les jeux sérieux et la pédagogie dans l’enseignement supérieur. J’y présente entre autres la philosophie derrière le cours, ainsi que des détails plus techniques que dans ce bref résumé. J’ai également présenté PyRat au colloque QPES à Grenoble sur les questions de pédagogies dans l’enseignement supérieur. Si vous êtes intéressé(e) par mes travaux et souhaitez les citer dans vos recherches, merci d’utiliser cette dernière publication.

PyRat – Un jeu sérieux pour l’enseignement de l’informatique
Questions de Pédagogies dans l’Enseignement Supérieur (QPES), 2017
Auteurs
  • Bastien Pasdeloup
  • Marine Karmann
Résumé

L’enseignement de l’informatique, et plus précisément de l’algorithmique et de la programmation, n’est pas une chose aisée en première année d’école d’ingénieur. L’hétérogénéité des provenances et des formations antérieures entraîne de fortes disparités dans les niveaux et dans les attentes des étudiants, rendant difficile la définition d’un enseignement adapté à tous. Il en résulte de nombreux échecs ainsi qu’un désintéressement global pour l’informatique. Face à ce constat, nous avons mis en place à la rentrée 2015 un cours à trois vitesses novateur, basé sur un jeu sérieux : PyRat. Ce retour d’expérience détaille nos idées ainsi que leur mise en place, et présente nos premiers résultats concernant l’impact de ce nouvel enseignement sur les résultats et la motivation des étudiants.

Liens
PyRat – Un jeu pour l’apprentissage de l’informatique avec Python
  • PyCon, Rennes, France, 2016
  • Journées UTICE sur les jeux sérieux et la pédagogie de l’enseignement supérieur, 2016
Auteur Bastien Pasdeloup
Résumé

PyRat est un cours de programmation/algorithmique/théorie des graphes donné à Télécom Bretagne Brest depuis l’an dernier. Le cours se base sur un jeu vidéo, sous la forme d’un labyrinthe dans lequel des bouts de fromage sont disposés. Dans ce labyrinthe, il y a aussi deux pions (un par joueur). Ces pions sont contrôlés par des programmes Python simples écrits par les étudiants. Un des intérêts du logiciel est qu’il permet d’étudier d’une part la théorie des graphes et les algorithmes associés (notions de graphe, de parcours, de plus court chemin, voyageur de commerce…) mais aussi de directement mettre en application les concepts vus en cours, en programmant en Python des petits programmes pour atteindre divers objectifs de difficulté croissante : aller chercher un unique bout de fromage via le plus court chemin ou non; ajout de boue dans le labyrinthe pour étudier les graphes pondérés; algorithmes NP-complets pour aller chercher plusieurs bouts de fromage; algorithmes approchés pour atteindre le même objectif; etc. L’an dernier, nous avons terminé le cours par un tournoi dans lequel les diverses IAs des étudiants se sont affrontées, l’objectif étant de ramasser plus de bouts de fromage que l’adversaire. L’objectif de cette présentation est de vous présenter le logiciel PyRat, pour donner des idées à des enseignants désireux d’enseigner Python et la théorie des graphes de manière ludique !

Liens

Distribution

Comme énoncé plus haut, PyRat est un logiciel libre disponible en licence libre GNU GPL v3, développé par mes soins pendant mon doctorat à IMT Atlantique (alors Télécom Bretagne). Vous avez donc tout à fait le droit de télécharger (détails sur le blog) les sources ainsi que les contenus du blog afin de déployer PyRat dans votre établissement.

PyRat est actuellement déployé à l’ECAM Rennes, qui a intégré ses nouveaux enseignements à la rentrée 2017. De plus, le cours a été conservé lors de la fusion de Télécom Bretagne et de l’école des Mines de Nantes. Enfin, un MOOC basé sur le cours est en développement par les enseignants de l’IMT Atlantique.