PluriAlgo,
un logiciel d'algorithmique pluri-langages pour lycéens
Patrick Raffinat
Introduction
Enseignant l'algorithmique en IUT depuis de nombreuses années, je sais par expérience que ce n'est pas une chose aisée. Je suppose donc que le faire en lycée, dans le cadre d'un programme officiel de mathématiques, rend les choses encore plus compliquées.
C'est pourquoi je présente dans cet article un logiciel dont l'un des objectifs est de faciliter l'écriture d'algorithmes dans plusieurs langages pédagogiques (Javascool, Larp, Python, Algobox...) ou mathématiques (R, Xcas) utilisés en lycée. Ce logiciel pluri-langages, nommé PluriAlgo, facilite également la traduction d'un langage à un autre.
PluriAlgo [1] fait partie de la plate-forme Javascool, destinée principalement aux lycéens de l'option ISN. Mais, j'insiste sur ce point, PluriAlgo est bien un logiciel pluri-langages : si on choisit un autre langage de développement que Javascool, la seule perte de fonctionnalité sera de ne pas pouvoir exécuter avec PluriAlgo les programmes créés.
Adéquation avec le programme officiel
Le programme officiel de seconde indique que les élèves doivent être capables, dans le cadre d'une résolution de problèmes :
- d'écrire les instructions d'entrée et de sortie nécessaires au traitement ;
- de programmer une instruction conditionnelle ;
- de programmer un calcul itératif.
- ...
Pour chacun de ces trois éléments, PluriAlgo propose un formulaire simplifiant son apprentissage et son implémentation dans un langage de programmation :
l'onglet Principal [2]
permet de gérer les instructions d'entrée et de sortie, de déclarer des variables...
l'onglet Si [3]
facilite l'écriture d'instructions conditionnelles conditionnelles.
l'onglet Boucles [4]
facilite l'introduction de boucles (Pour ou Tantque) et de techniques usuelles liées (sommation, comptage).
Le programme officiel précise également qu'aucun langage ne doit être imposé, ce qui est un atout supplémentaire pour un logiciel pluri-langages.
Exemples
Pour illustrer mes propos, je reprendrai brièvement deux des exemples développés dans la revue MathémaTICE.
Exemple 1 : achat avec remise conditionnelle
Dans le programme (Javascool) ci-dessous, les seules lignes de code à la charge de l'utilisateur sont celles entourées en rouge :
En effet, un squelette de programme (comportant la déclaration des variables et les instructions d'entrée et de sortie) peut être engendré à partir des informations suivantes :
Un autre formulaire permet ensuite d'ajouter les instructions conditionnelles : cela est détaillé dans [5] et illustré avec plusieurs langages pédagogiques (Javascool, Python et Algobox).
Pour Javascript, une autre approche est exposée : appliquer le traducteur de PluriAlgo au programme Javascool, Python ou Algobox.
Exemple 2 : lancers d'une pièce
PluriAlgo facilite également l'écriture de programmes dans des langages mathématiques (Xcas, R). Pour preuve, il est même possible d'obtenir le programme (Xcas) suivant sans écrire la moindre ligne de code :
Les manipulations à effectuer sont décrites dans [6].
Conclusion
Après plusieurs années de développement et d'expérimentation épisodique avec mes étudiants d'IUT, PluriAlgo est devenu un logiciel que j'utilise à chaque séance d'algorithmique sur machine depuis cette rentrée universitaire.
Trois formulaires (onglets Principal, Si et Boucles) facilitent l'écriture d'algorithmes dans une dizaine de langages dont deux mathématiques (Xcas, R) : c'est pourquoi je crois que PluriAlgo peut aussi aider mes collègues de lycée à faire des activités algorithmiques dans le cadre de leurs enseignements de mathématiques...
Patrick Raffinat
patrick.raffinat@univ-pau.fr
Cet article est sous licence Creative Commons (selon la juridiction française = Paternité - Pas de Modification).
http://creativecommons.org/licenses/by-nd/2.0/fr/
NOTES
[1] PluriAlgo peut être téléchargé sur mes pages professionnelles :
http://web.univ-pau.fr/~raffinat/plurialgo/index.html
ou sur la plate-forme pédagogique Javascool : http://javascool.gforge.inria.fr/
[2] Présentation de l'onglet Principal :
http://public.iutenligne.net/informatique/algorithme-et-programmation/raffinat/algo/algo/tps.html
[3] Présentation de l'onglet Si :
http://public.iutenligne.net/informatique/algorithme-et-programmation/raffinat/algo/conditionnelles/tps.html
[4] Présentation de l'onglet Boucles :
http://public.iutenligne.net/informatique/algorithme-et-programmation/raffinat/algo/boucles/tps.html
[5] L'exemple 1 détaillé dans la revue MathémaTICE :
http://revue.sesamath.net/spip.php?article637
[6] L'exemple 2 détaillé dans la revue MathémaTICE :
http://revue.sesamath.net/spip.php?article653
|