Des travaux ont montré de multiples impacts positifs du pair programming (PP) dans l’enseignement [2, 6]. Le PP est fréquemment étudié dans l’enseignement supérieur, mais des recherches menées sur des lycéens [7] et dans des cours d’introduction à l’informatique au niveau universitaire [8] ont démontré des bienfaits similaires lorsqu’il est utilisé avec des programmeurs novices. D’autre part, l’apprentissage hybride est aujourd’hui de plus en plus répandu dans l’éducation. Dans ce contexte, le distributed pair programming (DPP) permet aux étudiants de s’engager à distance dans des activités de pair programming. Selon Schenk et al. [5], le DPP se déroule dans un environnement virtuel où un éditeur partagé est fourni aux utilisateurs, afin que toutes les modifications du code source effectuées par un participant soient transférées sur l’écran de l’autre participant. L’environnement virtuel garantit également qu’un seul utilisateur peut modifier le code source à tout moment. Comme dans le PP traditionnel, cet utilisateur est appelé le Driver et son partenaire est appelé le Navigator. Le rôle du Driver est de travailler activement sur la tâche de programmation en rédigeant le code, tandis que le Navigator observe et assiste le Driver en suggérant des améliorations et en identifiant les parties du code problématiques.
Dans le cadre d’un travail de doctorat, nous avons développé une application de distributed pair programming [1]. Cette plate-forme web intègre différentes fonctionnalités telles qu’un éditeur de code partagé ; un mécanisme de changement de rôle permettant aux participants de passer du rôle de Driver à celui de Navigator ; un outil de messagerie instantanée (ou chat) ; et une console permettant de tester les fonctions définies dans l’éditeur de code partagé. À ce jour, deux expérimentations s’appuyant sur cette application ont été mises en oeuvre dans l’enseignement supérieur à l’Université de La Réunion. Ces expérimentations ont chacune impliqué environ 150 étudiant·e·s inscrit·e·s en 1ère année de Licence. Les étudiant·e·s étaient distribué·e·s spatialement dans l’amphithéâtre de manière aléatoire (i.e., ils·elles devaient utiliser l’outil de messagerie instantanée pour communiquer) et devaient réaliser une ou plusieurs activités de pair programming. Pour chacune des activités, l’ensemble des messages échangés dans l’outil de messagerie instantanée, ainsi que les évolutions du code source produit par chaque paire d’étudiants, ont été enregistrés.
L’objectif général du stage est d’évaluer l’impact des messages textuels du Navigator sur le code produit par le Driver. En d’autres termes, nous souhaitons évaluer l’effet du feedback fourni par le Navigator au Driver sur les actions réalisées par ce dernier. Il s’agira donc, à partir des données collectées lors des deux expérimentations mentionnées plus haut, d’identifier quels messages ont un impact sur la production du code, et de caractériser cet impact, lors d’une activité de pair programming réalisée à distance.
Le travail à réaliser par le ou la candidate comporte 4 phases principales :
∉ Un travail bibliographique portant sur les types de feedback fournis aux apprenants [3, 4] dans le cadre de l’apprentissage de la programmation ;
∉ Mettre en forme les données collectées lors des 2 expérimentations en vue de leur analyse ;
∉ À partir des types de feedback identifiés et des données mises en forme dans la phase précédente, proposer une classification (automatique) des messages textuels échangés dans le cadre d’une activité de distributed pair programming ;
∉ Analyser, selon le(s) type(s) de messages transmis par le Navigator, l’effet de ces messages sur le code produit par le Driver.
Selon l’avancée des travaux, la proposition d’un outil de guidage visant à aider le Navigator à formuler des messages pertinents et utiles aux tâches à réaliser par le Driver pourra être envisagée.