Sommaire :


NumWorks ne manque pas d’y rajouter sa petite touche habituelle d’originalité, avec un affichage mixte profitant intelligemment de la définition de l’écran en 320x240 pixels pour y présenter les résultats à la fois en écriture exacte et décimale. Cela a certes l’avantage évident d’éviter à l’utilisateur des manipulations plus ou moins complexes pour basculer de l’une à l’autre, comme il devrait le faire sur les autres modèles. Mais cet affichage a également des effets positifs sur les compétences de l’utilisateur, ayant l’avantage de lier ici clairement ces formes comme deux représentations du même objet mathématique au lieu de les séparer, et de plus avec une formulation mathématique correcte avec le symbole environ; de quoi améliorer à la fois l’acquisition des compétences Représenter et Communiquer.

Accessoirement pour peut-être mieux optimiser l’affichage par rapport à cette nouveauté, notons que dans l’application Paramètres il est désormais possible de choisir le nombre maximum de chiffres significatifs affichés, par défaut 7. Mais notons bien que même si c’est un paramètre global, il ne s’appliquera en pratique qu’à l’application Calculs.


Rappelons pour référence que les modèles de milieu de gamme concurrents TI-83 Premium CE et Casio Graph 35/75/90+E gèrent deux familles de résultats réels exacts :
- $mathjax$\pm\frac{a\pi}{b}$mathjax$pour la trigonométrie bien évidemment
- $mathjax$\frac{\pm a\sqrt{b} \pm c\sqrt{d}}{f}$mathjax$qui est une famille de nombres avec des propriétés aisément vérifiables par les processeurs légers, et couvrant l’essentiel des besoins des lycéens jusqu’en Première


NumWorks aurait-il géré une liste de formes exactes un peu plus nombreuses ou générales que celles des moteurs exacts de milieu de gamme concurrents ?



En théorie, cela impliquerait que le fonctionnement interne du moteur utilise non pas une liste de formes prédéfinies, mais des arbres binaires de calculs, soit la base d’un moteur de calcul littéral. Et si en fait…

… et bingo, le nouveau moteur de calcul NumWorks ne fait pas que fonctionner comme un moteur de calcul littéral, il fait vraiment du calcul littéral !

Il semble toutefois très limité, et ne saurait en rien être comparé avec les moteurs de calcul dits CAS intégrés aux modèles haut de gamme :
- D’une part il ne sait rien faire d’autre que simplifier des expressions littérales. Pas de possibilité de préciser si l’on souhaite que la simplification se fasse par factorisation ou développement.
- D’autre part, il n’y a eu aucun ajout de fonction utilisant ce moteur. Pas de possibilité donc contrairement aux modèles CAS de résoudre des équations, dériver, primitiver, calculer des limites, déterminer des ensembles de définition ou encore obtenir des tableaux d’étude de fonction comme sur HP Prime et Casio fx-CP400+E.



Même si cela reste très limité par rapport aux modèles haut de gamme, ce calcul littéral extrêmement basique pourra parfaitement couvrir les besoins de nombre de lycéens de séries non scientifiques pour lesquels les derniers sujets de BAC fournissent de plus en plus les expressions littérales à utiliser au lieu de les demander. Pour les séries plus scientifiques, si il y aurait un point à rajouter en priorité pour nous, ce serait la dérivation.
La calculatrice NumWorks une fois mise à jour fait du calcul littéral. Mais avec toutes les limitations que nous venons de lister, on peut toutefois se demander si son moteur de calcul mérite ou pas l’appellation "moteur de calcul littéral" et si dans l’affirmative on peut pousser jusqu’à l’appellation de "CAS" (Computer Algebra System) ou pas, tout dépendant des définitions que l’on retient. Cette nuance est en effet essentielle car nombre d’examens/pays interdisent le CAS (Portugal, Pays-Bas, Baccalauréat International, plusieurs examens américains…), et ce serait plus que dommage que la NumWorks s'y fasse refuser…
Quoiqu’il en soit, après mise à jour la NumWorks devient bel et bien capable de faire du calcul littéral. Nous ne pouvons honnêtement qu’en tirer un bilan extrêmement positif. Pour la première fois en ce jour historique, le calcul littéral devient accessible sans programmes additionnels (qui de toutes façons seraient détruits par le mode examen) sous la barre psychologique des 100 € et donc avec un prix à seulement 2 chiffres, 80€ pour rappel, c'est une véritable Révolution !

L’application Python bénéficie pour sa part d’améliorations significatives présentées en avant-première au séminaire national d’Algorithmique au lycée le 20 novembre dernier, seule calculatrice à avoir l’honneur d’y être mentionnée d’ailleurs car seule calculatrice conforme aux évolutions du programme mises en oeuvre cette rentrée 2017 et auxquelles était dédié ce séminaire.
Jusqu’à présent l’éditeur de scripts Python de la NumWorks était en version beta, et était même jugé plutôt inutilisable en classe selon certains commentaires. De notre côté, nous l’avions toujours vu comme un aperçu certes limité - car probablement développé en vitesse - mais très encourageant, d’une fonctionnalité forcément destinée à évoluer rapidement. Un peu comme une démo jouable. Et voici aujourd’hui le grand jour.

Oubliez le script unique à écraser et recommencer à chaque utilisation, l’application Python gère désormais plusieurs scripts *.py, que l’on peut librement rajouter, nommer, renommer et bien évidemment supprimer. Ils prendront alors la forme de modules pouvant être importés ou lancés directement (standalone).

Niveau éditeur nous avons aussi de belles améliorations avec une indentation automatique se déclenchant sur les retours à la ligne après saisie de toute instruction introduisant un bloc (boucles, conditionnelles…). On peut également remarquer que les espaces saisis en début de ligne sont désormais insérés et supprimés par paires. De quoi saisir plus rapidement du code Python respectant les conventions d’écriture et d’indentation (indentation avec 2 ou 4 espaces), tout en économisant la durée de vie de sa touche espace.





On y dispose entre autres d’un catalogue listant alphabétiquement les fonctions disponibles, mais notamment en tête de liste tous caractères spéciaux et symboles utiles au langage Python qui n’avaient pas été inclus sur les touches clavier :

- # pour les commentaires
- % pour le reste d’une division euclidienne
- \n pour les retours à la ligne dans des chaînes de caractères
- \t pour les tabulations dans des chaînes de caractères
- &, ^ et | pour les opérations bit à bit
- …
alphaà chaque fois pour débloquer cette fonctionnalité.








Citons aussi la touche
varqui, de façon complémentaire, permettra de lister les fonctions et variables globales existantes dans le contexte courant, c’est-à-dire définies dans les scripts importés et également dans le script courant si nous sommes dans l’éditeur.

- factorial.py qui définit une fonction factorielle récursive
- polynomial.py qui fournit une fonction permettant de récupérer en écriture décimale les racines réelles d’un polynôme du second degré (Première)
- mandelbrot.py qui trace une fractale avec des paramètres légèrement différents de l’exemple de la dernière version, et constitue une réécriture intégrale en utilisant les fonctions et le module cmath.
Concernant la fractale, on peut toutefois bien évidemment modifier légèrement le programme pour lui redonner les mêmes paramètres que dans l’ancienne version et ainsi pouvoir comparer les performances :
version sans cmath firmware 1.1.2 | version avec cmath+fonction firmware 1.2.0 |
|
Appel avec mandelbrot(10) |
On note un gain en performances significatif de près de 10%, le temps d’exécution passant de 2min30 à 2min17 !

Finalement une très belle mise à jour. Notre classement QCC de rentrée 2017 qui classait la calculatrice NumWorks proche de l’entrée de gamme TI-82 Advanced n’est clairement plus d’actualité. La calculatrice a su évoluer très rapidement, et se doter d’une part d’un moteur de calcul littéral qui n’est plus l’apanage des modèles avec un prix à 3 chiffres. Le constructeur joue ainsi un rôle d’agitateur nous semblant aller dans le sens de l’intérêt des acheteurs et donc des lycéens français. D’autre part, la calculatrice a su se doter d’un environnement de développement Python complet, en conformité avec les nouveaux programmes de Seconde en vigueur depuis cette rentrée 2017. Si nous ne sommes clairement plus dans des fonctionnalités d’entrée de gamme et que le prix de milieu de gamme est désormais bien positionné, on peut toutefois se demander si la calculatrice NumWorks ne va pas finir par nous offrir au même prix des fonctionnalités haut de gamme, si bien sûr le développement continue au même rythme.

Par rapport au Python, il nous semble toutefois important de préciser qu’il manque encore un point essentiel qui empêchera à notre avis la machine d’être adoptée sérieusement pour son enseignement au lycée. L’activation du mode examen détruira en effet définitivement toutes les données saisies, y compris tous les scripts Python. Mauvaise surprise par exemple de découvrir après coup que le mode examen exigé pour le DS de Physique-Chimie aura détruit toute trace du projet d’ICN/ISN/TPE, ou du devoir/DM de Maths à achever pour le lendemain.
Précisons accessoirement que les scripts d’exemples préchargés n’échappent pas à cet effacement. polynomial.py qui aurait pu être très utile pour les élèves de Première disparaîtra donc également les jours d’évaluation. Petit détail, les scripts d’exemples ne réapparaîtront pas automatiquement après une désactivation normale du mode examen. Il faudra utiliser le bouton reset au dos de la machine.
Il faudrait selon nous pouvoir disposer assez rapidement d’une connectivité permettant d’importer et exporter à loisir ses scripts Python. Ce serait également le moyen en classe de s’échanger de proche en proche un support de travail fourni par l’enseignant, que ce soit le script du jour à étudier/modifier, ou de mini bibliothèques destinées à fournir quelques fonctions utiles clés en main pour construire les projets par dessus.
A très bientôt dans le fil d'actualités NumWorks on espère !

Liens :