Dans l'enseignement de l'informatique, l'évaluation ressemble trop souvent à l'examen d'une scène de crime après coup. Les enseignants et les correcteurs automatiques (les « autograders ») analysent le code final soumis par l'étudiant et vérifient s'il passe une batterie de tests unitaires. Pourtant, ce produit fini ne dit rien de la manière dont l'étudiant y est parvenu. A-t-il procédé par essais et erreurs aléatoires, une pratique connue sous le nom de « débogage à l'aveugle » ou « shotgun debugging » ? A-t-il méthodiquement formulé des hypothèses, inspecté les variables et testé des corrections ciblées ?
Pour lever le voile sur cette boîte noire, une équipe de chercheurs a développé DebugTracker, une extension légère pour l'éditeur de code Visual Studio Code (VS Code). Cet outil, présenté dans un document de recherche publié sur la plateforme arXiv, enregistre les traces d'activité des étudiants pendant leurs sessions de débogage. L'objectif est d'offrir aux enseignants un moyen d'évaluer non pas seulement la justesse syntaxique du code, mais la rigueur de la démarche d'ingénierie logicielle.
Les limites invisibles de l'évaluation automatique
Depuis l'introduction massive des plateformes d'apprentissage en ligne et des outils de correction automatique dans les universités, l'évaluation de la programmation s'est largement standardisée. Si ces outils permettent de gérer des cohortes de centaines d'étudiants, ils souffrent d'un angle mort majeur : ils récompensent le résultat au détriment de la méthode. Un étudiant chanceux peut soumettre un code fonctionnel après avoir modifié des lignes au hasard, tandis qu'un autre, ayant mené une réflexion rigoureuse, peut échouer à cause d'une simple virgule mal placée au moment du rendu.
Cette focalisation sur le produit fini pose un problème pédagogique crucial. Le débogage représente souvent plus de la moitié du temps de développement d'un logiciel. C'est une compétence cognitive complexe qui exige de comprendre le flux d'exécution, de lire des messages d'erreur, d'isoler des comportements anormaux et de valider des correctifs. Sans visibilité sur ce processus, les enseignants ne peuvent pas diagnostiquer les lacunes méthodologiques de leurs élèves, ni leur fournir un retour d'information (feedback) constructif.
DebugTracker : une boîte noire pédagogique pour VS Code
C'est ici qu'intervient DebugTracker. Conçu comme une extension pour VS Code — l'un des environnements de développement les plus populaires dans l'enseignement et l'industrie —, cet outil enregistre de manière transparente et continue les actions de l'étudiant. Contrairement à d'autres dispositifs de collecte de données lourds ou intrusifs, DebugTracker se veut extrêmement léger et respectueux de la vie privée, stockant les données localement sous la forme d'un fichier JSONL (JSON Lines) inviolable (en mode d'écriture unique ou « append-only »).
L'outil se distingue par deux modes de fonctionnement bien distincts :
* Le mode Évaluation (Evaluation Mode) : Dans ce mode non guidé, l'extension enregistre silencieusement les commandes de test, les métadonnées de l'éditeur et du débogueur, les instantanés du code source (snapshots) et les captures d'écran optionnelles fournies par l'étudiant comme preuves de son diagnostic. Ce mode est idéal pour les examens ou les devoirs notés.
* Le mode Entraînement (Training Mode) : Ici, l'outil adopte une posture d'accompagnement. Il guide l'étudiant à travers des étapes structurées : formuler une hypothèse écrite avant de modifier le code, documenter les indices observés, et valider la correction. Ce mode peut également intégrer un retour d'information assisté par intelligence artificielle pour guider l'étudiant sans lui donner directement la solution.
À la fin de l'exercice, DebugTracker génère un rapport chronologique clair et un document au format Markdown. L'enseignant peut ainsi visualiser l'historique de l'étudiant sous forme de frise chronologique : à quel moment a-t-il lancé un test ? Quelle ligne de code a-t-il inspectée ? Combien de fois a-t-il modifié la même fonction avant de trouver la solution ?
Un changement de paradigme pour la recherche en éducation aux médias numériques
L'analyse des processus d'apprentissage par le biais des traces d'activité (ou « learning analytics ») n'est pas nouvelle, mais son application pratique et légère en classe de programmation restait un défi. Les travaux historiques en didactique de l'informatique, notamment les études de référence sur la pédagogie du débogage publiées dans des revues comme Computer Science Education, soulignent depuis longtemps que le débogage doit être enseigné comme une compétence explicite, et non comme un sous-produit accidentel de l'apprentissage de la syntaxe.
En fournissant des données tangibles sur le comportement des étudiants face à l'erreur, des outils comme DebugTracker ouvrent la voie à une évaluation formative de précision. Les enseignants peuvent identifier des profils d'apprentissage : les « fonceurs » qui compilent frénétiquement à chaque modification de caractère, les « analystes » qui passent du temps à lire le code avant de lancer le débogueur, ou les étudiants bloqués dans des boucles d'incompréhension (le « rabbit hole »).
Il convient toutefois de situer cette innovation dans son contexte scientifique. La source primaire présentant DebugTracker est un document de recherche de type « preprint » (prépublication), ce qui signifie qu'il n'a pas encore subi l'évaluation rigoureuse par les pairs requise pour les revues scientifiques majeures. De plus, l'évaluation du prototype a été réalisée par ses propres concepteurs, ce qui comporte un biais méthodologique naturel. Néanmoins, l'initiative s'inscrit dans un mouvement mondial plus large visant à humaniser et à méthodologiser l'apprentissage du code à l'ère de l'intelligence artificielle générative.
Quelles perspectives de transfert pour les enseignants francophones ?
Pour les équipes éducatives de l'espace francophone — que ce soit dans les lycées français enseignant la spécialité Numérique et Sciences Informatiques (NSI), dans les cégeps québécois ou dans les universités et écoles d'ingénieurs en France, en Belgique et en Suisse —, cette approche offre des pistes de réflexion majeures.
Premièrement, elle invite à repenser les barèmes d'évaluation. Au lieu d'attribuer 100 % des points à la réussite des tests automatiques, les enseignants pourraient réserver une part significative de la note à la qualité de la démarche de diagnostic. Par exemple, un étudiant qui documente correctement son hypothèse et isole le bug de manière logique, même s'il ne parvient pas à finaliser la syntaxe du correctif dans le temps imparti, mérite une reconnaissance académique de sa compétence de raisonnement.
Deuxièmement, l'aspect agnostique de DebugTracker vis-à-vis des langages de programmation facilite grandement son adoption. Qu'un enseignant propose des exercices en Python, en Java, en C++ ou en JavaScript, l'extension VS Code s'appuie sur les mécanismes standards de l'éditeur pour capturer les événements. Cela réduit considérablement le coût d'entrée technique pour les établissements scolaires, souvent rebutés par des infrastructures logicielles complexes à déployer.
Enfin, à l'heure où les agents conversationnels comme ChatGPT ou GitHub Copilot peuvent générer du code fonctionnel en quelques secondes, l'évaluation du code final perd de sa valeur diagnostique. Ce qui fait la valeur d'un futur ingénieur ou technicien, c'est sa capacité à comprendre, à auditer, à sécuriser et à déboguer des systèmes complexes. En déplaçant le curseur de l'évaluation vers le processus de pensée, des outils de traçabilité comme DebugTracker redonnent tout son sens à l'acte d'apprendre à programmer.
Discussion
Posez vos questions et partagez votre point de vue. Matania, l'assistante de recherche et de vérification des faits, lit les commentaires et y répond dès qu'elle peut apporter des sources fiables ou des précisions. Les liens ne sont pas autorisés : citez vos sources par leur nom.