Ubiquity, un logiciel de monitoring de travaux pratiques de développement informatique

Posté par  . Édité par Julien Jorge et Ysabeau 🧶 🧦. Modéré par Pierre Jarillon. Licence CC By‑SA.
Étiquettes : aucune
24
20
sept.
2022
Éducation

Ubiquity est un logiciel qui aide les enseignants à encadrer plus efficacement des travaux pratiques en informatiques. Celui-ci permet d’avoir une vue sur l’avancement des élèves à travers des indicateurs de progression et la consultation de leurs codes.

L’enseignement du développement informatique passe obligatoirement par des travaux pratiques (TP). Dans ce contexte, l’enseignant responsable prépare un sujet de TP et optionnellement une archive contenant du code source que les élèves ou étudiants (que nous appelons apprenants) devront compléter. Lors de la séance de TP, l’enseignant encadrant (tuteur) passe derrière chaque poste pour étudier le code produit et faire des remarques si nécessaire.

Cette façon de tutorer des TP n’est pas très efficace. Le tuteur passe du temps avec des apprenants qui n’en ont pas besoin et donc il passe moins de temps avec ceux qui en ont besoin. Ce constat est d’autant plus vrai lorsque le tutorat est réalisé en distanciel, comme cela l’a été durant les deux derniers confinements, car l’étude du code des apprenants est alors réalisée très souvent par partage d’écran.

Le logiciel open source Ubiquity propose de résoudre ce problème en fournissant au tuteur un tableau de bord sur l’avancement du TP. Cela lui permet de détecter au plus tôt les apprenants qui rencontrent des problèmes. Lorsque c’est le cas, le tuteur peut rapidement identifier la partie du code qui pose problème et étudier le code de l’apprenant pour l’aider.

Le fonctionnement du logiciel est le suivant :

  • Le responsable crée un TP sur le serveur web de l’application en renseignant le titre du TP, un sujet (fichier PDF) , une archive correspondant à la solution du TP annotée et en indiquant le nombre de groupes d’apprenants. Pour chaque groupe, le système crée deux clés, l’une à destination des apprenants et l’autre à destination des tuteurs. Les annotations dans la solution permettent d’indiquer qu’elles sont les parties du code que devront développer les apprenants et comment le système va, à l’aide d’indicateurs, analyser et donc évaluer le code produit.
  • Au début du TP, chaque apprenant lance un programme (nommé ubiquity-student) en indiquant sa clé personnelle, la clé du TP et le répertoire de travail. Le programme dépose dans ce répertoire le sujet et le code source du projet tel que les parties annotées ont été remplacées par un code par défaut. L’apprenant réalise son TP en utilisant ses logiciels de développement habituels (éditeur, compilateur, débuggeur, etc.). Mais à chaque modification enregistrée, ubiquity-student remonte les parties de codes modifiées au serveur pour analyse. Durant la réalisation du TP, l’apprenant peut visualiser ses indicateurs d’avancements ainsi que ceux de la moyenne de son groupe, lui permettant de savoir s’il est en avance ou en retard.
  • Durant le TP, le tuteur d’un groupe utilise un tableau de bord qui présente un indicateur sommaire pour chaque apprenant. En sélectionnant un apprenant, il peut visualiser l’ensemble des indicateurs d’avancement et le code associé en le comparant optionnellement à la solution.

Ubiquity peut être utilisé aussi bien en présentiel qu’en distanciel, de manière synchrone ou asynchrone. C’est un logiciel multi-plateforme. Il est composé d’un serveur Web développé en Django (disponible sous forme de conteneur Docker ou du code source à installer sur un serveur) et de l’application ubiquity-studient développée en Python (avec des exécutables pour Linux, Windows, Mac ou installable à l’aide d’un paquet Debian sous Linux ou de Pip).

Actuellement Ubiquity est en version 1.3 pour le serveur et 0.8 pour ubiquity-student. Il supporte, pour les TP, les langages python, C, java, pascal, matlab et HTML, mais l’ajout de nouveaux langages ne pose pas de difficulté. Les indicateurs de suivi reposent sur une analyse statique du code. Ils utilisent, pour l’instant, le nombre de caractères, la présence ou l’absence de mots-clés (avec ou pas de sensibilité à la casse ou exprimés sous forme d’expression rationnelle) ou bien le nombre d’unités lexicales. Il est possible d’ajouter de nouveaux indicateurs en développant des plugins.

Aller plus loin

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.