Projet Scratch : la checklist de vérification avant le lancement
Un projet Scratch peut sembler correct à l’écran et pourtant produire un résultat faux dès que tu changes une donnée, que tu relances le programme ou que tu parcours une liste plus longue.

Projet Scratch: la checklist de vérification avant le lancement
En algorithmique au collège, l’erreur ne vient pas toujours d’un bloc mal placé: elle vient souvent d’une variable qui conserve une ancienne valeur, d’une boucle répétée trop souvent ou d’une condition qui ne teste pas exactement ce que tu crois.
Avant de cliquer sur le drapeau vert, tu dois donc relire ton projet Scratch comme un correcteur relira ta copie: en suivant les étapes dans l’ordre, en vérifiant les valeurs et en observant le résultat obtenu. Cette méthode ne sert pas seulement à éviter un bug. Elle permet aussi de justifier tes choix, de gagner les points liés à la démarche et de montrer que ton programme répond bien à la consigne.
Un projet Scratch bien vérifié repose sur trois moments: l’initialisation, le traitement et la sortie. Si l’un de ces moments est absent ou mal construit, le programme peut fonctionner une fois par hasard, mais il ne sera pas fiable.
1. Relire l’initialisation: le socle de ton projet Scratch
L’initialisation correspond à ce que ton programme prépare avant de commencer le traitement. Tu places les données dans leur état de départ: position du lutin, direction, score, compteur, liste ou variable de travail.
C’est la première étape à contrôler, car une mauvaise valeur initiale se propage ensuite dans tout l’algorithme. Tu peux avoir une boucle parfaitement construite: si le compteur commence à 4 au lieu de 0, le résultat restera décalé.
Dans Scratch, commence par repérer le script qui se déclenche avec le drapeau vert. Observe ensuite les blocs placés immédiatement après l’événement. Pose-toi des questions très concrètes:
- La variable est-elle remise à la valeur prévue par l’énoncé?
- Le score est-il remis à zéro au début d’une nouvelle partie?
- Le compteur commence-t-il à 0 ou à 1 selon ce que le programme doit compter?
- Le lutin est-il replacé au bon endroit?
- Sa direction est-elle correcte avant le premier déplacement?
- Une liste est-elle vidée avant d’accueillir de nouvelles données?
- Le programme utilise-t-il encore une ancienne valeur issue d’un lancement précédent?
Remettre les variables dans un état connu
Une variable mémorise une valeur. Elle ne l’oublie pas automatiquement lorsque tu arrêtes ou relances ton projet. Si ton script augmente un score à chaque clic, mais ne contient pas le bloc qui remet ce score à zéro, le résultat du deuxième lancement dépendra du premier.
Pour une variable appelée score, la logique attendue peut être:
1. Le drapeau vert est cliqué.
2. score est mis à 0.
3. Le joueur réalise une action.
4. score augmente si la condition est satisfaite.
5. Le résultat final est affiché.
Ne te contente pas d’observer la valeur affichée à la fin. Observe aussi sa valeur juste après l’initialisation. Dans un exercice évalué, cette vérification visuelle est rapide et permet de repérer une erreur qui coûterait plusieurs points de fonctionnement.
Le même raisonnement s’applique à un compteur. Si tu veux compter le nombre de réponses correctes, le compteur doit être remis à zéro avant la première question. Si tu veux parcourir les éléments d’une liste, le numéro de l’élément courant doit correspondre à la convention choisie dans ton algorithme.
Une variable doit toujours avoir une valeur de départ lisible. Si tu ne sais pas où elle est initialisée, tu ne peux pas prouver que ton résultat est fiable.
Vérifier la position et la direction du lutin
Dans un projet Scratch qui trace une figure, la position initiale du lutin est aussi importante que la valeur d’une variable. Un déplacement correct, lancé depuis un mauvais point, donnera une figure décalée. Une rotation effectuée dans la mauvaise direction modifiera toute la construction.
Avant le lancement, observe:
- les coordonnées de départ;
- la direction du lutin;
- la présence éventuelle d’un bloc qui efface le dessin précédent;
- l’ordre entre l’effacement, le déplacement et le tracé;
- la position finale attendue.
Pour une figure géométrique, ne regarde pas seulement si le lutin bouge. Suis son trajet. Trace mentalement le premier segment, repère le sommet atteint, puis vérifie la rotation avant le segment suivant. Cette lecture visuelle est particulièrement utile pour les carrés, les rectangles et les polygones réguliers.
Si le programme doit tracer un carré, quatre déplacements de même longueur sont nécessaires, mais cela ne suffit pas. Il faut aussi quatre rotations identiques correspondant aux angles extérieurs de la figure. Si tu obtiens une forme ouverte, une spirale ou un tracé qui revient mal au point de départ, l’erreur se trouve souvent dans la répétition ou dans l’angle de rotation.
2. Contrôler la boucle: combien de fois le programme agit-il?
Une boucle indique qu’une série de blocs doit être exécutée plusieurs fois. Elle permet d’éviter de répéter manuellement les mêmes instructions, mais elle introduit une question essentielle: combien de répétitions sont réellement nécessaires?
Dans Scratch, les blocs de la catégorie Contrôle regroupent notamment les boucles et les structures conditionnelles. Pour vérifier ton algorithme, ne lis pas une boucle comme une simple boîte. Calcule ce qu’elle fait à chaque passage, puis le nombre total de passages.
Distinguer les trois grandes logiques de répétition
Une boucle répéter possède un nombre fixé à l’avance. Elle convient lorsque tu connais le nombre d’actions à effectuer. Pour tracer les côtés d’un carré, tu peux répéter quatre fois la séquence déplacement-rotation. Le nombre de côtés est connu: la boucle est donc adaptée.
Une boucle répéter jusqu’à dépend d’une condition de sortie. Elle convient lorsque le programme doit continuer jusqu’à ce qu’un événement ou une valeur précise soit atteint. Tu dois alors vérifier que la condition peut effectivement devenir vraie. Si elle reste fausse dans toutes les situations, le programme ne sortira pas de la boucle.
Une boucle répéter indéfiniment continue tant que le script est actif. Elle peut convenir à un jeu ou à une animation qui doit surveiller en permanence les commandes du joueur. Elle exige cependant une organisation claire: les tests placés à l’intérieur doivent avoir un effet visible, et les événements qui arrêtent ou modifient le comportement doivent être prévus.
Pour chaque boucle, écris au brouillon une phrase complète:
- Le programme répète cette action quatre fois.
- Le programme continue jusqu’à ce que la réponse soit correcte.
- Le programme surveille la touche tant que le projet est lancé.
Si tu n’arrives pas à formuler cette phrase, la logique de la boucle n’est probablement pas encore maîtrisée.
Repérer les erreurs de comptage
Les erreurs de boucle sont fréquentes parce qu’un programme peut produire un résultat presque juste. Un polygone peut avoir un côté en trop. Une liste peut être parcourue jusqu’à un élément inexistant. Un score peut augmenter une fois de trop.
Pour contrôler une boucle, note quatre informations:
1. La valeur de départ du compteur.
2. La valeur du compteur après chaque passage.
3. La condition qui autorise un nouveau passage.
4. La valeur au moment de la sortie.
Prenons une liste de cinq éléments. Si ton programme utilise une variable rang et commence à rang = 1, il doit traiter les éléments 1, 2, 3, 4 et 5. Si la boucle augmente rang avant de lire l’élément, le premier élément risque d’être oublié. Si elle augmente rang après la lecture, le dernier élément doit être contrôlé avec soin.
Lorsque le nombre d’éléments peut changer, évite de remplacer la longueur réelle de la liste par un nombre écrit en dur. Le bloc longueur de [liste] permet d’adapter le nombre de passages aux données présentes. Une liste de trois éléments et une liste de dix éléments peuvent alors être traitées par le même algorithme.
Examiner l’ordre des blocs
Deux programmes peuvent contenir les mêmes blocs et produire des résultats différents parce que l’ordre n’est pas le même. Dans une boucle, la position de chaque instruction compte.
Imagine une boucle qui doit:
1. lire une donnée;
2. vérifier une condition;
3. modifier un compteur;
4. passer à la donnée suivante.
Si tu augmentes le compteur avant de lire la donnée, tu ne travailles plus sur le même élément. Si tu modifies le score avant de vérifier la réponse, tu risques de compter une réponse qui ne devrait pas l’être.
Pour te relire, suis le script avec un doigt ou un crayon. À chaque bloc, dis ce que le lutin vient de faire et ce qu’il va faire ensuite. Cette technique paraît lente, mais elle est plus rapide que de relancer un programme sans comprendre pourquoi il se trompe.
3. Examiner les conditions: le test doit correspondre à la consigne
Une condition permet au programme de choisir une action. Dans Scratch, les structures Si... alors et Si... alors... sinon exécutent certains blocs lorsque le test logique est vérifié.
La difficulté ne consiste pas seulement à placer une condition. Tu dois traduire correctement la consigne en test. Les mots de l’énoncé ont une conséquence directe sur le bloc choisi:
supérieur àn’a pas le même sens quesupérieur ou égal à;inférieur àn’a pas le même sens queinférieur ou égal à;égal àne signifie pasdifférent de;etexige que deux conditions soient vraies;ouautorise qu’une seule des deux conditions soit vraie.
Traduire la consigne avant de programmer
Ne commence pas par chercher un bloc au hasard. Reformule d’abord la règle en français.
Par exemple:
- Si le score est au moins égal à 10, alors le joueur gagne.
- Sinon, le joueur continue.
- Si la réponse est égale à la solution, alors le compteur augmente.
- Si le nombre est inférieur à 0 ou supérieur à 10, alors la valeur est refusée.
Cette reformulation te donne le test logique. Elle sert également de justification dans ta réponse écrite. Le correcteur cherchera à lire une correspondance nette entre la consigne, la condition et l’action exécutée.
Vérifier les deux branches
Une structure Si... alors... sinon contient deux chemins. Tu dois tester les deux, même si le premier semble évident.
Pour une condition qui compare une réponse à une solution, essaie:
- une valeur qui doit entrer dans la branche
alors; - une valeur qui doit entrer dans la branche
sinon; - une valeur proche de la limite;
- éventuellement une valeur exactement égale à la limite.
Les limites sont les points où les erreurs se cachent le plus souvent. Si la consigne dit que le joueur réussit à partir de 10 points, teste précisément 9, 10 et 11. Tu verras immédiatement si ton programme utilise le bon opérateur.
Éviter une condition qui ne peut jamais être vraie
Une condition peut être syntaxiquement bien construite et pourtant impossible à satisfaire. C’est le cas lorsqu’elle demande simultanément qu’un même nombre soit inférieur à 3 et supérieur à 8.
Pour repérer ce problème, écris les valeurs qui pourraient satisfaire chaque partie séparément. Si aucune valeur ne se trouve dans les deux ensembles, le test ne déclenchera jamais l’action prévue.
À l’inverse, une condition trop large peut accepter des valeurs qui devraient être refusées. Ne te limite donc pas au cas attendu par l’exercice. Teste aussi un cas incorrect, un cas limite et un cas inattendu mais possible.
Un test logique ne se juge pas à son apparence. Il se juge aux valeurs qu’il accepte, à celles qu’il refuse et aux actions déclenchées dans chaque cas.
4. Vérifier les variables et les listes sans perdre le fil des données
Les variables stockent une information unique. Les listes stockent plusieurs éléments. Dans un projet Scratch, elles servent souvent à mémoriser des réponses, des scores, des coordonnées ou une série de valeurs à traiter.
La difficulté apparaît lorsque la donnée change au cours du programme. Pour éviter de te perdre, distingue toujours:
- la valeur initiale;
- la valeur modifiée;
- le moment de la modification;
- l’endroit où la valeur est réutilisée.
Une variable, une fonction clairement identifiée
Une variable appelée nombre peut désigner une donnée saisie par l’utilisateur, un compteur ou un résultat intermédiaire. Le programme fonctionnera peut-être, mais sa lecture deviendra confuse. Dans un exercice évalué, cette confusion peut rendre ta justification imprécise.
Choisis des noms qui indiquent le rôle de la donnée: compteur, score, total, reponse, rang ou longueur. Tu n’as pas besoin d’un nom compliqué. Tu dois surtout pouvoir expliquer la variable en une phrase.
Pour chaque variable, complète mentalement cette phrase: « Cette variable contient… ». Si tu ne sais pas la terminer, reprends la construction de ton algorithme.
Contrôler l’ajout et la suppression dans une liste
Une liste doit être préparée comme une variable. Si ton programme doit produire une nouvelle série de résultats à chaque lancement, efface les anciennes données au début. Sinon, le nouveau résultat sera mélangé avec le précédent.
Vérifie ensuite:
- si les éléments sont ajoutés dans le bon ordre;
- si l’ajout se fait avant ou après le calcul;
- si le programme parcourt toute la liste;
- si la boucle utilise la longueur réelle de la liste;
- si un élément est supprimé sans décaler le parcours.
Une erreur classique consiste à supprimer un élément pendant que le programme avance dans la liste. Après la suppression, les éléments suivants changent de rang. Si le compteur augmente malgré tout, un élément peut être sauté. Pour un débogage efficace, affiche temporairement le rang courant et la valeur lue. Tu verras le parcours au lieu de le deviner.
Ne pas corriger le symptôme à la place de la cause
Si un résultat est faux, ajouter un bloc qui modifie directement la valeur finale peut masquer le problème sans le résoudre. Par exemple, si un total est trop grand, il ne faut pas simplement le diminuer à la fin. Il faut observer chaque ajout qui construit ce total.
Le bon réflexe est de placer des affichages temporaires ou d’observer les variables pendant l’exécution. Tu peux ensuite retirer ces éléments lorsque la logique est validée. Le débogage n’est pas une décoration du projet: c’est une méthode pour isoler l’étape où le résultat cesse de correspondre à la consigne.
5. Examiner la phase de sortie: le résultat doit être lisible et vérifiable
La sortie est le résultat produit par l’algorithme. Dans Scratch, elle peut prendre la forme d’un message, d’une valeur affichée, d’un dessin, d’un changement d’apparence ou d’un comportement du lutin.
Un programme n’est pas terminé parce qu’il exécute ses blocs sans signaler d’erreur. Tu dois vérifier que le résultat final est compréhensible et qu’il répond précisément à la question posée.
Distinguer le résultat du message
Un message comme « Bravo » ne prouve pas à lui seul que le calcul est correct. Si le projet doit donner une longueur, un score ou le nombre d’éléments traités, cette valeur doit apparaître clairement.
Observe donc:
- ce qui est affiché;
- le moment où c’est affiché;
- l’unité éventuelle;
- la valeur utilisée pour construire le message;
- la différence entre un résultat intermédiaire et le résultat final.
Si le projet pose plusieurs questions, vérifie que le programme n’affiche pas le résultat de la première question à la place de celui de la dernière. Si le projet trace une figure, vérifie que le tracé reste visible après les déplacements et que le programme ne l’efface pas juste avant la présentation.
Comparer le résultat avec un calcul indépendant
La vérification visuelle est utile, mais elle ne suffit pas toujours. Lorsque c’est possible, calcule le résultat à part sur ton brouillon. Tu peux utiliser un petit tableau de suivi:
| Étape | Valeur avant l’action | Action effectuée | Valeur après l’action |
|---|---|---|---|
| Départ | 0 | Initialisation | 0 |
| 1 | 0 | Ajouter la première donnée | valeur obtenue |
| 2 | valeur obtenue | Ajouter la deuxième donnée | nouveau total |
| Fin | dernier total | Affichage | résultat final |
Ce tableau est particulièrement efficace pour un total, un compteur ou une moyenne. Il permet de vérifier que chaque donnée est utilisée une seule fois et dans le bon ordre.
Pour une figure, fais plutôt un contrôle géométrique: nombre de côtés, longueur répétée, angle de rotation, point de départ et fermeture du tracé. Ne te fie pas uniquement à l’écran, car un zoom ou une position peuvent donner l’impression qu’une figure est correcte alors qu’elle ne respecte pas les mesures demandées.
6. Déboguer avec une méthode de brouillon efficace
Le débogage d’un programme bloc collège ne consiste pas à déplacer des blocs au hasard jusqu’à obtenir un résultat acceptable. Tu dois formuler une hypothèse, modifier un seul élément, relancer et observer l’effet.
Voici une méthode en cinq passages.
1. Reproduis l’erreur. Relance le projet avec les mêmes données et observe exactement ce qui ne va pas. Note le résultat obtenu, sans le corriger immédiatement.
2. Localise l’étape douteuse. Cherche le premier moment où le comportement réel s’écarte du comportement attendu: initialisation, boucle, condition, calcul ou affichage.
3. Suit la donnée. Observe la variable ou la liste concernée avant et après le bloc qui pourrait poser problème.
4. Modifie une seule chose. Si tu changes trois blocs à la fois, tu ne sauras pas lequel a corrigé ou aggravé le problème.
5. Teste plusieurs cas. Un programme réparé pour une seule valeur n’est pas encore validé.
Cette méthode te protège contre une erreur fréquente: confondre un résultat correct avec un algorithme correct. Un programme peut donner la bonne réponse pour une donnée particulière malgré une boucle trop longue ou une condition mal écrite. Change la valeur d’entrée et regarde si la logique tient toujours.
Organiser la vérification de ton projet Scratch
Avant de présenter ton travail, tu peux effectuer les contrôles dans cet ordre:
1. Lancement: le bon script démarre-t-il avec le drapeau vert ou l’événement prévu?
2. Initialisation: toutes les variables, listes, positions et directions sont-elles remises à zéro ou à la valeur attendue?
3. Traitement: les blocs sont-ils placés dans l’ordre logique?
4. Boucles: le nombre de répétitions ou la condition de sortie correspondent-ils à la consigne?
5. Conditions: les cas positifs, négatifs et limites sont-ils traités?
6. Données: chaque élément est-il lu, modifié ou ajouté au bon moment?
7. Sortie: le résultat final est-il affiché ou produit sans ambiguïté?
8. Nouvelle exécution: le projet donne-t-il le même résultat lorsqu’il est relancé avec les mêmes données?
9. Cas différent: le programme reste-t-il correct lorsque tu modifies les valeurs d’entrée?
Cette liste n’est pas une formalité à cocher rapidement. Elle correspond aux trois phases de l’algorithme et aux erreurs qui reviennent le plus souvent dans les activités Scratch au collège.
7. Préparer la présentation et la justification
Un projet Scratch peut être fonctionnel et perdre des points si tu ne sais pas expliquer son fonctionnement. La rédaction doit suivre le programme. Tu dois nommer la variable, préciser la condition, indiquer le nombre de répétitions et relier chaque choix à la consigne.
Évite les phrases vagues comme « le programme fait le calcul » ou « la boucle sert à répéter ». Écris plutôt:
- La variable
compteurest initialisée à 0 afin de compter les éléments depuis le début du parcours. - La boucle se répète autant de fois que la liste contient d’éléments.
- La condition vérifie si la réponse saisie est égale à la solution attendue.
- Lorsque le test est vrai, le score augmente de 1.
- Le résultat est affiché après la fin du traitement.
Ces phrases sont courtes, mais elles prouvent que tu comprends la logique algorithmique. Le correcteur cherchera à lire une justification précise, pas une description générale du projet.
Si tu présentes une figure tracée par Scratch, explique aussi le lien entre la boucle et la construction géométrique: nombre de répétitions, longueur du déplacement, angle de rotation et retour éventuel au point de départ. Tu dois prouver que le programme construit la figure pour une raison identifiable, et non qu’il produit simplement une forme qui semble correcte à l’écran.
Le dernier point gagné se trouve souvent dans la phrase qui relie le bloc à la consigne: nomme l’action, indique la valeur et justifie l’ordre.
Conclusion: lancer seulement quand tu peux prévoir le résultat
La meilleure vérification d’un projet Scratch ne consiste pas à cliquer plusieurs fois sur le drapeau vert. Elle consiste à pouvoir prévoir ce que le programme va faire avant son exécution.
Tu dois savoir quelles valeurs sont initialisées, combien de fois la boucle s’exécute, dans quels cas la condition est vraie, comment les listes évoluent et quel résultat sera affiché. Si le programme produit autre chose, tu as immédiatement une piste pour localiser l’erreur.
Retient l’ordre: préparer les données, traiter les informations, produire une sortie lisible. Puis observe le projet avec une exigence simple: chaque bloc doit avoir une fonction identifiable et chaque résultat doit pouvoir être justifié. C’est cette rigueur qui transforme une activité Scratch en véritable travail d’algorithmique — et qui fait la différence entre un programme qui fonctionne par hasard et un projet que tu peux défendre sans hésiter.