SE CONNECTER
1,2,3... codez ! | Le site de la Fondation La main à la pâte
Module 123 Codez | Programmer | Informatics and Digital Creation

Différents types de boucles

1, 2, 3, codez ! - Activités cycle 2 - Séance 2b.6: Différents types de boucles

Résumé

Les élèves racontent la suite de l’aventure du héros : la pieuvre descend chercher le trésor au fond de la mer et remonte avec. Ils renforcent les notions introduites aux séances précédentes, notamment celle de boucle prédéfinie, et découvrent la notion de boucle infinie.

Notions

« Algorithmes  » :

  • Certaines boucles sont répétées indéfiniment.
  • Certaines boucles sont répétées jusqu’à  ce qu’une condition soit remplie.

Matériel

Pour la classe

  • Un ordinateur sur lequel le logiciel Scratch a été installé et un système de vidéo-projection.

Pour chaque binôme

  • Un ordinateur sur lequel l’application Scratch a été installée. L’enseignant aura préparé les postes de travail en copiant les fichiers Scratch (extension .sb2) mis à disposition ICI.

Pour chaque élève

Lexique

Boucle infinie

Durée :

1 heure + 30 min pour assurer la connexion entre les épisodes 2 et 3.

Situation déclenchante

L’enseignant rappelle aux élèves que le héros, incapable d’atteindre lui-même le trésor qu’il voit au fond de la mer, guide un sous-marin, représenté ici par une pieuvre. Celui-ci remonte avec le trésor. Aujourd’hui, les élèves vont programmer cet épisode de l’histoire du héros.

Recherche (idéalement en binômes)

L’enseignant donne aux élèves leur mission de programmation : dans le même programme que la dernière fois, ils doivent ajouter une troisième scène, qui apparait une fois que l’hippocampe est visible dans l’océan. Sur cette scène, ils doivent placer un animal « décoratif » de leur choix, qui ne participe pas directement à l’histoire, et dont les mouvements se répètent pendant toute la scène. Il leur montre le résultat attendu (fichier « II-2bis_mer.sb2 »), en signalant qu’il a utilisé de nouveaux types d’instructions de la catégorie « Contrôle » :

Il discute avec la classe de la nature de ces instructions : ce sont des boucles, mais on ne décide pas à l’avance combien de fois elles vont s’exécuter. Certaines de ces boucles ont un espace en forme d’hexagone qu’il faut remplir avec une instruction de cette même forme. Il y en a dans la catégorie « Capteurs » (et dans la catégorie « Opérateurs », mais ce n’est pas utile ici), par exemple :

On obtient des combinaisons comme celle ci-dessous, que l’enseignant peut interpréter avec la classe et tester sur le lutin chat :

Le lutin chat avance de 10, attend 1 seconde, et recommence jusqu’à ce qu’il touche le bord. S’il touche le bord dès le départ, il ne fait donc rien. S’il démarre près du bord, il fera peut-être un ou deux déplacements, s’il démarre loin du bord, il fera davantage de déplacements.

Ceci étant compris, l’enseignant conseille de commencer par inactiver les sous-programmes des deux premiers épisodes du récit (pour cela, il suffit de les déconnecter de l’événement déclencheur), pour se concentrer sur l’épisode en cours … il faut essayer d’obtenir un résultat semblable, mais pas nécessairement identique, à ce qui a été montré par l’enseignant.

Mise en commun

Lors de la mise en commun, l’enseignant revient sur les points qui ont pu poser problème. Il oriente la discussion sur les nouveaux types de boucles : la boucle « répéter indéfiniment » et la boucle « répéter jusqu’à … ». Si le temps le permet, il laisse aux élèves la possibilité d’améliorer leur première proposition à l’issue de la mise en commun. Sinon, les élèves pourront faire ces améliorations pendant la séance annexe de 30 minutes qui leur permettra aussi d’assurer la connexion entre les épisodes 2 et 3.
Le fichier « II_2bis_mer_correction_seance_6.sb2 » donne un exemple de ce que l’on peut obtenir, une fois les sous-programmes des deux premiers épisodes réactivés, et une fois la liaison entre épisodes du ponton et de la mer programmée.

Note pédagogique
Certains élèves vont utiliser des instructions que la classe n’a pas encore rencontrées. À ce stade où ils commencent à bien maîtriser le logiciel, il est important de laisser leur créativité s’exprimer. Mais pour faciliter leur découverte, l’enseignant doit leur conseiller de tester régulièrement leurs programmes : il est en effet beaucoup plus difficile de détecter un bug dans un programme que l’on a écrit d’un bloc sans tests, que dans un programme qui a été testé au fur et à mesure de son écriture.

Conclusion et trace écrite

La classe synthétise collectivement ce qui a été appris lors de cette séance :

  • Certaines boucles sont répétées indéfiniment.
  • Certaines boucles sont répétées jusqu’à ce qu’une condition soit vérifiée (par exemple, contact d’un lutin avec un autre lutin, contact d’un lutin avec une certaine couleur).

Les élèves notent cette conclusion dans leur cahier de sciences et complètent la fiche d’utilisation de Scratch en coloriant les instructions nouvellement rencontrées et en notant quelques mots-clés : boucle infinie, condition, contact avec un lutin, contact avec une couleur.