Test

Le numérique au lycée (SNT/NSI)

La programmation informatique

Dans tous les lycées généraux et technologiques de France, les élèves en classe de seconde bénéficient d’un enseignement intitulé Sciences numériques et technologie (SNT), et les élèves en classe de première et terminale peuvent opter pour un enseignement intitulé Numérique et Sciences Informatiques (NSI). Tous deux comprennent un volet dédié à la programmation en Python.

Cette page présente comment le toolkit Atlas rend ces cours de programmation plus intéressants, en modernisant les exercices et les exemples de programmes qui y sont présentés pour les adapter aux nouveaux usages de l’informatique, induits par la démocratisation des smartphones.

Les jeunes sont particulièrement attachés à leur smartphone ; l’essentiel de leurs interactions sociales, ainsi qu’une part de plus en plus importante de leurs activités de loisir, reposent sur ce dispositif. C’est donc un excellent vecteur pour intéresser les jeunes au numérique en général et à la programmation en particulier.

Cette nouvelle technologie qu’est le toolkit Atlas est donc utilisée notamment pour que, d’une part, les programmes auxquels ils auront affaire au travers des exercices présenteront une interface qui leur est familière, et, d’autre part, qu’ils puissent accèder facilement à ces programmes à partir de leur smartphone.

I. Mise en œuvre d’une véritable interface graphique

Les exercices se présentent sous forme de véritables applications web, et bénéficient donc de tous les avantages d’une interface graphique. Mais ils ne nécessitent par pour autant un framework, Javascript ou autres, contrairement aux autres solutions Python pour développer des applications web. En conséquence, la gestion de l’interface s’en trouve simplifiée. Il est ainsi facile d’adapter des exercices existants pour les doter d’une interface graphique, ou d’en créer de nouveaux tirant profit d’une interface graphique.

II. Simplifier la manipulation de cette interface

Bien que cette technologie en simplifie la gestion, on ne peut proposer à des débutants des exercices qui requiert de manipuler directement une interface web. Mais, grâce à cette technologie, on peut créer des fonctions, propres à chaque exercice et adaptées à son niveau de difficultés, qui permettent de manipuler cette interface avec la même facilité que les input(…) et les print(…) habituellement mis en œuvres dans ce genre d’exercice.

III. Accéder aux exercices à partir d’un smartphone

Dés que l’on lance un exercice, son interface s’ouvre automatiquement dans un navigateur web. En-dessous de cette interface, un Code QR est affiché. Il suffit de le scanner avec un smartphone pour avoir accès à l’application correspondant à l’exercice directement de ce smartphone. Nul besoin de déployer l’application sur un serveur distant, ou de configurer le routeur du réseau local pour ouvrir et rediriger un port, ni de configurer le smartphone pour le connecter au réseau local. Il suffit que l’ordinateur sur lequel tourne l’application ainsi que le smartphone qui s’y connecte aient tous deux accès à Internet.

IV. Pouvoir montrer ses réalisations

Si l’élève désire montrer ses réalisations à ses parents/amis/professeurs…, il lui suffit de leur envoyer l’URL affichée dans le navigateur, ou celle correspondant au code QR qu’il aura scanné avec son smartphone (c’est la même URL), pour leur donner instantanément accès à son application. Et plusieurs personnes peuvent, sans problèmes, accèder à l’application en même temps ; le multi-tâche est géré de manière automatique et transparente.

V. Faire tourner les exercices sur un smartphone

Cette technologie fonctionne sans problèmes avec les différents interpréteurs Python disponibles sur les smartphones. Toutes les applications qu’il aura développées sur l’ordinateur utilisé lors lors des cours, l’élève pourra donc les transférer sur son smartphone pour les y lancer, et y donner accès à qui il veut comme indiqué précédemment. Il pourra même utiliser son smartphone comme machine de développement, même si ce dispositif est peu pratique pour ce genre d’usage.

Sans même installer quoique ce soit, il pourra également utiliser un EDI en ligne, comme Repl.it (https://repl.it), pour lancer l’application uniquement en utilisant un navigateur web.

VI. Utilisation d’un Raspberry Pi

Cette technologie fonctionne parfaitement sur des nano-ordinateurs comme le Raspberry Pi, même le modèle Zero W, qui ne coûte qu’une dizaine d’euros. On pourra ainsi facilement faire de véritables applications permettant de piloter à distance les dispositifs connectés aux ports GPIO du RPi, qu’il s’agisse de circuits électroniques ou de robots, à partir d’un smartphone ou de n’importe quel dispositif disposant d’un navigateur web graphique.

Le toolkit Atlas sur un Raspberry Zero W

VII. Installation et mise en œuvre facile

Les exercices pourront se présenter sous la forme d’une archive de quelques dizaines de Ko, que l’on pourra rendre auto-extractible pour en faciliter l’installation. L’élève chargera cette archive via une URL et la déploiera sur un ordinateur disposant d’un environnement de développement Python (version 2 ou 3, au choix). Il n’y a absolument rien d’autre à installer. Il ouvrira ensuite un fichier contenu dans l’archive à l’aide d’un éditeur quelconque, fichier contenant les quelques lignes procédant à l’importation du module nécessaire au bon fonctionnement des exercices, et éventuellement un canevas. C’est dans ce ficher qu’il saisira le code correspondant à l’exercice, et c’est ce fichier qu’il lancera, soit à partir de la ligne de commande, soit directement de l’éditeur si ce dernier le permet. Un navigateur web s’ouvrira alors automatiquement pour lui donner accès à l’interface de l’exercice en cours.

VIII. Une technologie libre est immédiatement disponible

L’ensemble des composants logiciels constituant cette technologie est disponible sous license libre. Vous pouvez les télécharger librement, les adapter à vos besoins, si cela s’avérait nécessaire, et les diffuser tout aussi librement. Les exemples des mise en œuvre de cette technologie sont également sous licence libre, exemples d’exercices compris ; vous pouvez donc les réutiliser pour créer vos propres applications ou exercices. Rien ne s’oppose donc à ce que vous fassiez bénéficier vos élèves de cette technologie dés aujourd’hui.

Transformation d’exercices

Premier exemple

Prenons, par exemple, un programme, en Python, dont le but est la résolution d’une inéquation du 1er degré. D’habitude, le résultat ressemble à quelque chose comme cela (cliquez sur l’image pour une démonstration en ligne) :

Exercise de résolution d’une (in)équation du premier degré avec une interface texte

Voici le même exercice utilisant cette nouvelle technologie (version anglaise située dans le répertoire en/Z_1.py du dépôt auquel vous accéderez en cliquant sur l’image ci-dessous ; la version française se situe dans le répertoire fr/Z_1.py du même dépôt) :

Exercise de résolution d’une (in)équation du premier degré s’appuyant sur le toolkit Atlas

C’est visuellement plus attrayant, et d’une ergonomie plus aboutie, grâce au formulaire permettant de modifier le paramètre de son choix sans avoir à ressaisir les autres.

Second exemple

Cliquez sur les images pour accéder à la démonstration en ligne du programme correspondant.

Autre exemple, le jeu du Reversi (ou Othello), toujours en Python. Ce jeu ressemblera habituellement à quelque chose comme cela :

Jeu de Reversi/Othello avec une interface texte

On peut noter, outre l’aspect désuet, que l’interface texte nécessite de repérer la position à laquelle on désire placer le jeton à l’aide de la grille affichée, pour ensuite en saisir les coordonnées au clavier.

Voici la version avec la nouvelle technologie, qui permet de cliquer directement la position à laquelle on désire placer le jeton, ce qui est nettement plus ergonomique :

Version de base du jeu de Reversi/Othello s’appuyant dur le toolkit Atlas

Et une autre version plus avancée :

Version avancée du jeu de Reversi/Othello s’appuyant dur le toolkit Atlas

À vous d’essayer

À titre de preuve de concept, voici quelques exercices en vrac : https://q37.info/s/tpkx4cfk.

Une autre preuve de concept, en l’occurrence également des exercices, mais dont l’objet est la programmation d’un jeu : https://q37.info/s/7sxtcv7g (démonstration en ligne du jeu en question : https://q37.info/s/jtdqjsx7).

Et enfin, quelques exemples de mise œuvre d’une adaptation de la fameuse tortue, du non moins fameux langage éducatif Logo, basée sur cette même technologie : https://q37.info/s/dj9b7ksf.

Si vous êtes intéressés par la création d’exercices ou d’exemples de programmes Python, que ce soit pour des débutants ou d’un niveau plus avancé, ou si vous avez des questions/suggestions/remarques…, n’hésitez pas à m’envoyer un message via la page de contact.