Fermer×
13 mars 2023

Progression: un outil interactif pour apprendre la programmation

Progression, c’est un outil que j’ai développé pour enseigner la programmation à des apprentis programmeurs et programmeuses. Progression permet aux étudiants et aux étudiantes d’apprendre en utilisant n’importe quel langage dans une interface web conviviale, sans avoir à installer quoi que ce soit sur leur ordinateur.

Les programmes écrits par les élèves sont corrigés automatiquement, ce qui permet de gagner du temps.

Progression s’intègre à Moodle et d’autres environnements numériques d’apprentissages (ENA) pour qu’on puisse suivre le cheminement de chaque élève (et groupe d’élèves).

Le code source de Progression est disponible sous licence libre, tout comme une vaste banque d’exercices développés en collaboration avec mes collègues.

Démonstration du fonctionnement de Progression

Le besoin derrière la création de Progression

Quand on enseigne la programmation à des novices, on fait face à de nombreux irritants et les étudiants et les étudiantes font parfois face à des murs infranchissables. Les élèves ont de la difficulté à installer les outils nécessaires sur leurs ordinateurs personnels ou ne peuvent pas les paramétrer de la même façon que sur les ordinateurs utilisés en classe et cela crée de la confusion. Les outils disponibles sont souvent pensés pour les professionnels et non pour les débutants. De plus, la taille des groupes d’élèves ne nous permet souvent pas de suivre la progression de chaque élève en faisant toutes les évaluations formatives qui seraient nécessaires et en offrant des rétroactions riches et personnalisées aux besoins de chacun.

J’utilise depuis longtemps des outils technologiques pour enseigner la programmation. Cependant, parmi toutes les plateformes disponibles, il n’y en avait aucune qui permet aux élèves d’apprendre et de s’exercer à la programmation informatique de façon autonome en évaluant automatiquement leur résultat.

Avec ma collègue Wafâa Niar-Dinedane, et grâce au financement obtenu dans le cadre du programme NovaScience du ministère de l’Économie, de l’Innovation et de l’Énergie, nous avons bénéficié d’une libération d’une partie de nos tâches d’enseignement afin de développer un outil qui répondrait à nos besoins. Je me suis chargé du développement de la plateforme et Wafâa d’une banque de plus de 200 exercices à utiliser dans le cadre des cours Programmation 1 et Programmation 2 en Techniques de l’informatique. Cette banque est structurée selon une gradation rigoureuse dans les concepts et dans le degré de difficulté. Pour arriver à obtenir cette gradation, Wafâa s’est basée sur une recherche locale sur les difficultés des étudiants en programmation.

Que fait Progression?

Progression permet de programmer en différents langages à même une application web, sans rien avoir à installer. L’interface reproduit les fonctionnalités de base d’un environnement de développement, tout en présentant de façon claire et complète l’énoncé de la tâche à effectuer. Quand on leur soumet un exercice, les élèves écrivent le code nécessaire dans un éditeur de code réel. Ce code est transmis au serveur de Progression puis traité par le compilateur approprié en fonction du langage choisi et testé selon un jeu de tests conçu spécifiquement pour chaque exercice.

Capture d'écran de l'interface de Progression, pendant un exercice. L'exercice s'intitule «Nombre premier ». À gauche, sous le titre de l'exercice, une boîte de texte présente les consignes de l'exercice, incluant des exemples. À droite, une boîte contient le code à compléter par l'élève. Sous cette boîte, on voit le résultat des sorties du code entré par l'élève. Sur la capture, la première sortie apparaît en rouge puisqu'elle est incorrecte et la deuxième, en vert, puisqu'elle est correcte. Des boîtes montrent une comparaison entre les sorties attendues et les sorties observées.

Capture d’écran de l’interface de Progression, pendant un exercice

Les étudiantes et les étudiants ne font pas de simples simulations, mais programment réellement. Leur code est véritablement exécuté et les résultats pour différentes entrées sont comparés avec les résultats attendus, tels qu’établis pour chaque exercice. Le code lui-même n’est pas analysé ou comparé à une solution toute faite (puisqu’il y a souvent plus d’une façon possible de rédiger un programme correct). Seuls les résultats (sorties) sont comparés à des valeurs attendues.

De plus, Progression offre une rétroaction automatique suite à la validation du code, qu’elle soit réussie ou non. Si elle n’est pas réussie, Progression peut même offrir des astuces à l’élève pour l’aider à corriger son code.

Correction efficace et optimisation du temps

Progression automatise ce qu’on devait autrement faire manuellement.

Avant, je prenais beaucoup de temps pour corriger tous les travaux un par un, y compris ceux des élèves qui comprenaient bien. La tâche de valider pour tous les cas si le programme répond bien est si longue que bien souvent les étudiants et les étudiantes reçoivent leur rétroaction beaucoup trop tard pour qu’elle soit efficace. Avec Progression, la correction se fait automatiquement et la rétroaction est instantanée. Notre temps peut dès lors être mieux investi auprès des personnes qui éprouvent des difficultés.

En liant Progression à un ENA comme Moodle, vous pouvez faire le suivi de tout un groupe en un coup d’œil: vous voyez qui a réussi chaque exercice, qui l’a raté, qui ne l’a pas encore essayé…

Cela permet de bien cibler les étudiants et les étudiantes en difficulté. Vous pouvez voir le travail de chaque élève incluant toutes ses tentatives de résolution. Une fois que vous avez diagnostiqué son problème, vous pourrez lui fournir une rétroaction personnalisée.

Facilitation de l’apprentissage

Les élèves peuvent faire autant d’essais que nécessaire pour résoudre un problème, puis revenir consulter leurs tentatives antérieures. Même lorsque les élèves ont réussi l’exercice, il leur est possible de continuer et de tenter d’améliorer leur réponse.

Les étudiantes et les étudiants peuvent également être dirigés vers des ressources supplémentaires spécifiques  à leurs besoins, comme de la documentation ou des exemples.

Pour certains exercices qui nécessitent de longs préambules pour son fonctionnement alors qu’on veut se concentrer sur l’apprentissage d’une notion bien précise, on peut fournir une ébauche à compléter. Ce code peut être montré à l’élève si cela est utile ou masqué pour l’aider à se concentrer sur l’apprentissage ciblé.

Intégration à Moodle

Progression peut être lié à un ENA tel que Moodle, Canvas ou Blackboard. Vous pourrez alors assigner un exercice sur Progression à vos élèves à même l’ENA en ajoutant une «activité» de type Progression à votre cours (comme n’importe quelle autre activité d’apprentissage).

Un clic sur l’activité redirigera les élèves vers l’interface de Progression. Leurs essais et leurs résultats seront transmis à l’ENA afin que vous puissiez faire le suivi. Vous pourrez accéder à la liste de vos élèves par simple clic sur l’activité Progression. Devant le nom de chaque élève qui a réalisé un 1er essai, vous verrez la mention «Réussi» ou«Débuté». En un seul clic, vous aurez accès à l’exercice de l’élève et tout l’historique de ses tentatives.

Tableau à 3 colonnes: «Nom», «résultat» et «dernière tentative». Dans la colonne «Nom», on voit 8 prénoms, sur 8 lignes (les noms de famille ont été supprimé pour préserver la confidentialité, dans la capture d'écran). Dans la colonne «Résultat», 5 cases sont vides, 2 contiennent le mot «Débuté» avec une petite iĉone cliquable à côté qui indique qu'il y a un hyperlien sur le mot. 1 case contient le mot «Réussi», aussi avec une petite icône cliquable. Dans la colonne «Dernière tentative» sur les lignes dont le résultat est soit «Débuté» ou «Réussi», il y a une date et une heure (à la seconde près) d'inscrites. Les autres cases sont vides.

Capture d’écran de la liste de résultats d’une activité Progression dans Moodle

L’élève peut également suivre sa propre progression en voyant une synthèse des exercices qu’il ou elle a réussis, ceux qui lui reste à faire, etc.

Essayez Progression; utilisez-le!

Vous voulez essayer Progression? Testez la version démo! (Vous n’avez qu’à choisir un  nom d’utilisateur. Notez toutefois qu’avec la version démo, votre travail ne sera pas conservé plus d’une journée.)

Toute la banque de questions développées par Wafâa pour le cours Programmation 1 est disponible. Cliquez sur le nom d’un exercice pour le tester sur la version démo du site.

Vous pouvez utiliser les questions existantes telles quelles ou les modifier à votre convenance ou créer vos propres exercices très facilement en utilisant pratiquement n’importe quel langage de programmation.

Au départ, Wafâa s’est concentrée sur la production d’exercices pour le cours Programmation 1. Elle a soigneusement rédigé les consignes de manière uniforme, claire et complète. Les questions sont organisées avec des niveaux progressifs.

Cette session-ci, Wafâa s’attaque au cours Programmation 2 et développe une nouvelle banque d’exercices.

Par ailleurs, notre collègue Gilles Lacasse a développé une cinquantaine d’exercices pour un cours sur les systèmes d’exploitation dans lequel les étudiants et les étudiantes apprennent à programmer des tâches d’administration sur un serveur.

Progression est utilisé au Collège de Rosemont depuis 2021. Cette session-ci (hiver 2023), nous avons mis en place un projet pilote dans 3 autres cégeps qui le mettent à l’essai:

  • le Cégep André-Laurendeau
  • le Collège de Bois-de-Boulogne
  • le Cégep de la Gaspésie et des îles

Pour le moment, les enseignantes et les enseignants qui le testent sont emballés! Si vous souhaitez en savoir plus ou désirez vous aussi déployer l’outil dans votre établissement, contactez-moi ou mieux, rejoignez notre groupe Slack! Par ailleurs, notez que le code source de Progression entièrement sous licence libre est déposé sur GitLab!

Progression: un projet pour les finissants et les finissantes

À chaque année depuis 3 ans, les étudiants et les étudiantes qui ont utilisé progression à leurs débuts et qui en sont maintenant à leur dernière session utilisent toujours ce projet comme outil d’apprentissage, mais d’un autre point de vue. Dans un cours intensif où nous simulons une entreprise, Anne-Marie Burns et moi les emmenons à devenir développeurs et développeuses pour Progression. En suivant les méthodes Agile, les élèves développent de nouvelles fonctionnalités qui sont ensuite utilisées par les cohortes qui les suivent. Notre travail commun consiste à amener Progression plus loin que pour l’apprentissage de la programmation.

Nous sommes présentement à développer de nouveaux styles d’exercices plus interactifs. Dans un proche futur, nous pourrions, par exemple, offrir un bac à sable aux apprenants et aux apprenantes pour simuler un serveur sur lequel ils et elles devraient effectuer certaines tâches d’administration. Nous pourrions aussi instantanément déployer une base de données  qu’ils et elles pourraient manipuler tout en visualisant le résultat de leurs actions en temps réel.

Progression pourrait-il vous être utile dans vos cours? Essayez-le et dites-moi ce que vous en pensez en m’écrivant en privé , sur le groupe Slack de Progression ou ici dans la zone des commentaires!

À propos de l'auteur

Patrick Lafrance

Diplômé de l’Université Laval en Génie informatique, Patrick Lafrance a roulé sa bosse dans l’industrie du logiciel entre Montréal à l’Angleterre en passant par l’Amérique latine avant de se tourner résolument vers l’enseignement. Il partage depuis plus d’une décennie sa passion pour le développement logiciel et l’informatique en général avec les étudiants des Techniques de l’informatique du Collège de Rosemont. Toujours à la recherche d’opportunités d’apprentissage pour lui-même et ses étudiants, il est fondateur du Club de sécurité du Collège de Rosemont, et l’instigateur du projet d’aide à l’apprentissage de la programmation Progression.

S’abonner
Notifier de
guest

1 Commentaire
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
nancy apirault
nancy apirault
21 mars 2023 14h25

Merci Patrick et Wafâa pour ce bel outil! Lorsqu’il est intégré dans Moodle, il est possible de suivre les progrès/difficultés de mes étudiants.
Merci,
Nancy Aspirault, enseignante au cégep de la Gaspésie et des Iles

Last edited 5 jours il y a by nancy apirault