Quelques notes à propos de 3 environnements de programmation

La programmation arrive (revient en fait!) dans les écoles à toute vitesse. Qui en fera avec les élèves, comment, à quelles fins… on ne le sait pas! Mais une chose est certaine: Il y a là un beau potentiel pour les mathématiques.

Quand vient le temps choisir l’environnement dans lequel on souhait travailler en programmation, il n’est pas si facile de s’y retrouver. La programmation par blocs, contrairement aux langages de programmation, est assez uniforme d’un environnement à l’autre. Mais chaque plateformes offre quand même ses particularités, car elle sont construites avec des intentions parfois assez différentes. Aussi, de manière générale, on se trouve souvent à devoir un choix entre la convivialité de l’interface et les fonctionnalités qui sont offertes. Personnellement, il y a toujours 3 questions qui me guident, aussi importantes les unes que les autres:

  1. Est adapté à mes participants
  2. Est-ce adapté aux tâches/activités que j’ai en tête
  3. Est-ce bien accessible, par exemple: gratuitement, sur différentes machines, sans trop d’installation, etc.

Pour le moment, 3 logiciels ont retenu mon attention: Scratch, Snap! et P5visuel. Voici, en quelques mots, ce que je retiens de chacun.

Scratch (scratch.mit.edu)

Scratch s’adresse principalement aux enfants (et leurs enseignants). Il est très convivial et disponible en ligne et en version local (gratuitement). La version en ligne permet de créer un compte et d’enregistrer et partager ses créations directement sur le serveur (ou sur son ordinateur).

Le site web offre donc une énorme liste de programme crées par ses utilisateurs. Il est toujours possible d’accéder au code des programmes partager et de mes modifier en en faisant une copie (que l’on peut conserver). Un enseignant peut même créer des “studios” où ses élèves vont ajouter leur programmes.

Les faiblesses principales de Scratch à mon avis sont les suivantes: il ne fonctionne pas sur tablettes (pour le moment), son canevas (où apparaissent les résultats du programme) est trop petit, il lui manque quelques fonctions mathématiques importantes (par exemple l’exponentiation) et… il distrait facilement les enfants du travail à faire avec ses “gadgets” permettant d’ajouter des images et son (un peu trop accessibles et facile à utiliser!).

Mais sommes toutes, c’est un bon point de départ.

Snap! (snap.berkeley.edu)

Snap! est un peu le grand frère de Scratch. Les deux se ressemble beaucoup. Mais Snap! est un peu moins convivial, et possède pas mal plus de fonctionnalités. Plusieurs fonctionalités cependant, sont à mon avis un peu trop avancées pour la majorité des utilisateurs (comme la possibilité de créer ses propres blocs en insérant un code en javascript). Mais il offre quand même un bon plus par rapport à son petit frère.

Du côté des points forts, Snap! peut fonctionner à partir de “librairies” de blocs dont une, par exemple, permet de travailler avec des “grands nombres” (de plus de 15 chiffres). Son canevas est flexible et son interface est beaucoup moins distrayante car les fonctionnalités liés aux images et aux sons sont moins accessibles et intuitifs. Chose magnifique: il offre un mode “pas à pas” permettant de suivre doucement l’exécution d’un programme et ainsi repérer plus facilement les endroits où ça ne “fonctionne pas”. Certains de ses blocs sont aussi plus efficaces que ceux de Scratch.

On peut aussi créer un compte pour sauvegarder ses programmes sur le serveur (ou les enregistrer localement), mais il n’y a pas de moyens de partager ses programmes via le logiciel lui-même. Un version local, un peu moins à jour, existe également. Personnellement, je l’aime bien.

P5Visuel (tiny.cc/p5visuel)

P5Visuel est d’une autre catégorie. C’est une logiciel développé ici (par André Boileau, prof retraité de l’UQAM) à l’intention des enseignants de maths (et peut-être de leurs élèves). Il permet de faire des choses assez différentes, comme la création directe de page web interactives, ou d’applications (javascript) pouvant facilement être intégré à n’importe quelle page web (et interagir au besoin avec certains de ses constituants).

Ce logiciel est très malléable, pratiquement sans limites en ce qui concerne le caneva et, par exemple, l’ajout d’éléments pour interagir avec un programme (glissières, liste de choix, etc.). Il possède aussi un module permettant de composer facilement des textes mathématiques au format plus ou moins complexe. Et, chose qui peut devenir intéressante plus tard, il nous donne accès au code “écrit” générer par le programme: un élément intéressant si on passer à des langages de programmation professionnel comme javascript ou python.

Ceci se paye au prix de la convivialité. Il faut plus d’efforts pour créer son premier programme et devenir à l’aise avec P5visuel. Chaque programme demande aussi un peu plus de temps et d’étapes car on a plus de pouvoir et de possibilités (par exemple pour définir les dimensions des listes à afficher). Aussi, on se rapproche des logiciels de programmation standard dont l’exécution est “extérieur” à l’interface. Ici, on doit exécuter le programme dont le résultat apparaît dans une nouvelle page web. Il est donc impossible de suivre l’exécution du programme lui-même (mode pas à pas): on ne voit que le code, puis le résultat.

À noter également: la version “locale” est un peu difficile à mettre en marche, et il n’y a pas de système de mise à jour, mais il reste tout à fait possible de travailler avec P5visuel sans connexion internet. Aussi, il n’offre pas de sauvegarde ou de partage “serveur”. Les fichiers doivent être enregistrés localement. Par contre, on peut réussir à l’utiliser avec une tablette, directement dans son navigateur.

Tout cela étant dit, P5Visuel reste un programme que j’aime énormément.

Programmation par blocs sur tablette

Programmer sur une tablette n’est pas la meilleur idée. Il est souvent difficile de se repérer dans l’espace, saisir et positionner les blocs comme on le veut, et ainsi de suite. C’est peut-être la raison pour laquelle il  y a peu d’alternative de ce point de vue.

Si vous tenez à tenter l’expérience, j’ai quand même repérer quelques possibililités:

Programmation par blocs sur une tablette:

  • Pyonkee Tickle et mBlock sont des une version iOS de Scratch (pour iPad).
  • Il existe des logiciels semblables pour Android: ici, ici ou ici par exemple.
  • On m’apprend également l’existence de Mimo, en version iOs et Android

Le logiciel mBlock par exemple a été créer pour interagir avec les robots mBot, mais il est possible de laissé de côté cet aspect et s’en servir pour programmer comme on le fait avec Scratch. Dans les mois/années à venir, il est certain que de nouveaux logiciels feront leur apparition. Si vous en croisez des bons, écrivez-moi donc!