\documentclass[12pt]{article}
% -*- coding: utf-8 -*-

\usepackage[utf8x]{inputenc}
\usepackage{ucs}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[frenchb]{babel}
\usepackage{hyperref,wrapfig}
\usepackage{amssymb}
\usepackage{latexsym}

\PrerenderUnicode{É} % Pre-render some accented chars for titles of chapter
\PrerenderUnicode{À}

\newcommand{\nop}{}
\def\til{\raise-0.5ex\hbox{\textasciitilde}}

\begin{document}

\author{Georges Khaznadar\\professeur de sciences physiques\\ au lycée Jean Bart
-- Dunkerque\\ \href{mailto:georges.khaznadar@ac-lille.fr}{\small \texttt{georges.khaznadar\symbol{64}ac-lille.fr}}}
\title{Logiciels libres : ça bouge, en chimie}
\maketitle

La \emph{mobilité}, l'\emph{adaptabilité} sont les fils conducteurs, pour trois sujets diffé\-rents présentés ici, tous en rapport avec des \emph{logiciels libres} :
\begin{itemize}
  \item des exercices de chimie dont le contenu est toujours dynamique ;
  \item des visionneuses de structures moléculaires « qui bougent » ;
  \item des logiciels libres de chimie, que des étudiants, des professeurs et des chercheurs amé\-liorent régulièrement.
\end{itemize}
Le point commun aux logiciels libres est qu'ils peuvent être diffusés aux étudiants sans arrière-pensée ni risque légal. 

De plus, leur coût reste maîtrisé, et l'expertise nécessaire à leur maîtrise s'acquiert d'autant plus facilement que la plupart d'entre eux sont créés et maintenus par des universitaires, qui acceptent volontiers d'échanger leur savoir-faire dans le cadre académique, à l'occasion de séminaires, de confé\-rences.

\section{Des exercices de chimie dont le contenu « bouge » à chaque essai}





Tous les étudiants ne comprennent pas une méthode ou une règle générale après qu'on leur ait présenté deux exemples, puis donné cinq exercices. Souvent, la certitude d'avoir compris ne vient qu'après un grand nombre d'essais et d'erreurs. Là, l'enseignant ne peut pas satisfaire tout un groupe d'étudiants à la fois : quand les uns commenceront à s'ennuyer, d'autres auront encore besoin de revoir la même notion. C'est alors qu'un usage raisonné des ordinateurs permet de gagner en efficacité pédagogique.




\subsection{Wims, pour fournir des exercices de chimie}


Le service web Wims\footnote{service WIMS : voir \href{http://wimsedu.info/}{\mbox{http://wimsedu.info/}}, \href{http://wims.auto.u-psud.fr/wims/}{\mbox{http://wims.auto.u-psud.fr/wims/} }} permet de donner aux étudiants des exercices dont les contenus sont variables et tirés au hasard. Créer des exercices nouveaux est possible à des enseignants après une formation courte. 

La méthode de création d'exercices fait appel à un langage de \emph{très haut niveau}, OEF (Open Exercise Format), dont les objets
primitifs ne sont pas des entiers ou des chaînes de caractères, mais sont : l'énoncé, les réponses et leurs types d'analyses, le feedback etc. 

Ce langage dispose d'une grande variété de « roulettes » aléatoires qui permettent de changer à
la volée les énoncés servis aux étudiants. Comme Wims permet d'insérer des objets \LaTeX{}  arbitraires, qui sont mis en forme et affichés à la volée sous formes d'images\footnote{Les textes alternatifs associés aux images de formules, dans le service web, sont leur source en \LaTeX{} ; ainsi, des étudiants aveugles formés à ce logiciel savent les lire.}, il est facile
de présenter des énoncés avec une typographie pertinente.




\subsection{Créer un grand espace de questionnement avec une petite base de données}


Quand on doit interroger sur un corpus de données où il y a peu de règles, il n'est pas facile de créer un grand espace de questionnement :
pour \textbf{N} données dans la base, on ne peut poser que \textbf{N} questions.



Cependant, plusieurs domaines en chimie obéissent à des règles systéma\-tiques, comme les réactions acido-basiques, les réactions d'oxydo-réduction.
Dans ces deux cas, il est possible de prendre deux demi-réactions distinctes dans une base de données, et d'en faire un réaction à étudier. Ainsi, avec \textbf{N} données dans la
base de données, on peut créer \textbf{N(N-1)} questions distinctes, ce qui est déjà beaucoup plus productif : par exemple, avec \textbf{33} demi-réactions dans la base, on peut générer plus de \textbf{1000} questions distinctes.




\subsubsection{Chemeq, pour traiter automatiquement une base de données de demi-réactions acido-basiques}


Il suffit de disposer d'une base de données dont les lignes ressemblent à ceci :
 ...
 \textbf{CH3CO2H -\textgreater{}; CH3CO2\^{}- + H+}
 ...
 \textbf{H20 -\textgreater{} HO- + H+}
 ...



Toutes les demi-réactions sont écrites avec une syntaxe des plus simples, et ordonnées dans l'ordre des constantes d'acidité décroissantes.
Une telle base de données sera efficacement exploitée par le programme \textbf{chemeq}\footnote{Le paquet logiciel Chemeq : voir \href{http://packages.debian.org/fr/squeeze/chemeq}{\mbox{http://packages.debian.org/fr/squeeze/chemeq,} } \href{http://packages.ubuntu.com/fr/source/natty/chemeq}{\mbox{http://packages.ubuntu.com/fr/source/natty/chemeq} }}, qui sait analyser cette syntaxe et faire des calculs chimiques
sur les bilans qu'il en déduit. 

Essayons : voici quelques lignes de code très simple, utilisables avec Windows, Mac ou Linux, sitôt que les programmes
nécessaires sont installés :\\[1ex]
%
\fbox{
  \begin{minipage}{0.97\linewidth}
 \textbf{r1="C2H4O2 -\textgreater{} C2H3O2\^{}- + H+"}\\
 \textbf{r2="H2O -\textgreater{} HO- + H+"}\\
 \textbf{echo \$r1 \textbar{} chemeq -l}\\
 \texttt{C\_{2}H\_{4}O\_{2}\textbackslash ,\textbackslash rightarrow\textbackslash ,C\_{2}H\_{3}O\_{2}\^{}{-}\textbackslash ,+\textbackslash ,H\^{}{+}}\\
 \textbf{echo \$r2 \textbar{} chemeq -l}\\
 \texttt{H\_{2}O\textbackslash ,\textbackslash rightarrow\textbackslash ,HO\^{}{-}\textbackslash ,+\textbackslash ,H\^{}{+}}\\
 \textbf{echo "\$r1 \til{} \$r2" \textbar{} chemeq -l}\\
 \texttt{C\_{2}H\_{4}O\_{2}\textbackslash ,+\textbackslash ,HO\^{}{-}\textbackslash ,\textbackslash rightarrow\textbackslash ,C\_{2}H\_{3}O\_{2}\^{}{-}\textbackslash ,+\textbackslash ,H\_{2}O}
\end{minipage}
}\\[1ex]


Les lignes en \textbf{carac\-tères gras} sont les commandes, les lignes en \texttt{carac\-tères normaux} sont les résultats des commandes quand il y en a.
Les utilisateurs expérimentés auront remarqué que les résultats des commandes ne sont autres que les sources en \LaTeX{}
des écritures chimiques suivantes :\\[1ex]
\begin{tabular}{|p{0.27\textwidth}|p{0.31\textwidth}|p{0.33\textwidth}|}
\hline
\textbf{ Commande à invoquer}&\textbf{ Code \LaTeX}&\textbf{ Résultat typographié}
\\ \hline
 echo \$r1 \textbar{} chemeq -l&  C\_{2}H\_{4}O\_{2}\,\textbackslash rightarrow \textbackslash ,C\_{2}H\_{3}O\_{2}\^{}{-}\textbackslash ,+\textbackslash ,H\^{}{+}&  $C_{2}H_{4}O_{2}\,\rightarrow\,C_{2}H_{3}O_{2}^{-}\,+\,H^{+}$
\\ \hline
 echo \$r2 \textbar{} chemeq -l&  H\_{2}O\textbackslash ,\textbackslash rightarrow \textbackslash ,HO\^{}{-}\textbackslash ,+\textbackslash ,H\^{}{+}&  $H_{2}O\,\rightarrow\,HO^{-}\,+\,H^{+}$
\\ \hline
echo "\$r1 \til{} \$r2" \textbar{} \mbox{chemeq -l}& C\_{2}H\_{4}O\_{2}\textbackslash ,+\textbackslash ,HO\^{}{-}\textbackslash ,\textbackslash rightarrow \textbackslash ,C\_{2}H\_{3}O\_{2}\^{}{-}\textbackslash ,+\textbackslash ,H\_{2}O& $C_{2}H_{4}O_{2}\,+\,HO^{-}\,\rightarrow\,C_{2}H_{3}O_{2}^{-}\,+\,H_{2}O$
\\ \hline
\end{tabular}\\[0.5em]
La commande \textbf{chemeq -l} permet d'analyser une phrase et de produire du \LaTeX, et une autre programme transforme ensuite le code \LaTeX{} en une équation bien écrite. Il ne reste plus, pour l'auteur qui veut générer une équation-bilan qu'à faire trois choses :
\begin{enumerate}
  \item mettre une demi-équation dans la variable \textbf{r1}
  \item mettre l'autre demi-équation dans la variable \textbf{r2}
  \item « soustraire » \textbf{r1} et \textbf{r2}, par la syntaxe \textbf{"\$r1 \til{} \$r2"}
\end{enumerate}




\subsubsection{Chemeq, pour traiter automatiquement une base de données de demi-réactions d'oxydo-réduction}


Voici un exemple de traitement similaire, pour l'exemple classique de l'oxydation des ions fer II par le permanganate en milieu acide.
On définit :
\begin{itemize}
  \item \textbf{r1="Fe\^{}3+ + e- -\textgreater{}  Fe\^{}2+"}
  \item \textbf{r2="MnO4\^{}- + 8H+ + 5e- -\textgreater{} Mn\^{}2+ +4H2O"}
\end{itemize}
~\\[1ex]
\begin{tabular}{|p{0.47\textwidth}|p{0.47\textwidth}|}
\hline
\textbf{ Commande pour créer le code LaTeX}&\textbf{ Résultat typographié}
\\ \hline
echo \$r1 \textbar{} chemeq -l& $Fe^{3+}\,+\,e^{-}\,\rightarrow\,Fe^{2+}$
\\ \hline
 echo \$r2 \textbar{} chemeq -l& $MnO_{4}^{-}\,+\,8\,H^{+}\,+\,5\,e^{-}\,\rightarrow\,Mn^{2+}\,+\,4\,H_{2}O$
\\ \hline
echo "\$r2 \til{} 5*\$r1" \textbar{} chemeq -l& $5\,Fe^{2+}\,+\,8\,H^{+}\,+\,MnO_{4}^{-}\,\rightarrow\,5\,Fe^{3+}\,+\,4\,H_{2}O\,+\,Mn^{2+}$
\\ \hline
\end{tabular}\\[0.5em]




\subsection{Chemeq est déjà intégré dans le service Wims}





Les commandes qui ont été présentées ci-dessus sont valides pour la syntaxe de la ligne de commande d'un interpréteur de commande tel que \texttt{bash}, \texttt{tcsh}, etc.

Comme le programme \textbf{chemeq} est déjà intégré au service web interactif Wims, il est possible d'utiliser la même logique à l'intérieur des exercices créés en langage
OEF, à quelques variantes syntaxiques près. Voici un liens hypertexte vers une série d'exemples d'exercices interactifs qui utilisent ce type de questionnement :\\[1ex]
{\small \href{http://wims.auto.u-psud.fr/wims/wims.cgi?session=demo&cmd=new&module=H5/chemistry/redox.fr&exo=redox1}{http://wims.auto.u-psud.fr/wims/wims.cgi?session=demo\&{}cmd=new\&{}module=\\H5/chemistry/redox.fr\&{}exo=redox1}}





\section{Des modèles moléculaires « qui bougent »}





Les étudiants doivent, un jour au moins, \emph{tenir} des modèles moléculaires faits de tiges et de
billes dans leurs mains : la mémoire tactile est très importante. Cependant, les modèles
moléculaires en matière plastique n'ont pas tous les avantages pédagogiques :
\begin{itemize}
  \item on n'en modifie pas aisément les couleurs pour exprimer des idées particulières (par exemple une polarisation électrique) ;
  \item si les degrés de liberté en vibration, en rotation peuvent être suggérés, ce n'est que grossièrement ;
  \item ils sont des objets macroscopiques qui font oublier le mouvement brownien ;
  \item ça revient cher de construire de grands modèles.
\end{itemize}



Quelques logiciels libres permettent de travailler vite et bien avec des modèles moléculaires. Ce qu'on perd
en sensation tactile, on le gagne en richesse de l'information :
\\[1.5ex]
%
{\footnotesize
\begin{tabular}{|l|*{5}{p{0.14\textwidth}|}}
\hline
\textbf{Logiciel}&\textbf{Licence}&\textbf{Création de modèles}&\textbf{Mesures sur les modèles}&\textbf{Scénarios et animations}&\textbf{Dynamique moléculaire en direct}
\\ \hline
\textbf{Avogadro}& GPL version 2&\textbf{\large oui}& oui& non&\mbox{???}
\\ \hline
\textbf{Ghemical}&  GPL version 2+& oui& oui& non&\textbf{\large oui}
\\ \hline
\textbf{Pymol}& Libre (voir les termes particuliers)&\mbox{???}& oui&\textbf{\large oui}& non
\\ \hline
\end{tabular}
}




\subsection{Pour une poignée de femtosecondes}





Le tableau ci-dessus signale trois logiciels libres complémentaires.
\begin{itemize}
  \item Avogadro\footnote{Le paquet logiciel Avogadro : voir \href{http://packages.debian.org/fr/squeeze/avogadro}{\mbox{http://packages.debian.org/fr/squeeze/avogadro}}, \href{http://packages.ubuntu.com/fr/source/natty/avogadro}{\mbox{http://packages.ubuntu.com/fr/source/natty/avogadro}}}, très confortable pour manipuler les modèles moléculaires, pour les construire et les mesurer après relaxation ;
  \item Ghemical\footnote{Le paquet logiciel Ghemical : voir \href{http://packages.debian.org/fr/squeeze/ghemical}{\mbox{http://packages.debian.org/fr/squeeze/ghemical}}, \href{http://packages.ubuntu.com/fr/source/natty/ghemical}{\mbox{http://packages.ubuntu.com/fr/source/natty/ghemical}}}, qui donne à voir immédiatement une simulation en dynamique moléculaire, pour quelques femtosecondes, une molécule ou un groupe de molécules (avec des conditions de périodicité)
  \item Pymol\footnote{Le paquet logiciel Pymol : voir \href{http://packages.debian.org/fr/squeeze/pymol}{\mbox{http://packages.debian.org/fr/squeeze/pymol}}, \href{http://packages.ubuntu.com/fr/source/natty/pymol}{\mbox{http://packages.ubuntu.com/fr/source/natty/pymol}}}, qui est doté d'un puissant langage de script et permet de construire des scénarios et des animations.
\end{itemize}
À ces trois-là, on peut ajouter Jmol, une applette en langage Java qui peut fonctionner dans un navigateur web compétent :
\begin{itemize}
  \item Jmol\footnote{Le paquet logiciel Pymol : voir \href{http://jmol.sourceforge.net/}{\mbox{http://jmol.sourceforge.net/}}} permet de créer des scénarios et des animations.
\end{itemize}
On peut noter que le système Wims autorise l'usage interactif de Jmol pour certains \textbf{types de réponse}, où est analysée la capacité d'un étudiant à distinguer telle ou telle partie d'une molécule dans un modèle tridimensionnel.




\subsection{Des bibliothèques de molécules pour l'enseignant}


Le logiciel libre OpenBabel\footnote{Le paquet logiciel Openbabel : voir\\\href{http://packages.debian.org/fr/squeeze/openbabel}{\mbox{http://packages.debian.org/fr/squeeze/openbabel}},\\ \href{http://packages.ubuntu.com/fr/source/natty/openbabel}{\mbox{http://packages.ubuntu.com/fr/source/natty/openbabel}}} permet des interconversions diverses et va\-riées entre plusieurs dizaines de formats différents qui décrivent des structures moléculaires et/ou cristallines. Il mérite bien la référence à la légende de la tour de Babel, et permet d'accéder à des bibliothèques de structures moléculaires très diverses.



De nombreuses bibliothèques de données publiques en ligne existent avec le format PDB (Protein Data Bank), qui est bien sûr interprété par chacun des logiciels cités plus haut. On remarquera aussi, pour les besoins des cours élémentaires, une collection de structures moléculaires publiées par Jérôme
Pansanel :
- Le logiciel libre Chemical-structures\footnote{Le paquet logiciel Chemical-structures : voir\\ \href{http://packages.debian.org/fr/wheezy/chemical-structures}{\mbox{http://packages.debian.org/fr/wheezy/chemical-structures}}, \href{http://packages.ubuntu.com/fr/source/natty/chemical-structures}{\mbox{http://packages.ubuntu.com/fr/source/natty/chemical-structures}}} permet la présentation très commode de plus de 500 structures chimiques, bien classées en plusieurs langues, et l'installation de ce logiciel dans un serveur web\footnote{Chemical-structures, intégration dans un serveur web du lycée de l'auteur : \href{http://pedago.lyceejeanbart.fr/chemical-structures/index_fr.html}{http://pedago.lyceejeanbart.fr/chemical-structures/index\_fr.html}} offre de nombreuses facilités : visualisation 3D avec Jmol, conversion à la volée vers divers formats avec OpenBabel.




\section{Encore plus de ressources pour les chimis\-tes, sous licences libres}


Un grand nombre de logiciels libres ont été réalisés par des chimistes, pour des chimistes. La qualité est au rendez-vous.



Dans une université, c'est important que les étudiants aient accès aux codes sources et puissent participer aux progrès : seuls les logiciels libres permettent « que ça bouge », de cette façon-là.



Visitez le projet \textbf{DebianScience/Chemistry}\footnote{Wiki du projet DebianScience/Chemistry :\\ \href{http://wiki.debian.org/DebianScience/Chemistry}{\mbox{http://wiki.debian.org/DebianScience/Chemistry}}} il recense plusieurs dizaines de logiciels libres, qu'on peut installer en quelques minutes sans frais sur des machines à l'abri des virus (système basé sur GNU/Linux).

\end{document}
