Les nouvelles technologies pour l’enseignement des mathématiques
Intégration des TICE dans l’enseignement des mathématiques

MathémaTICE, première revue en ligne destinée à promouvoir les TICE à travers l’enseignement des mathématiques.

PluriAlgo, un logiciel d’algorithmique pluri-langages

Cet article montre comment le logiciel PluriAlgo peut faciliter l’écriture d’algorithmes dans plusieurs langages pédagogiques (Javascool, Algobox, Python...) utilisés en lycée.

Article mis en ligne le 16 juin 2014
dernière modification le 28 mai 2022

par Patrick Raffinat

Cet article peut être librement diffusé à l’identique dans la limite d’une utilisation non commerciale suivant la license CC-by-nc-nd http://creativecommons.org/licenses/by-nc-nd/3.0/fr/legalcode

A) Introduction

PluriAlgo [1] est un logiciel cherchant à s’adapter à la diversité des pratiques dans l’enseignement de l’algorithmique en lycée (ou en premier cycle universitaire) :

  1. en facilitant l’écriture d’algorithmes dans plusieurs langages pédagogiques (Javascool, Algobox, Python...).
  2. en facilitant le passage d’un langage à un autre grâce à un traducteur.

Dans une première partie, cet article montre comment le logiciel permet de simplifier la gestion de variables (déclaration et entrées-sorties), d’instructions conditionnelles et de boucles. Deux exemples voisins (achat d’un ou de plusieurs articles) y sont présentés pour illustrer le fonctionnement général du logiciel.

Figure 1 : les onglets du logiciel

Dans une seconde partie, cet article approfondit l’aide que peut apporter le logiciel sur l’apprentissage des boucles. Trois techniques usuelles sont illustrées :

  1. les techniques de sommation et de transformation d’un Pour en Tantque sont combinées pour résoudre un problème d’escalier (IREM Grenoble [2]).
  2. la technique de comptage est utilisée (à deux reprises) pour estimer par simulation la probabilité de l’évènement « au moins 60 piles sur 100 lancers » (IREM Bordeaux [3]).

Pour ne pas alourdir l’exposé, seuls deux langages sont illustrés : Javascool pour la partie 1 et Larp pour la partie 2. Mais deux fichiers pdf complémentaires détaillent les exemples de la partie 1 pour des utilisateurs d’AlgoBox et de Python. De plus, un troisième fichier pdf montre comment obtenir des programmes Javascript en appliquant le traducteur de PluriAlgo aux solutions Javascool de la partie 1.

B) Fonctionnement général du logiciel

Exemple 1 : achat d’un article

Les variables à introduire sont à spécifier dans l’onglet Principal, qui indique ici qu’il y a deux variables à saisir (le prix unitaire d’un article et la quantité achetée), une variable à afficher (le prix total de l’achat) et une variable intermédiaire (le taux de remise) :

Figure 2 : gestion des entrées-sorties avec l’onglet Principal

Le résultat obtenu (en cliquant sur le bouton Nouveau) est le suivant en Javascool :

Figure 3 : le programme déduit de la figure 2

Le taux de remise à appliquer dépend de la quantité achetée : 1 article (0%), 2 ou 3 articles (10%), 4 ou 5 articles (20%), 6 articles ou plus (30%). Ces diverses possibilités peuvent être spécifiées dans l’onglet Si :

Figure 4 : gestion des taux de remise avec l’onglet Si

Le résultat obtenu (en cliquant sur le bouton Insérer) est le suivant en Javascool :

Figure 5 : le programme déduit de la figure 4

Il reste à compléter ce code en indiquant les divers taux de remise, puis en calculant le prix total (voir code final). Le traducteur de PluriAlgo permet ensuite d’obtenir un programme Javascript pouvant être testé avec le navigateur web.

exécution de l’exemple 1

Exemple 2 : achat de plusieurs articles

L’onglet Boucles facilite l’introduction de boucles et de techniques usuelles liées (sommation, comptage, minimum...). Nous allons l’utiliser pour illustrer la technique de sommation, en calculant le montant total d’un achat :

Figure 6 : total d’un achat avec l’onglet Boucles

La figure 6 indique qu’il y a une boucle (portant sur le nombre d’articles) à introduire, ainsi qu’une variable (total) calculant le montant total de l’achat, dont la valeur est obtenue en sommant l’expression quantite*prixUnitaire. Le résultat obtenu (en cliquant sur le bouton Créer) est le suivant en Javascool :

Figure 7 : le programme déduit de la figure 6

Il reste à compléter ce code en ajoutant, pour chaque article, les instructions permettant de saisir le prix unitaire et le nombre d’exemplaires achetés.

exécution de l’exemple 2

Dans les fichiers pdf complémentaires, une autre façon de parvenir à ce résultat est également examinée : elle consiste à partir d’un programme gérant un article (l’exemple 1 sans la remise), puis à lui appliquer un mécanisme de transformation.

C) Techniques usuelles sur les boucles

Exemple 1 : un problème d’escalier

Pour ce problème d’escalier (Fig 8) illustrant les techniques de sommation et de transformation d’un Pour en Tantque, deux questions sont à traiter :

  1. calculer le nombre de cubes nécessaires pour fabriquer un escalier avec un nombre de marches fixé (n).
  2. trouver le plus grand escalier pouvant être construit avec un nombre de cubes fixé (nbCubes).
Figure 8 : escaliers à 2, 3 et 4 marches

La figure 9 montre comment résoudre la première question, en calculant dans la variable totalCubes la somme des n premiers entiers (voir résultat) :

Figure 9 : calcul de 1+2+...+n avec l’option somme

La figure 10 montre comment résoudre la seconde question, en combinant deux techniques (sommation et transformation d’un Pour en Tantque) :

Figure 10 : transformation d’un Pour en Tantque

Le nombre de marches (k) varie de 1 en 1 tant qu’on peut ajouter la k-ième marche, c’est à dire tant que le nombre de cubes non utilisés (nbCubes – totalCubes) est supérieur ou égal à k. Les instructions engendrées par PluriAlgo sont entourées en rouge sur la figure 11 :

Figure 11 : recherche du plus grand escalier

L’exemple est détaillé dans le fichier pdf joint, avec plusieurs approches pour traiter la question 2.

Exemple 2 : un problème de simulation

Pour illustrer la technique de comptage, nous allons estimer par simulation la probabilité de l’évènement « au moins 60 piles sur 100 lancers ». Nous allons procéder en deux étapes :

  1. en comptant le nombre de piles lors d’une simulation de 100 lancers d’une pièce.
  2. en répétant la simulation de 100 lancers, afin de compter le nombre de fois où il y aura au moins 60 piles.

Grâce à l’option comptage de l’onglet Boucles, il est possible de compter le nombre de fois où la variable piece (valant 1 ou 2) prend la valeur 1 (pile) :

Figure 12 : nombre de piles avec l’option comptage

Le résultat obtenu est à compléter avec une fonction aléatoire renvoyant 1 ou 2 :

Figure 13 : le programme déduit de la figure 12

Pour répéter la simulation de 100 lancers et compter le nombre de fois où il y aura au moins 60 piles, l’on peut à nouveau utiliser l’option comptage. Ceci est détaillé dans le fichier pdf joint.

D) Conclusion

PluriAlgo est un logiciel pluri-langages qui peut être utilisé soit pour une initiation à l’algorithmique, soit pour un approfondissement en algorithmique (sous-programmes, structures de données). Seul le premier aspect a été examiné dans cet article.

PluriAlgo facilite la résolution de nombreux exemples pédagogiques, notamment grâce aux diverses options de l’onglet Boucles. Au pire, pour les algorithmes où il n’est pas très adapté, il reste la possibilité d’utiliser le logiciel pour gérer les entrées-sorties, introduire des sous-programmes...