La problématique de l’enseignement des TP

Afin de préparer et tester ses sujets de TP, l’enseignant se voit souvent contraint d’installer sur sa machine une nouvelle librairie, une nouvelle application ou un serveur (serveur de BD ou serveur Web par exemple). Pis encore, avant de choisir une librairie adaptée à la problématique qu’il souhaite traiter, peut être a-t-il du en tester un certain nombre. Leur installation a parfois nécessité la mise à jour de composantes de son système. Ainsi au bout d’un certain temps, l’enseignant se retrouve avec une machine sur laquelle tournent différents services qu’il n’utilise pas en dehors du cadre de la préparation de ses TP et où co-existent de façon plus ou moins stable différentes versions d’une même librairie. Même s’il a pris le soin d’exécuter la procédure de désinstallation des différentes composantes installées, quiconque a déjà observé de près le résultat d’une procédure de désinstallation sait très bien qu’il reste très souvent dans le système de fichiers, dans le répertoire de l’utilisateur ou même dans certains fichiers de configuration des « traces » du logiciel soi-disant supprimé du système.

Un autre soucis provient du fait que de plus en plus d’étudiants se présentent en salle de TP avec leur ordinateur portable personnel et préfèrent travailler dessus plutôt que sur les machines mises à leur disposition. On se retrouve alors avec différents OS et des versions de librairie installées par les étudiants qui ne sont pas forcément compatibles avec celle pour laquelle on a élaboré le sujet du jour. Certes on peut toujours se réfugier derrière le fait qu’ils n’ont qu’à utiliser la machine mise à leur disposition, ce à quoi ils rétorqueront qu’ils souhaitent aussi pouvoir travailler chez eux. Même si vous avez prévenu à l’avance vos étudiants, qu’ils doivent arriver en TP avec le service X ou Y installé sur leur machine ainsi que la version 3.14 de la libraire Bidule, il y a de fortes chances que l’installation faite ne corresponde pas à 100% à ce que vous avez configuré sur votre propre machine. Le cauchemar commence car il va vous falloir naviguer parmi les différents fichiers de configuration d’une machine que vous ne connaissez pas pour trouver la ou les bonnes options que l’étudiant avait oublié de valider pour que tout se comporte comme vous le souhaitiez (expérience vécue évidemment).

Un autre exemple significatif est le développement d’applications sous Android. L’IDE officiel supporté par Google est Android Studio. La compilation d’une application Android nécessite l’installation :

  • d’un SDK (dont il existe plusieurs versions),
  • d’une version des « Build Tools »,
  • d’une version de Gradle permettant entre autre de gêrer les dépendances du projet.

Tous ces composants sont installés par défaut par Android Studio. Google remet régulièrement à jour cet IDE (parfois plusieurs fois dans l’année) et chaque mise à jour installe en particulier la dernière version des composants listés ci-dessus. A l’occasion d’un examen de TP du module consacré au développement sous Android, certains étudiants souhaitaient développer sur leur machine portable qu’ils avaient utilisée tout au long des séances. Ce n’est que lorsque j’ai récupéré leur projet et tenté de le recompiler sur ma machine que j’ai compris mon erreur. Aucun des étudiants n’avait sur sa machine une même version d’Android Studio, si bien que chaque projet à corriger dépendait d’une version du SDK, de Gradle et des Buid Tools différente. Il m’était impossible de compiler un projet tant que je n’avais pas installé sur ma propre version d’Android Studio les composants recquis, certains refusant de co-exister

Pour toutes ces raisons, j’ai cherché une solution afin de pouvoir d’une part installer dans un environnement isolé un ensemble de librairies et/ou de services sans perturber l’installation de mon système et d’autre part pouvoir proposer aux étudiants un environnement de développement identique au mien et préconfiguré pour le déroulement du TP.