XD blog

blog page

programmation, references, scratch


2013-06-08 Apprendre la programmation avec la souris (avec Scratch)

Je cherchais des livres récents sur Python et je suis tombé là dessus : Super Scratch Programming Adventure!: Learn to Program by Making Cool Games!. Le livre est en anglais mais il présente un outil qui se décline dans toutes les langues et qu'on peut trouver ici : Scratch et qu'on peut télécharger sur toutes les plateformes ici : téléchargement.

Je suis toujours un peu sceptique sur les outils comme celui-ci. Ils sont soit très simples mais on ne peut pas faire grand chose, soit aussi complexe que d'autres (Apprendre à coder en Python : illustration) avec le désavantage de ne pas pouvoir utiliser plus tard ce qu'on apprend aujourd'hui (tout du moins pas en l'état car c'est une autre syntaxe). Malgré tout, c'est un outil intéressant, il offre une vue plus visuelle sur ce qu'est un algorithme comme cet exemple sur le calcul du PGCD (plus grand diviseur commun) : PGCD avec Scratch. Avec Scratch, on peut créer une scène et animer relativement facilement plusieurs objets dans cette scène : minotaure. On peut y ajouter des extensions : S4A : un projet pédagogique. On peut même trouver une traduction française du tutoriel : tutoriel en français. Et si vous avez la flemme de l'installer, vous pouvez l'utiliser en ligne : Scratch en ligne.

Tout est fait pour y être intuitif et ça marche plutôt bien. Cela dit, comme tout langage de programmation, il faudra quelques heures pour arriver à faire vraiment ce qu'on avait en tête au moment de commencer. Il manque selon mon avis deux fonctionnalités. La première serait de pouvoir aisément animer un personnage avec une séquence d'images. Dans scratch, chaque image serait un objet ce qui rend les choses un peut compliquées. L'autre option est de créer des costumes différents mais je ne sais pas trop comment Scratch gère la transparence des images. Il manque aussi les fonctions même s'il est encore possible de contourner l'obstacle : Creating a Function in Scratch using a Variable. Ce n'est pas l'idéal. L'autre option est d'utiliser Snap qui permet de créer ses propres blocs. Je n'ai pas réussi à télécharger l'outil, il est seulement disponible en ligne pour le moment (et en anglais). J'attendrais un peu.

Il n'est pas facile d'apprendre à programmation. Je n'ai pas encore trouvé de représentation qui ne soit pas abstraite. On comprend aisément ce que veut dire répéter une suite d'opérations mais un algorithme comprend souvent plusieurs répétitions, chacune d'entre elles pilotée par une condition différente. Les premiers pas sont plutôt simples comparés à l'assemblage de pas d'un programme qui fait quelque chose d'utile. Cette multitude devient nécessairement abstraite au-delà d'un certain point.

Il y a vingt ans, on enseignait la programmation au lycée avec le LSE dont la syntaxe était en français. Il n'a pas survécu probablement parce qu'il était dédié l'enseignement mais ne permettait pas vraiment de faire quoi que ce soit d'utile. Espérons que Scratch suive un destin différent. Et si on n'est pas convaincu, il est toujours possible de créer son propre langage A simple interpreter from scratch in Python, part 2, part 3, part 4.


<-- -->

Xavier Dupré