Etudier l’automation, de manière automatisée
Les étudiants du cours PDM4AR (Planning and Decision Making for Autonomous Robots) de l'EPF Zurich apprennent à écrire des algorithmes qui peuvent prendre des décisions de manière autonome - par exemple, apprendre à un véhicule autonome à conduire. Les cours comme celui-ci sont traditionnellement enseignés par de nombreux exercices sur papier, en résolvant quelques itérations d'un algorithme. Le cours PDM4AR a également été enseigné de cette manière, au début. Mais ce n'est pas vraiment ce qui est nécessaire pour le travail réel en robotique ; et ce n'est pas très amusant non plus. Il existe un meilleur moyen de montrer aux étudiants la véritable magie de ces algorithmes et d'éveiller leur passion pour le sujet.
Emilio Frazzoli, qui croit fermement à la valeur du travail pratique, a décidé de rapprocher le cours au monde réel et d'offrir des avantages pédagogiques qui vont au-delà du matériel de cours proprement dit. Il a travaillé avec Alessandro Zanardi, membre du PRN Automation, et Shengjie Hu, ingénieur logiciel, pour créer une expérience d'apprentissage entièrement nouvelle. Désormais, les étudiants doivent transformer la théorie qui leur a été enseignée en un code qui fonctionne réellement. Ils peuvent accéder à des outils et à des cas de test à partir d'un référentiel partagé, programmer une solution, télécharger le travail terminé sur Github - et le faire évaluer sur la base de cas de test secrets qu'ils n'ont pas vus précédemment. Leur note est automatiquement générée en fonction de leurs performances lors de ces tests.
Même si, à première vue, l'utilisation d’évaluations automatiques peut sembler peu naturelle, elle est en fait beaucoup plus réaliste que le retour d'information individuel manuel. Après tout, il n'est pas rare que le code échoue lors de tests et, aussi frustrant que cela puisse être, dans le monde réel, les programmeurs ne recevront pas d'explications détaillées sur les erreurs qu’ils ont commises. Il faut simplement le découvrir par soi-même.
« Bien plus inspirant que les cours traditionnels »
Alessandro, responsable de la conception des exercices, est ravi de cette approche innovante. « La programmation proprement dite est beaucoup plus difficile, mais aussi plus inspirante que les exercices habituels sur papier », explique-t-il. Le meilleur moyen d'obtenir cet effet « wow » est de se battre tout au long du processus de mise en œuvre de la théorie et de finalement voir son code résoudre de vrais problèmes.
« Et outre le fait qu’ils entrent en contact avec des outils modernes, comme Docker et Github, les étudiants bénéficient également de nombreuses leçons de vie inhérentes à la robotique. »
Comme la différence entre leurs cas de test et le monde réel. Et le coût du déploiement matériel.
« Les essais sur le terrain avec du matériel réel sont coûteux. Il faut donc bien réfléchir à toutes les exigences, spécifications et cas limites possibles ».
Dans ce cours, chaque étudiant reçoit une copie privée du référentiel d'exercices dans la salle de classe GitHub et peuvent prendre le temps de développer leurs propres solutions. Ce n'est que lorsqu'ils estiment que leur code est prêt qu'ils le soumettent à l'évaluation, les résultats étant automatiquement publiés dans leur propre référentiel ainsi que dans un classement commun. Il est possible de réessayer si les résultats sont mauvais, mais pas à l'infini : les étudiants peuvent soumettre un nombre limité de contributions pour chaque exercice. Cela impose une discipline similaire à celle de respecter les contraintes budgétaires.
Une autre compétence enseignée dans ce cours est la collaboration, car les deux dernières tâches sont effectuées en petits groupes. Les universités ont tendance à se concentrer sur l'évaluation individuelle, mais dans l’industrie, le travail d'équipe est essentiel. Les étudiants ont ici l'occasion de s'entraîner à travailler ensemble sur la même base de code que celles qu’ils utiliseraient dans le cadre d'un emploi dans l’industrie.
Comme pour beaucoup d'innovations, cette approche semble évidente... une fois qu'elle est déjà introduite. Mais le chemin pour y parvenir n’a pas été facile. Alessandro et Shengjie ont dû faire face à une tâche colossale : mettre en place l'infrastructure logicielle nécessaire pour fonctionner de manière fiable sur toutes les machines que les étudiants pourraient utiliser, chacune ayant sa propre architecture et son propre système d'exploitation. Et bien sûr, la conception d'exercices et de grilles d’évaluation équitables, tout en reflétant correctement la compréhension de la matière par les étudiants, a exigé beaucoup d'attention et de créativité.
Mais le jeu en vallait la chandelle. Zhengyu Fu, l'un des participants à la première édition de ce cours nouvellement automatisé, confirme que cette « expérience de codage enrichissante et captivante » lui a beaucoup appris. « Il faut comprendre en profondeur chaque aspect du matériel pour le transformer en un code fonctionnel. En outre, les étudiants doivent écrire des parties clés à partir de zéro, au lieu de se contenter de remplir des algorithmes à trous”.
Les concepteurs du cours sont convaincus de la valeur de leur dur labeur.
« Cela va bien au-delà de l'enseignement traditionnel de la robotique », explique Emilio. « Après avoir créé et développé ma propre entreprise de robotique, je voulais m'assurer que les étudiants apprennent non seulement les fondements théoriques du domaine, mais aussi les compétences nécessaires pour mettre en œuvre et déployer un code prêt à la production à l'aide d'outils standard de l'industrie. Nous ne nous contentons pas de dispenser des cours : nous préparons les étudiants à avoir un impact dans ce domaine. C'est un défi, mais c'est amusant. Et il n'est même pas nécessaire de rester dans les murs de l'EPF Zurich ; le matériel est disponible sur Github. Tout le monde peut l'essayer par soi-même ».