Utiliser l'émulateur Numworks pour programmer en Python

Programmation de la Numworks sans la Numworks !

Dans cet article, on racontera comment créer un script en ligne avec la Numworks (sans la posséder !).

capture d'écran calculatrice numworks

Cet article est une reprise de l'article d'Alain Busser paru sur le site de l'IREM de La Réunion qu'il a publié au moment de notre expérimentation commune.

Pourquoi donc ?

Le programme de Seconde recommande l'usage du clavier pour programmer (« programmation textuelle »). Le clavier des calculatrices étant nettement moins pratique que celui des ordinateurs, programmer en Python sur une calculatrice n'est pas si simple. Pour remédier à ce problème, les calculatrices sont dotées de menus déroulants où on peut choisir des instructions ou blocs d'instructions tout faits, mais également de la possibilité de communiquer avec l'ordinateur, l'idée étant de programmer la calculatrice depuis l'ordinateur. La Numworks est la première calculatrice permettant de communiquer avec n'importe quel ordinateur (pas nécessairement du type Microsoft ou Mac) par le biais du logiciel Chrome, disponible sur toutes plateformes. Cela permet de programmer ses modules Python sur tout ordinateur, puis de les transférer vers la Numworks afin de les y utiliser. En respectant toutefois une limite de place : L'ensemble des modules Python ne doit pas occuper plus de 4096 octets. Ceci dit on peut aussi transférer et utiliser des modules Python créés par d'autres personnes (collègues, chercheurs, élèves). En voici quelques exemples.

Comment donc ?

S'il n'est pas nécessaire d'acheter une Numworks(c) ni un Windows(c) avec Edge(c), deux prérequis sont nécessaires. Mais ils sont gratuits :

  • le logiciel Chrome, à télécharger sans frais puis installer ;
  • créer un compte sur le site Numworks. Le mien est ici.

Une fois mon compte créé, pour programmer un module Python sur la Numworks, je n'ai plus qu'à cliquer sur « nouveau script » en bas de ma page d'accueil, et je me trouve alors sur une page où se trouvent un éditeur Python en ligne, à gauche, et un simulateur de Numworks à droite. En haut de ladite page, j'ai la possibilité de nommer mon script (ici, comme il s'agit du calcul de l'équation cartésienne du plan médiateur de deux points de l'espace j'ai choisi de l'appeler plan_mediateur.py) et après avoir, pour une première fois, cliqué sur « sauvegarder », chaque fois que je relance ce simulateur (en cliquant sur « relancer ») il importe automatiquement le module en cours d'édition :

capture d'écran calculatrice numworks

Ceci fait que chacune des fonctions que j'aurai créée dans le module pourra être utilisée dans la console (directement en mode interactif, dans la calculatrice). Par exemple, si on entre dans cette console, « plan_mediateur([4,5,6],[-1,3,7]) », on a un message d'erreur parce que Python ne possède pas par défaut de fonction plan_mediateur. Mais une fois le module plan_mediateur.py importé, comme celui-ci comprend une telle fonction, « plan_mediateur([4,5,6],[-1,3,7]) » affiche [-5,-2,1,9.0] qui correspond à l'équation cartésienne -5x - 2y + z + 9 = 0 du plan médiateur des points A(4;5;6) et B(-1;3;7).

Cette philosophie est très proche des recommandations de l'inspection générale : Il est pénible de créer une boucle dans la console, alors si on veut faire des choses compliquées, on les fait dans des définitions de fonctions (à l'intérieur du module) et on réserve les utilisations de fonctions (affichages par exemple) à la console.

repl

L'acronyme REPL signifie

  • Read (attendre une entrée par l'utilisateur)
  • Eval (évaluer ce qui a été entré, et qui est supposé être une expression)
  • Print (afficher sur la console le résultat de l'évaluation)
  • Loop (et recommencer le cycle R-E-P en boucle)

C'est ainsi que fonctionnent les consoles Python des calculatrices ou autres. Souvent on appelle cela « utiliser Python comme calculatrice » et l'utilité pour apprendre un langage de programmation par essais et erreurs, est telle qu'un site internet y est consacré : repl.it lequel a évidemment sa version Python. Là encore, il est mieux d'avoir un compte, mais on peut programmer en ligne, avec un Python à la fois léger et puissant, sans problèmes d'installation donc.

Attention ! Ceci ressemble a du Python mais ce n'est pas du Pyton !

La Numworks, comme son émulateur en ligne, n'utilise pas Python, mais Micro-Python qui est une version allégée de Python, qui ne permet pas tout ce que propose Python, il y a donc certaines limitations à prendre en compte pour votre usage personnel ou votre usage en classe. Il est à noter que la CASIO à venir devrait elle aussi utiliser Micro-Python. Pour plus d'informations sur Micro-Python.

Bibliothèque publique

Les scripts que vous créez peuvent être partagés et apparaitre dans la bibliothèque publique du site, pour l'instant dépourvue d'un outil de recherche mais, vu le nombre grandissant de publications, ils ne tarderont pas à être accessibles selon un rangement à déterminer. Sinon, vos scripts restent votre propriété sans partage.

La vidéo ci-dessous explique comment échanger des scripts Pythjon entre votre Numworks et un ordinateur connecté à Internet :

Conclusion

L'idée de programmer des fonctions Python dans un (ou plusieurs) module vu comme une collection d'algorithmes, et de n'utiliser la console (en mode repl) que pour utiliser ces fonctions (affichage de valeurs) rend la Numworks très conforme à l'esprit du programme de mathématiques du lycée. De plus, la limite de 4096 octets au total incite à produire du code court et concis, avec des fonctions imbriquées, ce qui permet de se concentrer sur l'algorithme et non les détails n'en faisant pas partie comme les subtilités de matplotlib et autres tkinter. Et l'occasion est belle de découvrir les listes en compréhension. On ne peut alors qu'espérer que Casio, au hasard, permette également une programmation Python de sa calculatrice, qui soit accesible à tout le monde et pas seulement aux victimes de Gafam...