Suite à l’envoi d’un simple email, l’équipe de maths de mon établissement a reçu la fameuse calculatrice et j’ai pu tester la bête.
Pour la tester vous-même, vous trouverez tout en bas de la page d’accueil du site officiel un simulateur en ligne qui est très fidèle à la version installée sur l’original puisque c’est exactement le même code qui sert aux deux. Mieux si vous êtes enseignant : vous pouvez demander un exemplaire en vous inscrivant ici.
Au fil de cet article, vous allez parfois sentir que je râle, mais globalement, je suis très impressionné par le travail de cette jeune équipe.
Cette calculatrice ouverte et conviviale me réconcilie avec le concept de calculateur de poche. En effet, je n’ai pas acheté de calculatrice depuis ma CASIO FX-8500g (aux alentours de 1990, il y a donc 27 ans) car :
Si j’arrive à la bidouiller, il y a de fortes chances qu’on me voit avec au lycée ou ailleurs. Et en plus, elle est belle.
Comme j’étais « en mode nomade » au moment du test, je n’avais pas accès à la documentation. Selon le principe de la « bonne foi pédagogique » (plus de détails dans un futur article), ce malencontreux détail s’est retourné en idée : tester la capacité de Numworks à accueillir un néophyte qui n’a pas pris le temps de lire la doc.
Ayant participé aux Journées Nationales de l’APMEP de 2017, j’ai eu la chance de rencontrer une partie de l’équipe qui a fait le déplacement.
Sur la photo : Romain (boss et dev), Émilie (dev), Clothilde (comm) et Léo (chef produit). Non présents ce week-end : Léa (dev, privée de sortie), Audrey (interfaces et visuels), et il doit me manquer quelqu’un, sous réserve d’avoir bien compris ce qu’on ma dit.
J’ai donc pu avoir des réponses à mes interrogations et même, tenez-vous bien, à une formation expresse sur le code de Numworks.
En effet, repensant à l’idée d’implanter MicroAlg (le bientôt célèbre langage de programmation pédagogique) dans la calculatrice libre LibreCalc, je me suis dit que je pourrais faire de même dans Numworks. Mais depuis la recommandation ferme d’utiliser Python, j’ai gelé tout travail concernant MicroAlg. Comme je me concentre désormais sur le Club des Expressions (voir un article descriptif sur Sesamath), je me suis dit que je pourrais en faire une mini-version sur Numworks.
Émilie a donc gentiment pris sur son temps pour me faire faire le tour du propriétaire. A posteriori, je me suis rendu compte qu’il y avait :
Je reprends mes notes en conservant plus ou moins l’ordre chronologique.
Alpha
qui devrait être écrit en gris au-dessus de alpha
et non
ALPHA
, qui signifie pour moi « je reste en lettres majuscules ».alpha
?shift
permet de passer des minuscules aux
majuscules et inversement.Déception lors de mon premier test :
2 -> n
n
undef
mais heureusement :
2 -> N
N
2
L’équipe travaille sur ce point : les variables, sachant qu’ils veulent faire
faire quelque chose de cohérent avec le mode interactif de Python (les >>>
).
Mais que peut bien signifier « abscisses entières » ?
Le chef de produit Léo m’a répondu que cela forçait le point de parcours de la courbe à avoir ses abscisses entières, mais était un peu embarassé car le test en direct n’a pas été concluant. À améliorer donc, si possible avec un peu de documentation embarquée.
Une collègue avait testé avant moi la suite $\frac{1}{5} \left( 36 - \frac{1}{6^{n-2}}\right)$ qui n’affichait pas de terme pour $n > 50$.
Je n’ai pas pu reproduire le bug avec une des caltos en démo sur le stand. La nouvelle version du logiciel installée sur ces modèles n’ont sans doute plus ce bug. À vérifier plus tard…
Facile d’y entrer, mais difficile d’en sortir ! Je comprends plus tard que c’est fait exprès. Pour les néophytes, un petit message aurait été bienvenu.
Je me demandais pourquoi de temps en temps apparaissait un béret, et bien c’est l’indicateur du mode examen. Info récupérée en discutant avec l’équipe, je n’aurais pas deviné sinon !
Tout d’abord un petit mot sur l’implantation de Python.
Malgré l’avertissement assez clair :
BETA VERSION
You are using a pre-release and
feature-limited version of Python.
You may encounter some
unexpected bugs.
…j’ai pu entendre quelques critiques, certes justifiées, mais ne laissant paraître que de la déception, alors que ce POC est plein de promesses !
Donc ici, je soulève humblement quelques points, tout en restant admiratif et patient.
Comme on dit parfois : « Release early, release often ». Cette phrase provenant plutôt du monde des développeurs est aussi très efficace commercialement parlant !
Pour l’instant, un seul programme à la fois peut être stocké dans la calculatrice. L’équipe y travaille.
En cas d’erreur, la calculatrice n’est pas prolixe : le message Error
est un
peu sec ! Idem, l’équipe y travaille.
Dans le menu Python (et dans les autres en général), on voit Editer
au lien
de Éditer
et Executer
au lieu de Exécuter
.
L’équipe m’explique qu’ils y travaillent. Les accents sont dans le code, mais la police utilisée ne permet pas encore leur affichage (si j’ai bien tout compris).
Aussi, la question « Comment taper les accents ? » m’est venue. Dans le futur,
la touche « Boîte à outils » (qui ressemble plutôt selon moi à une imprimante)
servira à taper des accents et des mots-clés comme while
. Idem pour le
symbole #
.
Un petit truc qui n’a rien à voir avec Numworks : pour indenter, une espace suffira. C’est plus rapide et ça rentrera plus facilement dans l’écran.
Carré
La touche $x^2$ produit dans l’éditeur Python le code ^2
. 9^2
donne 11,
ce qui peut surprendre ceux qui connaissent bien leurs tables de
multiplication !!!
En fait en Python, ^
est l’opération XOR
(ou exclusif), effectuée
sur les bits de la représentation binaire des opérandes.
>>> 0^0
0
>>> 1^1
0
>>> 1^0
1
>>> 0^1
1
Ce qui explique mon exemple :
>>> 9^2
11
En effet :
1001 # 9 en binaire
0010 # 2 en binaire
---- # on applique XOR verticalement
1011 # 11 en binaire
Les autres touches
Idem avec les touches suivantes :
Solutions
Première idée : désactiver les touches ;
Deuxième idée : générer le code Python correspondant, par exemple, je
propose d’écrire à l’écran **2
lors de l’appui sur $x^2$. Pour $i$, on
obtiendra j
. Attention, pour entrer $i$ dans un programme en Python, il faut
taper 1j
.
>>> i**2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'i' is not defined
>>> j**2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'j' is not defined
>>> 1j**2
(-1+0j)
L’équipe est bien sûr au courant de ces problèmes et la discussion a basculé
sur une question importante : les modules, car pour une touche comme $ln$, on
a besoin du module math
.
Ma première idée : avoir import math
en entête d’un programme par défaut.
Un peu plus tard, je pense à une liste d’options à cocher :
[x] import math
[ ] from math import *
Du coup, l’appui sur $ln$ produirait, selon le choix de configuration de
l’utilisateur math.ln(|)
ou simplement ln(|)
.
Je pense que l’équipe doit ici faire très attention au respect des pratiques de tous les profs.
En cherchant à copier-coller, je n’ai pas reconnu une touche qui ressemble à une imprimante. Et comment sélectionne-t-on du texte ?
Léo m’explique que l’on peut seulement copier les résultats donnés par les applications : une moyenne donnée par l’application Statistiques peut être copiée et réutilisée dans l’application Calculs. Pour l’instant rien n’est fait concernant le copier-coller dans l’édition d’un programme Python.
Le retour du fun dans la calto !!!