G-ALG : Gestion d'ALGorithmes 

            Intégration de G-ALG et du plugin VPL dans Moodle

                          gilles.hunault@univ-angers.fr


 

Table des matières cliquable

  1. Rappel sur ce qu'est G-ALG

  2. Présentation du plugin VPL pour Moodle

  3. Installations et configurations (2018)

  4. Ce qu'il reste à faire

1. Rappel sur ce qu'est G-ALG

G-ALG est un système pédagogique pour l'initiation à l'algorithmique impérative classique. Il se compose d'un langage algorithmique en français, d'un catalogue d'exercices et d'outils en lignes de commandes pour analyser, exécuter, valider les algorithmes. Depuis mars 2018 il existe une interface Web pour l'utiliser nommée galgi accessible ici.

        non su

Pour utiliser G-ALG en ligne de commandes, il suffit de disposer de Perl, de R et des scripts fournis par l'archive galg2018.zip.

2. Présentation du plugin VPL pour Moodle

Le plugin VPL (Virtual Programming Lab) est un module d'activités pour Moodle disponible au catalogue des modules. Ce module fournit aux étudiant(e)s des activités de programmation surveillées. Les étudiant(e)s disposent d'une interface d'édition et de boutons pour compiler, exécuter, débugger... Ce plugin requiert un serveur d'exécution dédié et distinct du serveur Moodle et des scripts pour analyser, exécuter, évaluer du code informatique.

        non su

3. Installations et configurations (2018)

3.1 Installation et configuration de Moodle

Nous avons installé en local sur notre portable sous Linux/Ubuntu 16.04, un Moodle récent, suivant la procédure décrite ici.

Donc nous avons :

  • installé des packages pour PHP,

  • relancé le serveur apache,

  • téléchargé puis décompressé l'archive contenant le code de Moodle dans le répertoire /var/www/html/moodle,

  • configuré la base de données,

  • défini des comptes et des mots de passe administrateur etc.,

Nous disposons alors d'un Moodle correspondant à une version 3.2.6 branche 32. comme indiqué dans le fichier
/var/www/html/moodle/version.php.

        non su

3.2 Installation et configuration du plugin VPL

Le plugin VPL est décrit ici sur le site de Moodle et on le télécharge . Il s'installe comme les autres plugins de Moodle via le panneau Administration du site. Le plugin que nous avons installé via une distribution récente correspond à une version 3.3.2 comme indiqué dans le fichier
/var/www/html/moodle/mod/vpl/version.php.

Pour rendre le plug-in accessible aux étudiants dans un cours, il suffit de le sélectionner dans le panneau d'ajout d'activité et de ressources :

        non su

3.3 Installation et configuration du "jail server" (serveur d'exécution)

Pour télécharger ce serveur d'exécution, la page officielle est ici et la documentation pour installer le serveur d'exécution est .

Notre serveur d'exécution a été pris comme conseillé : une machine Linux/Ubuntu 16.04 avec les langages usuels (C, C++, Perl, Python, R...). Sur notre portable Linux, il s'agit d'une machine virtuelle fournie via VmWare. Sur ce serveur d'exécution, nous avons entré le code d'accès XXXX au niveau du fichier /etc/vpl/vpl-jail-system.conf et dans un navigateur, via l'adresse du serveur suivi du mot OK nous avons vérifié que le serveur était accessible et actif.

Il a ensuite fallu retourner sur le serveur Moodle et, dans l'administration du site, nous avons mis l'adresse du serveur d'exécution et ce code d'accès. Nous avons ensuite pu vérifier que le serveur d'exécution répond correctement pour des langages connus, avec des extensions de fichiers standard comme .sh, .c, .perl...

        non su

Comme indiqué dans la page de documentation, tout le processus d'exécution se fait via XML-RPC :


     Connection generated when a execution is requested:
     
       Browser (client)  ===  AJAX       (json)     === >  Moodle    Server
       Moodle Server     ===  http/https (XMLRPC)   === >  Execution Server
       Browser (client)  ===  ws/wss              < === >  Execution Server
     
     

En termes d'utilisateurs, un serveur d'exécution doit convenir pour 50 étudiants (lu sur le site du VPL) :


     Our tests indicate that the 32-bit version is more convenient than the 64
     because the 32-bit implementation consumes less memory and CPU than the
     64-bit version. The machine requirements are highly dependent on the software
     used, our experience is that a machine with only 2Gb of ram and 2 cores
     can support a class of 50 students online using Java.
     

3.4 Installation et configuration de G-ALG sur le serveur d'exécution

Pour que G-ALG puisse être utilisé par le serveur d'exécution, nous avons décompressé les fichiers de notre archive galg2018.zip dans le répertoire /usr/sbin/Galg du serveur d'exécution, à l'exception des scripts galg, galg-analyse, galg-execute et galg-valide mis dans /usr/sbin/. Ces scripts définissent une variable d'environnement PERL_MACROS et ajoutent le chemin /usr/sbin/Galg volontairement en fin de PATH. En voici un exemple 


     # ceci est le fichier /usr/sbin/galg-analyse
     
     export PERL_MACROS=/usr/sbin/Galg
     export PATH="$PATH:/usr/sbin/Galg"
     cp /usr/sbin/Galg/galg-fns.r .
     galg -a $*
     if [ -f galg-fns.r ] ; then
       rm galg-fns.r
     fi
     

Il a ensuite fallu définir l'association entre les fichiers .alg et les scripts galg*. Nous avons également, réussi, après plusieurs essais malheureux, à trouver comment comment définir les paramètres de la coloration syntaxique pour les fichiers de type .alg de façon à fournir une colorisation syntaxique des mots-clés. Ces modifications techniques à exécuter sur le serveur Moodle ne sont pour l'instant pas détaillées ici.

3.5 Configuration d'une activité G-ALG-VPL

Pour disposer d'une session d'édition, d'analyse, d'exécution et de validation G-ALG via le plugin VPL, il suffit d'ajouter à une section ou à un cours une nouvelle activité VPL -- à condition de configurer finement l'activité. Au niveau des paramètres de l'activité, il faut bien gérer la période de soumission, le plus simple étant de décocher l'activation. Ensuite, pour le paramètre de restrictions des soumissions, nous conseillons de passer le nombre de fichiers utilisés à 10 alors que la valeur par défaut est 1. Cela permet de pouvoir conserver facilement au même endroit différentes versions des algorithmes. Attention : le plug-in exécute par défaut le premier fichier édité. Il faut utiliser le bouton de tri pour choisir un autre fichier à exécuter en premier.

Par défaut les étudiants ne peuvent ni exécuter, ni débugger ni faire évaluer leur code. Pour les y autoriser, il faut éditer l'activité et utiliser les valeurs Oui/Non du menu des options d'exécutions comme ci-dessous :

        non su

3.5 Utilisation d'une activité G-ALG-VPL

Pour utiliser une session d'édition, d'analyse, d'exécution et de validation G-ALG via le plugin VPL, les étudiant(e)s ont juste à cliquer sur l'icone de l'activité VPL puis à cliquer sur l'onglet Edit. Une fois un fichier .alg édité puis sauvegardé (icone de disquette ou Ctrl-s), ils peuvent l'exécuter via l'icone de fusée ou la combinaison Ctrl-F11.

Nous n'avons pas pour l'instant trouvé de façon simple de basculer entre l'exécution et la validation ni comment changer la taille de l'affichage des résultats, comme on pourra s'en rendre compte ci-dessous.

        non su

4. Ce qu'il reste à faire

A ce jour (19 juin 2018), nous ne savons pas comment choisir au hasard, via Moodle, un exercice du catalogue de G-ALG. Nous ne savons pas non plus comment générer puis "bloquer" par programme une page pour empêcher les étudiant(e)s d'avancer dans les exercices tant qu'ils n'ont pas validé l'exercice de la page. Il nous manque également la traçabilité des exercices réussis afin de pouvoir délivrer une certification de compétences algorithmiques.

Il reste aussi à explorer les tutoriaux sur le VPL du Clark Science Center car ils regroupent de nombreux cas d'étude.

 

Code-source de cette page.