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.
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) :
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) :
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
Autre exemple, le jeu du Reversi (ou Othello), toujours en Python. Ce jeu ressemblera habituellement à quelque chose comme cela :
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 :
Et une autre version plus avancée :
À 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.