Poster un commentaire à la suite de l’article...

jeudi 27 avril 2017
par  Nathalie CARRIÉ

Programmer des algorithmes avec Snap! ou la programmation visuelle au lycée

Cette galerie d’images a été réalisée à l’aide de Snap! afin de faire sentir l’impact de la programmation visuelle auprès de nos adolescents, qui sont dans l’instantanéité et réclament de plus en plus de visualiser les concepts et d’en voir des animations. Le codage des algorithmes qui y sont exposés est censé faire apparaître la notion universelle de fonction en mathématiques soulignée dans le nouveau programme de seconde (en version bêta). Je souhaite aussi, à travers ces images de code, soulever cette question : pourquoi explicitement demander de la programmation textuelle et ne pas autoriser aussi la programmation visuelle au lycée à la rentrée 2017-2018 ?

En réponse à...

Logo de Nathalie CARRIÉ
mercredi 24 mai 2017 à 10h45 - par  Nathalie CARRIÉ

Bonjour,

Je vous remercie sincèrement pour avoir posté votre commentaire car il m’a permis de modifier quelques lignes de l’article pour essayer d’être plus claire, notamment en ce qui concerne la propriété d’être fonctionnel du langage Snap !. J’ai ainsi changé l’illustration d’une fonction récursive par le choix proposé pour les paramètres d’un bloc de Snap !.

Je ne suis certes pas spécialiste en informatique car je suis professeur de mathématiques mais votre réponse montre que vous avez été un peu vite dans votre évaluation du langage Snap !.

Je vais essayer de répondre point par point à votre commentaire.

Tout d’abord, mon affirmation : « Snap ! est en fait un langage de programmation fonctionnelle ... » est correcte. Elle ne vient pas de moi mais du développeur lui-même qui explique que Snap ! permet de faire de la programmation fonctionnelle.
Si vous en doutez, je vous propose de communiquer directement avec lui.
Voici son tweet épinglé sur Twitter : Snap ! is designed to support functional programming, higher order functions and custom control structures.
Je vous propose aussi (et surtout) de programmer quelques scripts avec Snap !. Car vous vous êtes arrêté aux exemples que je donnais sur cette page.
D’ailleurs, la mascotte de Snap ! porte un lambda sur sa frange, en l’honneur de Alonzo Church, le père du Lambda-calcul. Et j’ai cru comprendre que le Lambda-calcul était à l’origine de la programmation fonctionnelle.

Vous avez clairement survolé cet article.
En effet, cette simple image montre que Snap ! emploie des types et des structures de données de haut niveau. Mais je pense que vous n’avez pas cherché la signification des deux petits triangles...

Je vous cite :
La présence des constructions fonctionnelles, comme des procédures récursives, ne change pas la catégorie du langage.
Mes exemples n’étaient pas là dans cet article pour démontrer que le langage est fonctionnel. Je n’ai pas eu cette prétention. Je m’adresse à des enseignants et à des élèves, je veux juste montrer que l’on peut efficacement faire des mathématiques du secondaire avec Snap !.
Si je mettais en illustration ce genre d’images, je faisais fuir dans la minute qui suit, les lecteurs à la première lecture de mon article. Ils ne seraient pas allés plus loin pour voir ce que Snap ! permet de faire en classe.
Je ne connais pas beaucoup de langages visuels qui permettent de programmer ce genre de fonctions, où les paramètres sont des lutins. Il me semble par exemple que Scratch dans sa version actuelle ne le permet pas. Je n’ai pas la chance de connaître les langages visuels que vous avez cités.

Point a.
Sincèrement, j’ai du mal à vous suivre.
Moi, je le ressens comme tel (langage visuel). Et Snap ! se définit comme tel.
Voir la page « About Snap ! » ici : http://snap.berkeley.edu/about.html.
D’ailleurs, dans Wikipédia, Snap ! est cité comme langage de programmation graphique ou visuel :
https://fr.wikipedia.org/wiki/Langage_graphique.

Point b.
Bien évidemment, apprendre la syntaxe d’un langage demande beaucoup de rigueur et est très formateur. C’est même fabuleux de programmer en C, ou en Python, et j’adore ça. J’ai beaucoup programmé avant d’enseigner, dans des bureaux d’études en Sciences.
Par contre, la réalité du terrain quand on enseigne est là et je ne pense pas que vous soyez face à des élèves de collège ou de lycée.
Très sincèrement, vous ne vous rendez pas compte de la difficulté d’expliquer, même à des Terminales, par exemple, l’indentation en Python. Six mois après le début des cours, les élèves ont encore ce genre d’erreurs de syntaxe. Idem pour l’oubli des 2 points. Personnellement, je trouve cela dommage de passer du temps la-dessus, alors que nos élèves ont tant à apprendre. Je pense que nous devons hiérarchiser les priorités. Nous ne sommes pas là pour former des développeurs, mais pour faire des Mathématiques.

Point c.
Pour moi, mélanger les syntaxes français et anglais, cela n’a pas d’importance car il suffit dans Snap ! de changer de langue. Mes élèves d’ailleurs me demandent les 2 pour les corrections. Désolée si vous ne pouvez pas faire la part des choses.

Merci encore pour ce message car il m’a permis de clarifier quelques-unes de mes idées...
Salutations.

modération a priori

Ce forum est modéré a priori : votre contribution n’apparaîtra qu’après avoir été validée par un administrateur du site.

Qui êtes-vous ?
Votre message

Pour créer des paragraphes, laissez simplement des lignes vides.