Mathématice, intégration des Tice dans l'enseignement des mathématiques  
Sommaire > N°41 - septembre 2014 > PluriAlgo, un logiciel d’algorithmique (...)

PluriAlgo, un logiciel d’algorithmique pluri-langages
Moteur de recherche
Mis en ligne le 16 juin 2014, 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.

PNG - 9.9 ko
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) :

PNG - 16.3 ko
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 :

PNG - 23 ko
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 :

PNG - 35 ko
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 :

PNG - 29.5 ko
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.

HTML - 1.6 ko
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 :

PNG - 5.4 ko
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 :

PNG - 35.1 ko
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.

HTML - 1.3 ko
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).
PNG - 2.2 ko
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) :

PNG - 9.6 ko
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) :

PNG - 12.7 ko
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 :

PNG - 16.8 ko
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.

PDF - 210.3 ko

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) :

PNG - 12.2 ko
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 :

PNG - 11.6 ko
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.

PDF - 166.3 ko

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...

L’apport de PluriAlgo dépend non seulement du problème traité, mais aussi du langage utilisé. Celui pour lequel il offre le plus de fonctionnalités est Javascool [4].


notes

[1PluriAlgo peut être téléchargé sur mes pages professionnelles ou sur la plate-forme pédagogique Javascool développée par l’INRIA pour l’apprentissage des bases de la programmation en lycée.

[2Document d’accompagnement des stages de formation à l’algorithmique - Groupe Algorithmique - IREM Grenoble

[3Initiation à l’algorithmique - Éric Sopena - IREM Bordeaux

[4Faisant partie de la plate-forme Javascool, PluriAlgo peut donc aussi exécuter les programmes exprimés dans ce langage.

Documents associés à l'article
  Tous les programmes de la partie 1   |   (Zip - 6.1 ko)
  PluriAlgo pour un utilisateur de Javascript   |   (PDF - 203.5 ko)
  PluriAlgo pour un utilisateur d’Algobox   |   (PDF - 234.9 ko)
  PluriAlgo pour un utilisateur de Javascool   |   (PDF - 214.5 ko)
  PluriAlgo pour un utilisateur de Python   |   (PDF - 169.1 ko)
Réagir à cet article
Vous souhaitez compléter cet article pour un numéro futur, réagir à son contenu, demander des précisions à l'auteur ou au comité de rédaction...
À lire aussi ici
MathémaTICE est un projet
en collaboration avec
Suivre la vie du site Flux RSS 2.0  |  Espace de rédaction  |  Nous contacter  |  Site réalisé avec: SPIP  |  N° ISSN 2109-9197