Programmation partagée

Mettre en place un environnement permettant le suivi et l'enseignement de la programmation à distance

Cette page est inspirée d’une expérimentation menée avec Floréal et David R. N’hésitez pas à l’enrichir suite à vos propres expériences.

Objectif

Nous souhaitons suivre à distance le code écrit par les élèves pour les aider à corriger leurs bugs, vérifier leur avancement, comparer des solutions différentes, …, comme nous le faisons usuellement en présentiel en passant entre les rangs.

Il est donc nécessaire de pouvoir:

NB: ce besoin n’est pas limité à la programmation, mais c’est le contexte dans lequel nous nous trouvons.

VS Code Live Share

Nous avons testé VS Code Live Share. C’est vraiment chouette: partage de code + audio conf + chat, avec une claire sensation de travailler ensemble sur le même projet tout en pouvant en discuter en temps-réel.

Techniquement, une personne partage son projet (au sens VS Code: multi fichiers, etc) avec d’autres. Pour cela, il faut un compte GitHub ou microsoft. Le partage se fait en point à point si possible, ou via un serveur de microsoft si la connexion point à point échoue (firewall,…). Les contributeurs distants voient le projet comme s’il était sur leur machine. Ils peuvent créer de nouveaux fichiers, éditer les fichiers, compiler, débugguer, exécuter dans un terminal (dans VS Code), etc. Cependant, tout le projet est hébergé sur la machine qui l’a partagé. Les contributeurs distants n’ont pas de copie locale.

L’outil est séduisant, mais nous ne sommes pas convaincus de son utilisation en salle de classe. Notamment, contrairement à ce que laisse entendre la documentation, c’est assez compliqué à mettre en œuvre. J’ai eu de la peine à partager mon projet: problème d’authentification sur GitHub. Aucune idée du problème, ni d’ailleurs de la solution qui a fait fonctionner la Nème tentative. Par ailleurs, l’environnement de VS Code + Live Share est complexe pour des élèves en début de formation, qui maitrisent peu les IDEs.

Jitsi

Nous avons également testé une autre configuration avec jitsi (https://conference.bordeaux-inp.fr/). On peut faire de l’audio-conf en partageant son écran. Pas d’édition commune d’un fichier, mais on peut voir l’écran des autres, et donc lire le code et en discuter. Ça fonctionnait bien à 3; il faut voir si ça tient la charge avec un groupe TD entier.

Du coup, on pourrait imaginer une salle de classe virtuelle dans une audio-conf jitsi où chaque élève partage son écran et l’enseignant aussi. Visuellement, on se retrouve avec un mur d’écrans très pratique pour passer d’un écran à l’autre. On peut aisément passer à tour de rôle voir les écrans des élèves pour discuter de leur code avec eux. Seul bémol: les écrans sont visibles de tous et l’audio est également partagé. Du coup, toutes les remarques sont publiques. Ça risque de créer un malaise.

Une solution consiste à grouper les élèves par équipes et à créer une audio-conf par équipe. Du coup, tout ce qui est dit reste à l’intérieur de l’équipe (si on pense à couper son micro lorsqu’on passe d’une audio-conf à l’autre).