La programmation avec Scratch

Cet article est une traduction de cet article original.

Scratch  est une langue de programmation pour la conception de jeux à base de  sprites. Le jeu est construit à l’aide de blocs prédéfinis que le programmeur place à l’aide de la souris sur un plan de travail.

Exemple de morceau de programme

Conceptuellement, cela rappelle les Lego dans le sens où un nombre délimité de pièces de base permettent de construire une multitude d’objets, en fonction de l’imagination de chacun.

Nous avons décidé d’introduire Scratch à l’école d’une part pour donner aux enfants une introduction à la programmation, d’autre par pour créer un contexte pour un apprentissage pertinent des mathématiques et des sciences. La programmation est fondamentalement une question de modélisation et donc de compréhension des choses de ce monde et de leurs relations entre elles.

Et cela marche. D’une part l’attention des enfants est capturée de longues durées à la fois, et sur plusieurs jours. D’autre part ils acquièrent rapidement une intuition pour les concepts de programmation essentiels comme les boucles et les embranchements, voire même de programmation parallèle. Aussi, le simple fait de devoir dessiner ou modifier les sprites, trouver, ouvrir et fermer des fichiers peut également être très instructif.

La programmation apporte une multitude d’opportunités pour un apprentissage interdisciplinaire. Entre autre avons-nous abordé les vitesses et les accélérations, avons appris des notions en anglais, en danois et en français, car Scratch permet de programmer dans plusieurs langues différentes.

La communauté autour Scratch est structurée de sorte à favoriser le partage des oeuvres. Les possibilités pour se laisser inspirer par le travail des autres sont multiples – il y a même moyen de “remixer” des programmes. Ainsi, les enfants apprennent cette forme moderne et pertinente d’apprentissage.

Les enfants ont jusqu’à présent développé deux programmes, Elverpigen og Jeu version 1.

Scratch présente un certain nombre de limitations, desquelles certaines sont des erreurs et/ou des lacunes:

Il y a entre autre des erreurs dans le logiciel de développement; le programme développé ne se comporte pas toujours de façon identique sur le PC et en ligne.

Aussi, il n’est pas toujours évident de debug’er le programme, les outils étant malgré tout assez rudimentaires. Au final, il n’est donc pas évident pour les enfants de travailler de façon autonome, nécessitant une participation conséquente d’un adulte qualifié.

D’un point de vue plus conceptuel il est un peu dommage que la notion de fonction ne soit pas présente dans le langage. On est donc parfois contraint à copier+coller du code, au risque d’introduire de mauvaises habitudes précoces.

Cela dit, les concepteurs du langage on été contraints à faire des choix, notamment la prioritisation de la simplicité. Si l’on désire une version plus complète et avancée, on peut toujours basculer sur Build Your Own Blocks (BYOB). Cependant, BYOB est moins facile à installer et ne bénéficie pas d’une communauté aussi importante que Scratch.