Programmer un jeu en Scratch pour apprendre

Informations

  • Auteur : Charles Agnès, Espé, Univ. Grenoble Alpes.
  • Date de création : Janvier 2017.
  • Date de modification : 12 mars 2020.
  • Statut du document : En travaux.
  • Résumé : Ce document présente des pistes pour l’enseignement de la programmation au collège. La programmation d’un jeu permet de mobiliser différentes notions en mathématiques et de développer des compétences comme la logique, l’abstraction et la modélisation tout en motivant les élèves.
  • Licence : Ce document est placé sous licence Creative Commons : BY-NC-SA.

Introduction

Dans la société actuelle, de plus en plus de métiers se sont créés qui nécessitent des connaissances et compétences en informatique ; certains nécessitent des connaissances, ou à tout le moins une culture, en programmation. De nombreuses écoles d’informatique se sont créées ces dernières années. Avec ce besoin grandissant, il a été jugé utile d’introduire de plus en plus tôt des cours de programmation dans les cursus universitaires et scolaires. En 2016-2017, la France devient le 13e pays d’Europe à intégrer des cours de programmation dans son enseignement scolaire. Ces derniers sont dorénavant obligatoires dans les Cycles 3 et 4 depuis la réforme du collège.

À cette fin, le langage de programmation Scratch, développé par le MIT (Massachusetts Institute of Technology, USA), a été choisi par l’Éducation nationale pour servir de support à l’apprentissage de la programmation aux Cycles 3 et 4. Il est utilisé dans deux matières au collège : en technologie et en mathématiques et il « permet de développer les stratégies de pensée informatique comme l’organisation logique, l’abstraction et la résolution de problèmes » (Romero, 2016). Ce document présente quelques pistes de programmation de jeux simples pour appréhender les notions élémentaires d’informatique (structures conditionnelles, boucles, etc.)

Ce que l’on sait

Programmer des jeux

Depuis le début des années 2000, une baisse des inscriptions des étudiants dans les matières scientifiques du supérieur a été observée. Plus particulièrement, plusieurs universités ont constaté un désintérêt des élèves en informatique [AVEZ-VOUS UNE REF?]. Et ce phénomène n’est pas spécifique à la France.

Pour remédier à cela, de nouveaux supports pédagogiques ont été créés pour aider les apprentissages dans cette matière (Muratet et al., 2008a). Il existe différentes manières d’enseigner la programmation en informatique : de manière procédurale et décontextualisée, ou créative, comme outil de modélisation de connaissances. La première méthode peut être enseignée mais elle présente des avantages limités. Elle peut en revanche servir d’introduction à la programmation créative (Romero, 2016). Le choix du thème du programme devient alors un critère important pour que l’élève reste motivé. Or il s’avère que les jeux vidéo font aujourd’hui partie intégrante de notre société. Même s’il existe une relation entre jouer et apprendre, cette relation reste ambiguë (Berry, 2011). En revanche, la programmation de jeux peut servir pour stimuler la motivation en rendant l’apprentissage plus ludique, et pourrait favoriser l’implication d’élèves en difficulté (Romero, 2016). Créer un jeu vidéo mobilise de nombreuses connaissances en mathématiques et en informatique :

  • les repères cartésiens et les transformations (rotations et translations) pour pouvoir se positionner et se diriger dans un plan.
  • les notions de durée et de temps pour les chronométrages.
  • la compréhension de structures conditionnelles « Si… Alors… ».
  • les variables, permettant d’introduire des notions de calcul littéral et d’algèbre.

Par la création de son jeu, l’élève a notamment besoin de ces connaissances [EST-CE DANS CE CAS VRAIMENT UTILE DE L’ENSEIGNER EN PRIMAIRE, OÙ CES NOTIONS, HORMIS LA DUREE, NE SONT PAS TRAITEES?], il va alors les mobiliser et les appliquer, mais avec un support différent et un objectif plus motivant. L’avantage de l’informatique est qu’elle permet à l’élève de passer du « faire » au « faire faire par un ordinateur ». Cela lui permet de modéliser des situations, une compétence au demeurant difficile à aborder par l’enseignant et par l’élève (Muratet et al., 2008a). L’élève se place alors en tant qu’observateur après les instructions qu’il a données dans son programme. Et par ses expérimentations, il va chercher à résoudre un problème général qu’il pourra dissocier en sous-problèmes. Une auto-évaluation est alors possible par ce biais.

Pour résoudre ces sous-problèmes, il est nécessaire dans un premier temps d’élaborer des programmes simples avec le logiciel. Afin de se concentrer sur la résolution de ce problème, il existe des logiciels (Scratch, Alice, Cleogo, voir Section Ressources) qui ont des bibliothèques de fonctions déjà existantes à base de blocs. Cela permet ainsi à l’apprenant de se détacher de la syntaxe (Muratet et al., 2008b).

Le besoin d’un encadrement

Parmi les connaissances mathématiques nécessaires pour la création de programmes (décrites ci-dessus), la notion de boucle est nouvelle pour les élèves et elle constitue un obstacle épistémologique (Muratet et al., 2011). C’est la raison pour laquelle la programmation du jeu doit être intégrée dans une séquence encadrée. L’élève seul risque plus de se décourager que d’être motivé par le jeu (Muratet et al., 2011). Le rôle de l’enseignant est alors primordial, à la fois en termes de conception didactique et d’encadrement.

Une structuration pédagogique des tâches de programmation est nécessaire. La création de sous-objectifs doit être faite tout en gardant le chaînage entre ces sous-objectifs (Temperman et al., 2014). Le professeur va pouvoir et devoir montrer (et parfois faire trouver) les différentes tâches aux élèves, et quel est le fil rouge du problème posé. Une structuration des tâches que l’élève doit accomplir est primordial et les différentes compétences mathématiques du programme à effectuer sont à identifier. Cela va permettre de mener à la conception des tâches spécifiques dans le programme.

Une pratique est alors recommandée (Muratet et al., 2011). Lors des différentes séances, la présence du professeur est importante pour ne pas laisser l’élève bloqué, seul devant l’ordinateur. En revanche, les élèves peuvent faire des actions inutiles, redondantes, voire incorrectes pour prendre en main le logiciel (Muratet et al., 2012). Il s’est avéré que faire des essais menant à des erreurs avec un ordinateur apportait beaucoup par rapport à une situation de manipulation classique [C’EST-À-DIRE? QUEL TYPE DE SEANCE?]. Cela peut notamment s’avérer efficace pour les élèves en difficulté.

Finalement, il a été montré que dans un environnement pédagogique structuré, la programmation conduit à un niveau d’apprentissage élevé. Il a été observé une amélioration de la maîtrise des compétences en mathématiques et elle permet même une meilleure gestion de l’hétérogénéité.

Ce que l’on peut faire

Avec la réforme du Collège en France en 2016-2017, la programmation est dorénavant enseignée avec le langage Scratch. Du fait de la présence de familles de blocs de programmation, ce langage a été en partie choisi pour que les élèves se détachent de la syntaxe et qu’ils se consacrent plus à la résolution de problèmes. Néanmoins, afin d’accompagner au mieux les élèves, le professeur a un rôle important. Il doit bien réfléchir à introduire cette nouvelle notion qui est souvent nouvelle pour les élèves. La séquence informatique doit être structurée et afin de les motiver, la programmation d’un jeu peut être une piste. Dans la suite de ces travaux, voici un choix de plan de séquence pris pour une classe de 4e, dans laquelle aucune notion préalable de programmation n’avait été enseignée.

Présentation des différents jeux

Lors d’une séance d’introduction à la programmation, différents types de jeux peuvent être présentés : la course de voitures, les lancers de dés ou des labyrinthes. Tous ces jeux font intervenir des compétences différentes en mathématiques. Pour cette classe de 4e, le jeu de labyrinthe a été choisi car il permet de pouvoir bien dissocier les différents sous-problèmes auxquels les élèves seront confrontés. Pendant cette séance introductive, un élève peut venir à l’ordinateur pour essayer le jeu devant l’ensemble de la classe, l’écran étant vidéo-projeté. Quelques minutes de discussion avec les élèves leur permet de prendre conscience des différents problèmes sur lesquels ils seront confrontés. Très rapidement, des parallèles sont faits avec les mathématiques, comme le positionnement et les déplacements dans le plan, mais aussi la notion de durée avec le chronomètre. Devoir programmer la rencontre avec un mur a permis de mobiliser des connaissances sur les structures conditionnelles, mais sans le vocabulaire informatique classiquement associé. En revanche, aucun élève n’a pu coder de boucles, qui sont pourtant nécessaires à la réalisation de ce programme. Elles seront alors introduites pendant les séances en salle informatique.

Organisation de la séquence

Lors d’une première séance, le logiciel Scratch est présenté : les élèves peuvent choisir leur lutin (personnage) et leur arrière-plan. En cherchant parmi les familles de blocs, les élèves et le professeur définissent ensemble comment déplacer le lutin. Dans un premier temps, cela peut être vers la droite en utilisant la touche « flèche droite » du clavier. Les élèves peuvent ensuite répéter cette consigne pour les 3 autres orientations. Nombreux sont ceux qui vont faire des erreurs. Le professeur doit ainsi être très présent lors de ces premiers instants pour ne pas qu’ils se découragent. Il doit leur demander de tester et de dire ce qu’ils observent afin de corriger par eux-mêmes leurs erreurs. À la fin de cette séance, l’utilisation du labyrinthe comme arrière-plan devient une première motivation pour les élèves à terminer leur premier sous-problème.

Pour compléter la prise en main du logiciel par les élèves et confirmer la compréhension du déplacement du lutin dans la scène, une série d’exercices sur papier et informatique peut être donnée lors d’une deuxième séance.

La notion de structure conditionnelle est étudiée par les élèves et le professeur lors de la troisième séance. Le professeur doit les guider par des discussions autour du logiciel : les élèves apprennent à chercher les blocs qui peuvent leur être utiles par la suite. Même si le fonctionnement de la structure conditionnelle est bien assimilé, des difficultés sont rencontrées pour passer de l’oral au langage informatique. Des exercices sont alors nécessaires pour les élèves afin d’arriver à un enrichissement de leur programme de labyrinthe par cette structure conditionnelle.

Lors des deux dernières séances, la notion de boucle peut être vue au travers d’exercices. Ces derniers peuvent être très proches de ce qui est nécessaire pour finir leur programme de jeu de labyrinthe. Effectivement, il est important de les laisser atteindre leur objectif et de leur laisser du temps pour modifier leur programme. Différentes pistes peuvent leur être offertes :

  • créer un nouveau labyrinthe (avec la fonction dessin de ce logiciel) ;
  • rajouter un deuxième lutin avec de nouvelles commandes pour effectuer des duels ;
  • rajouter un chronomètre pour comparer leurs vitesses.

Tout cela va alors permettre aux élèves d’échanger tant sur leurs résultats que sur leurs programmes.

Références