Contenu de la séance
Cette cinquième séance était associée à la CodeWeek, une semaine européenne consacrée à l’apprentissage du code.
Nous avons organisé la séance de cette façon :
- Activité « Carrés oranges et cercles violets » (45 minutes)
- Restitution de l’activité (15 minutes)
- Activité « Il vit ! » (45 minutes)
- Restitution de l’activité (15 minutes)
L’un des objectifs transversaux était d’insister sur la problématique de l’initialisation, pointée dans le billet de la séance précédente. Le second objectif était d’améliorer la qualité des temps de restitution, notamment en leur imposant de ne pas avoir accès au code lors de leur présentation.
Il n’y aura pas de CodCodCoding les 2 prochaines semaines, en raison des congés scolaires. Bonnes vacances les CodCodCodeurs !
Retours
La première activité « Carrés oranges et cercles violets » consiste à apporter une contrainte forte sur le choix des lutins. Ces derniers ne pourront être que des carrés oranges ou des cercles violets. Interdiction donc de choisir des lutins autres dans la bibliothèque de Scratch. L’objectif de cette contrainte est de leur éviter de perdre du temps sur la conception graphique de leur projet. Les enfants ont tendance à passer trop de temps à choisir soigneusement leurs images (et/ou en modifier les couleurs), et se retrouvent trop souvent, à la fin du temps imparti pour l’activité, à avoir un projet graphiquement éventuellement intéressant, mais très pauvre algorithmiquement parlant. La gestion du temps est aussi un facteur important pour l’activité, et c’est un point sur lequel il faudra également insister de façon plus générale pour les prochaines séances. Un exemple d’animation respectant cette contrainte est disponible ici. Les enfants doivent réussir à animer leurs formes géométriques, en utilisant les blocs liés aux déplacements et aux modifications graphiques. Par exemple, s’ils souhaitent avoir un carré rouge, ils ne pourront l’obtenir qu’en programmant. De la même façon, ils peuvent réussir à utiliser d’autres formes, mais uniquement en les faisant dessiner au stylo par leur programme, et donc sans les dessiner eux-mêmes en amont dans l’éditeur. Cette première activité a plutôt bien fonctionnée. Elle a permis également de revenir sur la notion-même de lutin, pour ceux qui ont encore un peu de mal. Par exemple, comprendre que si on dessine un rond violet au-dessus d’un carré orange dans un même lutin, on ne pourra jamais les séparer dans l’animation.
La seconde activité « Il vit ! » consiste à se concentrer sur la notion de costumes. Elle n’a pas encore été abordée durant les séances précédentes, et aucun enfant n’avait encore pris la peine de réellement s’y attaquer. La principale contrainte était donc d’utiliser un lutin, en animant son mouvement (une marche ou un vol) en utilisant les costumes qui lui sont associés par défaut (e.g. le chat, le perroquet, la chauve-souris, etc.). Cette activité permet en réalité de revenir sur plusieurs concepts très intéressants. En premier lieu celui des threads, puisqu’il faut réussir à programmer un déplacement du lutin, tout en le faisant changer de costume en permanence, pour réussir à le faire marcher ou voler. Certains enfants ont généralement essayés de réaliser ces deux actions en une seule séquence, ce qui n’est pas possible. Ensuite, les costumes sont une bonne façon d’aborder la notion de boucle. En effet, l’animation se fait avec une boucle infinie qui passe en permanence d’un costume à l’autre. Mais pourqu’on puisse voir les changements de costume, il faut dire au programme d’attendre quelques millisecondes entre chaque changement, ce à quoi les enfants ne pensent évidemment pas en premier lieu. Une fois qu’ils ont compris qu’il fallait laisser à l’humain le temps de voir le passage d’un costume à l’autre, ils font tous à peu près la même erreur (sauf s’ils ont utilisé l’ordre qui indique simplement de passer au costume suivant dans la liste) : se contenter d’ajouter un ordre d’attente entre les deux changements de costume dans la boucle. Ils se retrouvent donc avec un lutin qui clignote, puisqu’il n’y a pas d’attente entre les deux changements consécutifs au moment où la boucle repart pour un tour… ce qui est une excellente occasion pour vérifier qu’ils comprennent bien le principe d’une boucle.
Pour ces deux activités, une contrainte supplémentaire a été ajoutée. Celle de s’inquiéter de l’initialisation du programme. Le projet doit se lancer quand on clique sur le drapeau vert, et on doit avoir la possibilité de l’arrêter à n’importe quel instant. Quand on le relance, le programme doit refaire exactement la même chose, peu importe l’état et la position des lutins au moment où l’exécution précédente a été stoppée. Nous avons systématiquement vérifié le respect de cette contrainte, lors des restitutions, en demandant aux enfants de stopper et relancer leur projets à différents endroits. Puisqu’ils ont présenté leurs projets en plein écran sans accès au code, ils n’ont pas pu cliquer partout sur les blocs pour faire eux-même cette initialisation (que personne d’autre ne pourrait faire sans connaître par coeur la séquence). Environ la moitié des enfants ont réussi à respecter cette contrainte. Nous essaierons de leur imposer ce réflexe lors des prochaines activités, et leur donnant l’occasion de parcourir l’ensemble des modifications à réinitialiser, selon les projets (e.g. effets graphiques, rotations, placement, etc.).
Projets des enfants
Avec deux projets par enfant et une dizaine d’enfants à cette séance, je vous propose de concentrer l’analyse des projets sur 3 réalisations.
La Rockstar (Lucie)
Le projet « Il vit ! » est disponible en ligne.
Nous sommes dans la rue. Un chat passe, l’air assuré, et le maquillage soigné. Il s’agit probablement d’une star féline qui ne souhaite pas être reconnue, en témoigne ses grosses lunettes de soleil. Il descend la rue tranquillement, en marchant à pas constants. Une fois arrivé à destination, il s’arrête pour nous saluer.
Toutes les contraintes sont respectées. Nous avons un mouvement du chat, avec un changement de costume régulier, qui simule parfaitement une marche. Le déplacement est en accord avec les mouvements. Le programme peut être arrêté à n’importe quel moment, le chat repartira toujours du même endroit. Bravo Lucie !
Trafic urbain (Samuel)
Le projet « Il vit ! » est disponible en ligne.
Nous sommes également dans la rue, devant ce qui semble être un grand parking couvert. Des chat-passants marchent tranquillement sur le bord de la route, tandis qu’un gang de chat-frimeurs passe en voiture. La scène est infinie.
De nouveau, toutes les contraintes sont respectées. Nous avons les costumes qui changent pour les marcheurs, avec des déplacements en adéquation. Et peu importe le moment où on arrête le programme, il redémarrera toujours de la même façon. Le petit plus de Samuel pour ce projet, c’est la perfection du programme. Nous avons une vraie boucle de programme, avec des voitures et des marcheurs qui n’en finissent jamais de passer. Ils disparaissent naturellement lorsqu’ils sortent du cadre à droite, pour réapparaître sur le côté gauche (la scène est torique). La voiture roule plus rapidement que les marcheurs, et est bien positionnée sur la route. Dernier détail, la voiture customisée. En regardant attentivement, vous remarquerez le requin rouge qui décore la carrosserie. Samuel a eu la bonne idée de mélanger 2 lutins, pour se servir de l’un comme d’une décoration pour l’autre, ce qui est une utilisation très maligne de la bibliothèque de Scratch. Félicitations Samuel, il faut absolument continuer à faire des projets cohérents de bout-en-bout, de cette façon.
PsychéCity (Ahmed)
Le projet « Carrés oranges et cercles violets » est disponible en ligne.
Nous sommes face à un carré dans un cercle dans un carré, avec une alternance de orange et de violet. Logique, puisque c’est un projet « Carrés oranges et cercles violets ». Très rapidement les couleurs changent, , un carré commence à disparaître dangereusement, et le cercle entame une mitose infinie.
Les contraintes sont respectées, puisque nous n’avons que les formes et les couleurs imposées. Concernant la réinitialisation, nous revenons également toujours au même point de départ. La scène manque juste de déplacements, pour que l’animation soit réellement vivante. Nous reviendrons sur les commandes liées aux déplacements avec Ahmed. En attendant, bravo pour le projet ;).