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.

SésaAlgo, un projet alternatif pour le collège et le lycée ?
Article mis en ligne le 11 février 2016
dernière modification le 29 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

SésaAlgo est un projet que j’ai proposé à l’association Sésamath, peu de temps après que le comité de rédaction de MathémaTICE ait publié une brève intitulée « Le Ministère de l’Education Nationale sous-traite la formation des enseignants à Microsoft-France... » [1] . Ce projet propose des solutions alternatives à celles du duo Microsoft/Scratch, soutenu par un ministère qui semble hélas accorder peu de crédit aux logiciels libres ou aux réalisations pédagogiques hexagonales…

Lorsque j’ai lu cette brève consternante pour le service public, je terminais mon dernier article intitulé « Programmation visuelle avec Blockly et réforme du collège »  [2] : pas besoin de chercher longtemps une alternative à Scratch ! Par ailleurs, j’étais aussi en train de mettre au point une suite logicielle faisant cohabiter quatre outils en ligne :

  • Blockly, que je recommandais pour le collège dans l’article.
  • Proglab, un logiciel pédagogique permettant d’écrire et d’exécuter des programmes Javascript ou AlgoBox.
  • le tableur de Xcas, un logiciel de mathématiques permettant de pratiquer à la fois le calcul formel, la géométrie, la programmation...
  • PluriAlgo, un logiciel polyvalent facilitant l’écriture de programmes dans plusieurs langages pédagogiques (Algobox, Javascool...), mathématiques (Scilab, Xcas…) ou professionnels.

C’est cette suite logicielle que je présenterai dans cet article. Si Sésamath soutient le projet SésaAlgo, elle en sera le socle.

B) Interaction entre 3 outils : Blockly, Proglab et Xcas

Introduction

Un prototype de cette suite logicielle peut être testé sur mes pages professionnelles [3].

Sa philosophie est de faire cohabiter plusieurs outils, dont PluriAlgo que je n’aborderai que dans la section C. Mes premiers exemples concerneront Blockly, parce que la programmation visuelle jouera un rôle important dans la réforme du collège.

Cohabitation Blockly / Proglab

Dans l’onglet Blockly du prototype, vous pouvez télécharger (bouton Démo1) cet exemple sur le calcul de pourcentages :

Tôt (au collège) ou tard (au lycée), il deviendra nécessaire de passer de la programmation visuelle à la programmation textuelle. C’est pourquoi il y a deux boutons permettant de traduire en Javascript un code Blockly :

  • le bouton Exporter Proglab, qui exporte ce code dans l’éditeur du logiciel Proglab.
  • le bouton Exporter Pluri, qui exporte ce code dans l’éditeur du logiciel PluriAlgo.

Comme vous pouvez le constater sur la copie d’écran ci-dessous, l’éditeur Javascript de Proglab propose divers utilitaires qui permettent de compléter le code ainsi exporté si nécessaire. Il permet également d’exécuter un programme pas à pas :

Pour les nombreux adeptes d’AlgoBox au lycée, Proglab propose même un bouton permettant de traduire le code Javascript en AlgoBox : il est donc possible, même si les programmes officiels ne s’en préoccupent guère, d’avoir facilement une continuité pédagogique entre collège et lycée...

Cohabitation Blockly / tableur Xcas

L’onglet Blockly propose également une version Blockly/Xcas, à laquelle vous pouvez accéder par un lien hypertexte. Je vous invite ensuite à télécharger (bouton Démo1) cet exemple qui est une adaptation de celui traité dans la section précédente :

L’exemple peut être abordé de 2 manières :

  • avec une approche tableur, en effectuant les calculs avec des formules.
  • avec une approche programmation visuelle, en lisant les données dans le tableur.

Et comme le tableur de Xcas est formel, vous pouvez même choisir une troisième approche : mettre x dans la cellule B1, constater que le résultat final est 100*(1-x)*(1+x), faire développer cette identité remarquable (avec ou sans Xcas)…

J’en profite pour rappeler que j’ai déjà vanté les atouts des tableurs non formels dans deux articles :

  • pour y faire des simulations statistiques, de préférence à l’écriture d’algorithmes souvent trop difficiles pour les lycéens
  • pour faciliter l’enseignement de l’algorithmique

Donc, pour ce tableur formel, je ne peux être que plus laudateur puisqu’il qu’il reprend de nombreuses fonctionnalités du logiciel Xcas : factorisation, dérivation, intégration, calcul de limites…

C) Interaction entre PluriAlgo et les autres outils

Introduction

Même si certaines fonctionnalités avancées du logiciel PluriAlgo (formulaires, initiation à la programmation objet...) n’ont pas été conservées dans l’onglet PluriAlgo du prototype, le fonctionnement de base reste le même : mes précédents articles restent donc d’actualité.

C’est pourquoi je me contenterai ici de rappeler quelques fonctionnalités de base de PluriAlgo, en insistant sur leur complémentarité avec les autres outils (Proglab, Xcas et Blockly).

Proglab

Même si Proglab propose divers utilitaires (boutons Lire, Ecrire, Si, Pour…), ils peuvent être avantageusement complétés par ceux de PluriAlgo.

Exemple 1 : entrées-sorties et déclarations de variables

Le sous-onglet Principal permet de gérer en une seule étape les déclarations de variables et les entrées-sorties, ce que j’illustre ici pour calculer le volume d’un cylindre.

Le code obtenu apparaît alors dans l’éditeur de PluriAlgo et peut ensuite être exporté vers Proglab (bouton Exporter Proglab) pour y être complété. Avant l’export, vous devez simplement veiller à ce que Proglab soit configuré pour le langage que vous avez choisi (AlgoBox ou Javascript).

Exemple 2 : boucles et technique liées

Le sous-onglet Boucles facilite l’utilisation de techniques usuelles sur les boucles (sommation, comptage…). Quelques exemples [4] sont donnés dans la documentation en ligne du logiciel PluriAlgo.

Xcas

Les manipulations précédentes peuvent être appliquées à d’autres langages qu’AlgoBox ou Javascript, mais le code devra ensuite être exporté dans un environnement externe pour être exécuté. Cela vaut aussi pour Xcas, puisque le tableur en ligne ne peut gérer les entrées-sorties. Toutefois, vous pouvez contourner cet inconvénient en créant une fonction avec PluriAlgo :

La fonction peut ensuite être complétée et utilisée dans une formule du tableur :

Blockly

Pour traduire un programme Blockly dans un des langages gérés par PluriAlgo, il faut d’abord en exporter le code Javascript dans l’éditeur de PluriAlgo (bouton Exporter Pluri). Il ne reste alors plus qu’à indiquer le type des diverses variables et à cliquer sur le bouton Traduire.

D) Un peu de géométrie

Avant de soumettre mon projet à Sésamath, il n’y avait aucune composante permettant de lier programmation visuelle et géométrie. Comme cela me semble plus que souhaitable pour une suite logicielle alliant algorithmique et mathématiques, j’y ai réfléchi depuis et propose dans cet article une première ébauche.

Vous pouvez y accéder depuis l’onglet Blockly, grâce à un lien hypertexte. Je vous invite alors à télécharger (bouton Démo1) un exemple qui permet de dessiner des cercles concentriques.

Pour tester ce programme Blockly, il faut l’exporter vers Proglab (bouton Exporter Proglab), puis exécuter le code Javascript correspondant.

E) Conclusion et perspectives

Il est probable que la programmation visuelle sera utilisée au collège, puisque c’est la solution la plus adaptée pour aborder la programmation avec un jeune public. Puisque l’éducation nationale tient à confier son enseignement à des professeurs de mathématiques, que ce soit au lycée ou au collège, j’ai développé deux extensions mathématiques de Blockly :

  • la première associe la programmation visuelle au tableur formel du logiciel Xcas.
  • la seconde, à perfectionner, permet de combiner programmation visuelle et géométrie avec JSXGraph.

Pour migrer de la programmation visuelle à la programmation textuelle, la solution la plus naturelle est de choisir Javascript puisque Blockly propose un traducteur natif. Mais, comme Proglab a développé un outil permettant de passer automatiquement de Javascript à AlgoBox, il devient tout aussi simple de migrer de Blockly à AlgoBox, ce qui devrait satisfaire les nombreux enseignants de seconde utilisant ce langage.

La suite logicielle que j’ai présentée dans cet article répond donc à deux objectifs prioritaires :

  • faciliter l’enseignement de la pensée algorithmique et du codage dans un cadre mathématique.
  • faciliter et encourager une indispensable continuité pédagogique dans l’enseignement de l’algorithmique et du codage.