June 25, 2019, 2:15 p.m., by Lem
Ce billet fait suite à celui présentant LaTeX dans le contexte de la recherche scientifique. Celui-ci est son pendant enseignement/formation. Je fais ici un bref retour d'expérience sur l'utilisation de LaTeX en support pour l'apprentissage d'outils ou langages informatiques.
La concurrence est rude, les questions et contraintes posées par l'apprentissage informatique sont nombreuses et les solutions multiples bien que jamais universelles. Quand on parle enseignement on pense souvent "présentation", ie Impress ou PowerPoint (ou même Beamer pour les vrais) pour des outils permettant de créer des slides . Le medium a été utilisé très largement depuis longtemps, mais présente des limitations fortes dans un cadre de travaux pratiques par exemple. À l'opposé, il existe de très bons tutoriels sous la forme de pages webs, ou de vidéos le plus souvent qui remplissent bien cette mission de manipulation "pratique" des notions. Les MOOCs associent souvent les deux aspects présentations / tutoriels de façon alternée ou imbriquée pour parvenir à enseigner efficacement.
En l'occurrence les besoins dans le cas présent étaient clairs : il fallait que le support de formation soit :
- dans un format accessible (PDF ou HTML) et pratique pour la consultation et transmission
- assez riche pour inclure des images, liens hypertexte et formatage particulier, en particulier pour l'affichage de code informatique (avec coloration syntaxique si possible)
- utilisable en tant que source de copier/coller pour la récupération de fragments de codes sources
La solution de base retenue était le LaTeX par l'efficacité qu'il présente lorsqu'il s'agit de factoriser des bouts de mises en page, des formattages génériques, d'ajuster facilement le matériau de base au fil des formations et de disposer d'outils puissants pour la coloration syntaxique (par exemple le package listings). L'autre avantage par rapport à des présentations par un outil de bureautique était la possibilité de versionner correctement les évolutions.
Le problème qui est apparu de façon évidente lors de la formation a été la difficulté de copier/coller du code : le lecteur PDF utilisé introduisait des espaces entre et parfois dans les mots lorsque l'on voulait récupérer le code depuis l'énoncé, ce qui est très problématique pour du code informatique qui aura forcément des problèmes à la compilation/exécution à cause de ça.
En investiguant, il est apparu qu'il était possible d'ajuster le rendu en paramétrant le LaTeX, mais cette solution nécessite une étape de rechercher/remplacer des symboles (pour certains lecteurs PDF). Beaucoup plus simple que la suppression des espaces à la main mais pas direct. C'est en tout cas la méthode que j'ai retenu pour garder l'aspect de programmabilité présenté par LaTeX.
Des outils mélangeant texte et code source ont émergé, Sweave pour R (ou knitr mais je ne l'ai pas testé) par exemple qui permet de générer un rapport à la volée avec les valeurs mises à jours, et à un autre niveau des projets comme Jupyter qui permettent d'alterner lignes en Markdown et code source dans de nombreux langages. En fonction des cas d'utilisation certaines alternatives seraient plus judicieuses : apprentissage d'un langage / module générique par Jupyter, publication de rapports automatiques issus de données statistiques avec Sweave...
Reste à voir quelle sera la solution la plus viable sur le long cours. Et si vous avez des expériences dans ce contexte, n'hésitez pas à les partager en commentaire ;)