L’outil présenté ici peut, bien entendu, être utilisé dans d’autres contextes (présentation, initiation, apprentissage, atelier…) que les formations dont il est question ici, et également à destination d’autres publics…
Enseignants, vous trouverez à l’adresse https://q37.info/s/mmdnch9t des exercices de programmation, basés sur l’outil présenté ici.

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 peuvent opter pour un enseignement intitulé numérique et sciences informatiques (NSI). Tous deux comprennent un volet dédié à la programmation en Python.

Avec des connaissances en programmation, ils pourront créer des programmes d’appoint (exemple : https://q37.info/s/97p44nh4), qui, mis en œuvre en complément des logiciels qu’ils seront amenés à utiliser, notamment en milieu professionnel, leur permettront de gagner du temps en automatisant des tâches répétitives, chronophages et souvent rébarbatives.

Cette page présente comment un outil, qui s’appuie sur le toolkit Atlas, rend ces cours de programmation plus attrayants, en modernisant les exercices qui y sont proposé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 les intéresser au numérique en général et à la programmation en particulier.

Le toolkit Atlas est donc utilisé pour, d’une part, que les programmes informatiques qu’ils réaliseront à titre d’exercice soient dotés une interface qui leur est familière, et, d’autre part, qu’ils puissent accéder très facilement à ces programmes à partir de leur smartphone.

I. Des programmes avec 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 cet outil est beaucoup plus léger et d’un usage beaucoup plus simple que les habituelles solutions Python pour développer des applications web. Il est ainsi facile de modifier des exercices existants pour les doter d’une interface graphique, ou d’en créer de nouveaux qui tireront profit des avantages de cet outil.

II. Simplifier la manipulation de cette interface

Bien que cet outil en simplifie la gestion, on ne peut soumettre à des débutants des exercices qui requiert de manipuler directement une interface web. Mais, grâce à cet outil, on peut créer des fonctions, propres à chaque exercice et adaptées à son niveau de difficultés, qui leur permettent de manipuler cette interface web aussi facilement que l’habituelle interface texte, avec les classiques input(…) et print(…).

III. Accéder aux programmes à 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 directement accès à l’exercice avec 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 une de ses réalisations à ses parents/amis/professeurs…, il lui suffit de leur envoyer son URL, qu’il pourra récupérer dans la barre d’adresse du navigateur, ou via le code QR, pour leur en donner instantanément l’accès. Et plusieurs personnes peuvent, sans problèmes, accéder à la même 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

Cet outil 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 des cours, l’élève pourra les transférer sur son smartphone pour les y lancer, ainsi qu’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.

Il pourra également utiliser un EDI en ligne, comme Repl.it (https://repl.it), pour lancer l’application uniquement en utilisant un navigateur web, sans rien avoir à installer. Vous pourrez en faire de même avec les démonstrations présentées plus bas.

VI. Utiliser un Raspberry Pi

Cet outil 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. Il est ainsi trés facile de créer des applications permettant de piloter à distance, à partir d’un smartphone ou de n’importe quel dispositif disposant d’un navigateur web graphique moderne, les dispositifs connectés aux ports GPIO du RPi, qu’il s’agisse de circuits électroniques ou de robots (cliquez sur l’image ci-dessous pour en savoir plus…).

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, généralement 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 qui contiendra quelques lignes de mise en situation. 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 question.

VIII. Un outil libre et immédiatement disponible

L’ensemble des composants logiciels constituant cet outil est disponible sous licence 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 cet outil 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 cet outil 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) :

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

Voici le même exercice utilisant l’outil décrit sur cette page (click sur l’image, bouton vert run, exercice z_1) :

Exercice 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

Autre exemple, le jeu du Reversi (ou Othello), toujours en Python. Ce jeu ressemblera habituellement à quelque chose comme cela (click sur l’image, et bouton vert run) :

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 ce nouvel outil, qui permet de cliquer directement la position à laquelle on désire placer le jeton, ce qui est nettement plus ergonomique (click sur l’image, bouton vert run, entrée Reversi, click sur l’URL):

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

Et une autre version, plus avancée (click sur l’image, bouton vert run, entrée Reversi, click sur l’URL, puis sur le bouton Toggle layout) :

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

Également basée sur le toolkit Atlas, voici une adaptation de la fameuse tortue du langage éducatif Logo, grâce à laquelle les élèves peuvent facilement réaliser ce genre de figure (click sur l’image, bouton vert run) :

Exemple de mise en œuvre de la bibliothèque inspirée de la tortue du langage Logo

À vous de jouer

Au final, il s’agit de créer un outil permettant aux enseignants, comme les futurs titulaires du CAPES informatique (qui devrait voir le jour en 2020), de créer eux-mêmes les exercices qu’ils utiliseront dans leurs cours. Voire de confier cette tâche, à titre d’exercice, aux futurs élèves de terminales ayant choisis l’option NSI, c’est-à-dire leur faire créer les exercices qu’utiliseront leurs petits camarades des classes de première et de seconde.

En tant qu’enseignant, vous pouvez d’ores et déjà proposer aux élèves une série d’exercices basés sur cet outil. La notice enseignant pour ces exercices se trouve à l’adresse https://q37.info/s/mmdnch9t.

Pour familiariser les étudiants avec l’environnement de ces nouveaux exercices, il existe une bibliothèque (term2web) qui redirige les fonctions print(…) et input(…) vers une page web, ce qui permet de formatter le texte affiché par ces fonctions grâce aux CSS, rendant les programmes visuellement plus attractifs que lorsqu’ils s’affichent dans l’habituel et austère terminal texte. Le dépôt GitHub de cette bibliothèque se trouve à l’adresse https://q37.info/s/dh9gpjft, et la notice à l’adresse https://q37.info/s/rhj9qmb9.

Pour toutes questions/suggestions/remarques…, n’hésitez pas à envoyer un message via ce formulaire de contact.

Liens