Conversion des scripts Snap! en code Python

Après discussion avec pas mal de collègues, la possibilité de convertir les scripts Snap! en code Python (qu’il me semblait bien avoir vue quelque part), parait intéresser du monde.
Donc j’ai refouillé un peu et je suis retombé sur l’exemple Codification (dispo dans les exemples qui viennent à chaque ouverture de Snap!), qui propose cette possibilité (sur plein de langages).
Sauf que c’est beaucoup moins simple que dans mon souvenir, et notamment peu ergonomique pour une utilisation en classe, à mon avis. Allez voir.
Donc j’ai repris cet exemple en le modifiant. J’ai créé un simple bloc “pythonification” et ça donne ceci :

Fichier xml du projet ici :
conversion_python.xml.zip (8.7 KB)

Je compte bien m’en servir à la rentrée prochaine. Bien sûr, quelques trucs n’y sont pas (les inputs, notamment), mais toutes les structures classiques sont bien retranscrites. Je pense que ça peut faire l’objet d’un très chouette TP. Par exemple en rajoutant un bloc Java, et en faisant jongler l’élève avec 3 écritures différentes d’une même instruction. J’en frémis d’avance. Mais bon, là c’est les vacances (et samedi soir).

3 Likes

Cet exemple de pythonification est peut-être plus complet. Il vient de cycomachead, tu trouveras aussi sur ce dépôt pas mal de projets intéressants.

Merci Théo,
je regarderai ça en détail.
Pour résumer publiquement la discussion que j’ai eue avec Pierre tout à l’heure, quelques précisions sur ce que j’ai envie de faire avec cette possibilité de convertir du Snap! en Python et Java.
Tout d’abord, ce que ça N’EST PAS :
"Regardez, on s’amuse bien avec Snap!, mais saviez-vous qu’il est possible de le convertir en vrai langage de programmation pour les grands ? Allez, regardez, grâce à ce fichier on va passer en douceur de la perceuse Smoby au perforateur Metabo."
Ça, c’est honnêtement ce à quoi je pensais lors de ma découverte de Snap!. Mais ça, c’était avant.
Maintenant, je présenterais davantage la différence Snap! / Python / Java comme un exercice de linguistique. Les élèves savent qu’un programmeur tape du texte au clavier. On ne voit pas encore au cinéma un hacker à cheveux longs tirer des blocs jaune et bleu pour casser un mot de passe. Donc oui, le code existe, et est rédigé textuellement dans la très grande majorité des cas.
Je voudrais plutôt montrer l’équivalence entre les trois langages sur des instructions très simples, comme trois idiomes différents pour s’adresser à une personne, ou trois registres de langage. Tout ça dans une approche résolument horizontale et non verticale.
Après, il suffit de dire que chaque langage correspond à un besoin, et donc est plus ou moins adapté suivant le but recherché.
Je laisse à Pierre le soin de conclure avec la belle citation de Jens Mönig lors du cocktail de clôture du colloque :slight_smile:
En espérant avoir été à peu près clair…

4 Likes

Je cite: “Quand je pense que je me suis fait battre par un robot qui joue au Puissance 4…Programmé en Snap en plus…”

2 Likes

Non, je voulais celle d’avant tous les verres de vin que vous lui avez fait boire pour qu’il croie se souvenir qu’on était des gens intéressants.