Gcompris : Un logiciel éducatif libre


Gcompris est un logiciel éducatif libre pour les enfants de 3 à 8 ans. Ce projet a 2 ans mais malgré sa jeunesse, c'est un logiciel offrant déjà une alternative aux logiciels propriétaires de type 'Adibou'.


J'ai commencé à développer gcompris en 2000 car je cherchais un logiciel éducatif libre sous Linux pour mes enfants. J'ai depuis été rejoint par Pascal Georges qui développe de nouveaux tableaux, Renaud Blanchard qui réalise des graphiques (en fait tout ce qui est joli dans gcompris, c'est lui ;) et Djilali Sebihi qui a réalisé la musique d'introduction. Pour ma part, on peut dire que c'est un projet familial, papa code les enfants testent, ma femme traduit et fait les voix.

Gcompris est un programme GNU et il est développé au sein de l'association ofset (Organisation loi 1901 de droit Français) dont l'objectif et d'aider les initiatives dans le domaines des logiciels éducatifs libresi.

Aujourd'hui la version 1 de gcompris vient de sortir. Elle comprend déjà plus de 20 activités différentes qui sont classées par difficulté, et chaque activité propose différents niveaux. Il serait trop long de lister ici toutes ces activités, quelques exemples sont l'apprentissage de l'heure, de l'alphabet, du déplacement de la souris, du dessin vectoriel, des jeux de memory, la révision des tables, la lecture, des puzzles ...

Vous trouverez sur le site de gcompris ii les photos d'écran de chacune des activités avec leur description, ci-dessous un aperçu avec un jeu de mémoire original réalisé par Pascal Georges où il faut reconstruire un train montré en exemple furtivement.



Installation

L'installation à partir du fichier tar se déroule de manière classique avec un configure, make et make install. On trouvera aussi sur le site de gcompris des paquets au format rpm. Afin de limiter la taille de gcompris, les paquets rpm contenant les fichiers sonores sont à télécharger séparément. Ces fichiers contiennent les voix pour les lettres de l'alphabet, les chiffres, les couleurs et les encouragements. Il y en a un pour chaque langue.

Pour les plus pressés, gcompris est aussi fourni avec les distributions debian, mandrake et freebsd.

Côté technique

Au niveau technique, gcompris est entièrement écrit en C avec l'API Gnome et notamment le canvas. L'utilisation d'un canvas permet l'écriture d'un code d'assez haut niveau avec des fonctions du type créer image, association d'un callback sur l'image, déplacer image. L'inconvénient c'est que les performances s'en ressentent surtout pour les animations. Pour gcompris, ce n'est pas dramatique car l'accent est mis sur le contenu éducatif plus que sur les effets visuels. Bon je sais, l'un n'empêche pas l'autre mais en plus c'est dur à faire les effets visuels alors il vaut mieux que ce soit simple à programmer car cela permet au plus grand nombre d'accéder au projet coté développeur.

Architecture

Comme on l'a vu, gcompris permet d'accéder à des activités très différentes. Pour permettre une grande modularité, chaque activité est implémentée sous la forme d'un greffon. Gcompris comprend donc une partie moteur qui réalise l'initialisation et qui affiche la barre de contrôle, et une partie activités qui contient des greffons chargés par gcompris et exécutés sur la demande de l'utilisateur.

Cette architecture est très efficace, l'écriture d'une nouvelle activité ne nécessite que l'ajout d'un fichier en C dans gcompris. En moyenne pour donner une idée, une activité représente environ 600 lignes de code dont 200 qui sont génériques et servent à la déclaration et l'initialisation du greffon. L'activité la plus simple dans gcompris est implémentée en 100 lignes de code hors initialisation.

Ce qui est intéressant dans cette approche, c'est que beaucoup d'entre nous ont déjà eu l'idée d'implémenter un petit jeu comme un casse tête relativement limité. S'il est implémenté de manière autonome, il faut écrire tous les aspects initialisation, configuration, aide, plus les makefile, la maintenance d'une page web, ...

En le développant sous la forme d'un greffon gcompris, non seulement on y gagne en développement mais aussi en maintenance et en visibilité du projet. Et puis bon, ça améliore gcompris ;)

Format de données

En plus des activités sous forme de greffon, chaque activité définit, si c'est approprié, un jeu de données en XML qui représente son contenu. Je m'explique, dans l'activité du puzzle, la liste des pièces ainsi que leurs positions sont stockées dans un fichier XML et ce pour chaque niveau. Ainsi, il est possible de créer de nouveaux jeux de données pour une activité en éditant du XML. Je sais, ce n'est pas forcément facile d'éditer du XML, et c'est pour cela que la version 2 de gcompris permettra de créer de nouveaux jeux de données de manière graphique.

Il est important de dire que le menu principal de gcompris est géré de la même manière qu'une activité et utilise des fichiers XML pour connaître la liste, la description et l'aide sur les activités.

Internationalisation

Pour un logiciel éducatif, l'internationalisation est indispensable, mais elle est aussi plus complexe que pour les logiciels classiques. Par exemple, dans l'activité d'apprentissage du clavier, des mots tombent. Ils sont choisis en fonction du niveau pour être plus ou moins courts. Si on fait une traduction mot à mot, il y a de fortes chances que cela ne corresponde pas aux niveaux. Pour ce problème, nous avons créé dans gcompris un fichier de données à part du système classique des fichiers po.

Ensuite, il y a les voix qui doivent être enregistrées dans chaque langue. Aujourd'hui gcompris contient les lettres de l'alphabet, les chiffres, les couleurs et des messages d'encouragement en français, anglais, espagnol et allemand.

C'est à ma connaissance le seul logiciel éducatif ayant été aussi loin dans l'internationalisation. Ce qui est intéressant, c'est qu'il est possible d'utiliser gcompris dans une langue en cours d'apprentissage.

A part ces cas, la traduction de gcompris se fait de manière traditionnelle au niveau des fichiers .po. Pour les fichiers de données en XML, les outils intlttool sont utilisés pour ré-introduire les chaînes dans les fichiers .po bien connus des traducteurs.

Gcompris 2.0

La version 1 de gcompris vient juste de sortir et il est temps de réfléchir aux axes de développement pour la version 2.

Tout d'abord, il y aura bien sur d'autres activités, mais il va falloir aussi ajouter les fonctionnalités manquantes comme :

Toutes ces fonctionnalités doivent permettre d'adapter gcompris à un environnement de type salle de classe et non plus domestique.

Pour cela gcompris s'est allié à abul-edu pour définir un protocole réseau permettant d'implémenter ces fonctionnalités de manière indépendante de gcompris. Ainsi est née l'idée du 'school bus' qui permet d'une part à une application éducative de stocker des résultats sur un serveur central et aussi à une console d'administration centrale de contrôler l'exécution d'un logiciel éducatif.

Ainsi un professeur pourra mettre en pause, présélectionner des activités, visualiser le parcours et les résultats des élèves depuis un poste central. C'est un projet très important pour nous et nous cherchons actuellement une personne désirant le prendre en charge.

Conclusion

Le monde de l'éducation est naturellement très sensible aux valeurs du partage, du libre accès à l'information et à la connaissance, à l'indépendance de ses outils éducatifs. Malheureusement, il ne suffit pas d'avoir l'éthique, il faut aussi les logiciels. Ce qui est important, c'est de pouvoir proposer une solution complète comme abuleduiii avec des logiciels répondant à leurs attentes : regardez, c'est libre, simple et adapté à votre besoin.

J'invite donc les volontaires à soutenir gcompris ou d'autres projets éducatifs comme abul-edu, ofsetiv ou fsf-eduv.


Bruno Coudoin <bruno . coudoin sur free point fr>

(http://gcompris.net)




iLe manifeste d'ofset: http://ofset.sourceforge.net/information/legal/manifesto.html

iiLe site de gcompris: http://ofset.sourceforge.net/gcompris

iiiLe site de Abul Edu http://www.abuledu.org

ivLe site d'ofset : http://ofset.sourceforge.net

vLe site de la Free Software Foundation Europe http://fsfeurope.org/education/