20 ans !i-structures

i-structures, le projet

Composantes du projet

La réalisation des idées-forces a conduit à entreprendre presque simultanément plusieurs chantiers : définition de l’interface graphique et de navigation, environnement de rédaction du contenu, applets de calcul graphique et de calcul par éléments finis, environnement de sauvegarde des fichiers sur le serveur. D’autres composantes sont venues s’ajouter par la suite : contenu du cours proprement dit, gestion des renvois et du glossaire, sauvegarde des exercices et tests ainsi que les statistiques de suivi de l’utilisation.

Une analyse préliminaire des environnements standard d’enseignement en ligne nous a rapidement convaincus que l’état de ces outils (en fin 2001) ne permettrait pas un développement simple, efficace et flexible du contenu, tout en permettant de le réorganiser ultérieurement. C’est pourquoi une solution maison, comprenant un nombre minimal de fonctions, a été développée. Il ne s’agit pas à proprement parler d’une plateforme, mais plutôt d’un environnement de développement évolutif, supporté par une série de scripts exécutés sur le serveur. Le but de ces scripts était de faciliter la mise en œuvre des fonctions de base du cours, tout en permettant l’insertion simple de fonctions particulières : questionnaires au milieu du texte, renvoi automatique à une partie quelconque du cours, ouverture d’applets avec les paramètres de l’utilisateur, etc.

Environnement de rédaction

Dès le début du projet, il était clair que les auteurs du contenu (les professeurs, les assistants) devaient être au centre de l’activité de création du contenu, et ce non seulement lors de la création initiale, mais également lors des modifications ultérieures. Ces considérations étaient particulièrement importantes dans le cas du projet i-structures, puisque, dès le départ, il était nécessaire de créer un cours en deux langues en parallèle, avec une partie de la rédaction en français à traduire en italien et le restant à traduire d’italien en français. Ce processus a conduit et conduit toujours à des modifications successives du contenu. C’est pourquoi il aurait été très compliqué et coûteux de faire en plus appel à une tierce personne pour effectuer le codage des pages du cours.

La solution qui a été choisie était donc de rédiger les pages du cours en utilisant un logiciel que tout le monde sait utiliser, et qui se prête particulièrement bien à la rédaction de textes : Microsoft Word. S’ils sont bien construits, les documents Word possèdent une structure forte, qui reflète précisément l’intention de l’auteur : les styles de paragraphe définissent la fonction d’un morceau de texte, alors que l’auteur a la possibilité d’utiliser des mises en formes particulières pour le texte : gras, italique, indice ou exposant, caractères grecs, etc. L’insertion de caractères spéciaux, de symboles, d’équations, de tableaux et de figures est naturelle et simple. Malheureusement, chacun sait que la fonction « Enregistrer en tant que page web » de Word donne des résultats inutilisables, puisque les auteurs de cette fonction ont semble-t-il voulu recréer sur le web une image exacte de l’image imprimée depuis Word. Or ce n’est évidemment pas ce qui est recherché pour un cours en ligne : le format PDF convient bien mieux!

Par contre, sachant que l’information nécessaire au codage HTML est effectivement déjà présente dans la structure du fichier Word, il suffit de la récupérer et de créer automatiquement les fichiers HTML correspondant. Cette fonctionnalité a été créée dans Word lui-même : au lieu d’appeler la fonction standard d’enregistrement HTML, une fonction spéciale a été développée en Visual Basic pour Applications (VBA). Son utilisation est simple, le code HTML résultat est sobre et compact et la création de fichiers capables de générer l’ensemble du cours i-structures en Microsoft Word facilite la mise à jour du cours, ainsi que sa traduction en d’autres langues.

L’exemple de code en VBA donné en fin de cet article est une version simplifiée de celui qui nous utilisons. Il est capable de générer une page HTML à partir d’un fichier Word quelconque. Pour garder ce code le plus simple possible, il ne reconnaît que quelques styles : Titre 1, Titre 2, Titre 3, Equation (centré) et HTML (récrit le contenu du paragraphe sans modification). Tous les autres styles sont considérés comme contenant du texte normal. Ce code permet la transformation des images et autres objets insérés dans le document Word (comme objets in-line, entourés de carrés noirs dans Word et non comme objets flottants, entourés de carrés blancs). Par contre, l’identification et la traduction en HTML des mises en formes (italique, gras, souligné, couleur) n’est pas incluse, de même que la gestion des caractères spéciaux (grec, indices, exposants) ou des tableaux. L’extension de ce code pour le transformer en un environnement complètement fonctionnel, incluant ces fonctionnalités ainsi que des commandes pour la gestion de la navigation et le découpage en plusieurs pages est laissée au soin du lecteur. L’effort de programmation pour cela n’est pas énorme.

Il s’est avéré à l’usage qu’un nombre restreint de styles permet la création des tous les contenus nécessaires du cours, y compris les questionnaires et les exercices en ligne. Lorsque le besoin se fait sentir d’ajouter une extension supplémentaire, généralement par l’inclusion d’un nouveau style, son implémentation ne pose pas de problème particulier, vu la modularité du code et la proximité entre le texte de base d’une part et le résultat au format HTML d’autre part.