Olivier Goletti
ICTEAM/INGI, UCLouvain
Kim Mens
ICTEAM/INGI, UCLouvain
Numéro thématique 3 / 2023 - T3
RÉSUMÉ Trop souvent, on attend de nos élèves qu’ils soient capables de lire du code ou d’en écrire, sans prendre le temps de leur expliciter les étapes clés qui permettent d’y arriver. Dans cet article, on vous propose de découvrir une stratégie explicite supportée par la recherche qui va aider les élèves à apprendre à écrire du code via une stratégie simple à mettre en œuvre de manière plus systématique. Une fois intégrées dans vos pratiques, cette stratégie permet aux élèves qui en ont besoin d’être plus guidés dans leur apprentissage.
MOTS-CLÉS • Stratégie explicite – Instruction – Subgoal learning – Exemples résolus
Sous-étapes à gauche et Exemple résolu étiqueté à droite
L’apprentissage par subgoals, ou sous-étapes, améliore les performances de résolution de problèmes des novices. Les worked examples, ou exemples résolus, permettent d’exemplifier une stratégie de résolution de problèmes au travers d’exemples. En annotant les exemples résolus avec des labels, ou étiquettes, qui correspondent aux sous-étapes, on combine ces deux outils pour mettre en évidence les sous-étapes génériques et fonctionnelles que les novices ont du mal à identifier seuls.
Cette approche se base sur les recherches de Catrambone [3] sur l’utilisation d’exemples résolus avec identification des sous étapes. En particulier, un protocole a été développé pour analyser des résolutions de problèmes faites par des experts pour identifier ses étapes souvent implicites quand maîtrisées. L’idée est donc d’expliciter ses étapes pour que les apprenants puissent utiliser une bonne stratégie de résolution. Cette technique a été utilisée dans le cadre de l’enseignement de l’informatique (avec le langage Java) par Lauren Margulieux et ses collègues [1] puis adapté à Python [2,4]. Ce travail a été présenté à la neuvième édition de Didapro dans un article et un atelier.
L’idée de cette stratégie est donc d’utiliser systématiquement des mots clés ou étiquettes correspondant aux différentes étapes de résolution d’un problème de programmation qui utilise un concept défini. Pour ce faire, il s’agit d’expliquer les différentes étapes et de noter les étiquettes correspondantes au tableau. Ensuite ou au fur et à mesure de l’écriture de la mention des étapes, résoudre l’exercice en expliquant à voix haute la réflexion ou les décisions qui amènent à produire le code correspondant à l’étape. Finalement, nous nous retrouvons avec un exemple de résolution du problème, annoté (avec des couleurs éventuellement) des étapes qui ont mené à son écriture.
Une fois les étapes illustrées par un exemple, des exercices sont proposés aux élèves. Si un élève est bloqué dans la résolution d’un exercice mettant un œuvre le même concept nous pouvons lui demander à quelle étape il en est. On peut aussi identifier les étapes dans une résolution au tableau pour les mettre en évidence et accentuer l’assimilation.
Exemple de la lecture et du traitement d’un fichier en Python
Un exemple est proposé ici pour illustrer la stratégie, mais plus d’exemples sont disponibles dans les documents liés à l’atelier Didapro (Section 5). La Figure 1 donne un exemple des étapes pour la lecture et le traitement d’un fichier en Python. La Figure 2 montre un rendu possible de l’annotation avec ces étiquettes d’un exemple résolu. L’objectif serait que l’élève associe « lecture de fichier » et la succession d’étapes « ouverture, traitement, fermeture, exceptions » de sorte qu’il sache comment démarrer la résolution d’un tel exercice.
Figure 1 : Les étapes de résolution d’un problème de lecture de fichier en Python
Avantages de l’approche de : l’apprentissage par sous-étapes :
Figure 2 : Exemple résolu étiqueté d’un exercice de lecture de fichier
Quand mobiliser cette stratégie ?
Comment la déployer ?
Cette approche a été expérimentée avec des étudiants de première année dans le cadre d’un cours d’initiation à la programmation avec le langage Python. Voici les principales observations qui sont détaillées dans les publications référencées ensuite :
Liens avec la recherche
Catrambone. R. (1998). The Subgoal learning model : Creating better examples so that students can solve novel problems. Journal of Experimental Psychology : General, 127(4), 355.
Goletti, O., Mens, K.,& Hermans, F. (2021). Tutors’ Experiences in Using Explicit Strategies in a Problem-Based Learning Introductory Programming Course. In Proceedings of the 26th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE ’21), 2021.
Goletti, O., De Pierpont, F.,& Mens, K. (2022). Création d’exemples résolus avec objectifs étiquetés pour l’apprentissage de la programmation avec Python. Didapro 9 – DidaSTIC.
Margulieux, L., Morrison, B. B., & Decker, A (2019). Design and Pilot Testing of Subgoal Labeled Worked Exemples for Five Core Concepts in CS1. In Proceedings of the 24th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE’19).
Liens vers les ressources et points de contact
L’atelier présenté à Didapro et les ressources liées : http://hdl.handle.net/2078.1/263637
Olivier Goletti (olivier.goletti@uclouvain.be)
Kim Mens (kim.mens@uclouvain.be)