En algorithmique et Scratch en 4ème, savoir assembler des blocs ne suffit plus. Il faut prévoir ce que fait le programme, expliquer pourquoi une condition est vraie ou fausse et corriger une procédure qui produit parfois un résultat inattendu.
La meilleure méthode consiste à suivre l'état du programme instruction après instruction. Une variable possède une valeur à un instant donné ; une condition choisit une branche ; une boucle répète un traitement. Cette lecture rend le code aussi vérifiable qu'un calcul écrit.
Distinguer algorithme, programme et exécution
Trois niveaux
Un algorithme est une suite finie d'instructions destinée à résoudre un problème. Un programme traduit cet algorithme dans un langage. Une exécution est un passage concret du programme avec des données précises.

Le même programme peut donc produire des chemins différents selon l'entrée. Pour savoir s'il est juste, on ne le teste pas seulement avec une valeur facile : on choisit des valeurs qui activent chacune des branches.
Créer, initialiser et modifier une variable
Une variable associe un nom à une valeur modifiable. L'instruction « mettre score à 0 » remplace la valeur précédente ; « ajouter 3 à score » conserve la valeur et lui ajoute 3.
| Instruction | Valeur de après exécution si |
|---|---|
| mettre à 12 | 12 |
| ajouter 4 à | 9 |
| mettre à | 9 |
Erreur fréquente : le signe égal d'une affectation ne décrit pas une égalité valable avant et après. « mettre x à x + 1 » signifie calculer l'ancienne valeur plus un, puis remplacer x.
Traduire une condition logique
Condition
Une condition est une proposition dont la valeur est vraie ou fausse. Le bloc « si... alors... sinon... » exécute exactement une des deux branches.
Pour tester si un entier est pair, on peut vérifier si le reste de sa division par 2 vaut 0. Pour déterminer si une note atteint 10, on teste . Les opérateurs « et », « ou » et « non » permettent de combiner ou de renverser les tests.
| Condition | Sens |
|---|---|
| et | appartient à l'intervalle ouvert entre 0 et 5 |
| ou | est à l'extérieur de cet intervalle |
| non | est différent de 3 |
Choisir entre répéter un nombre de fois et répéter jusqu’à
Deux types de boucles
La boucle « répéter fois » convient lorsque le nombre d'itérations est connu. La boucle « répéter jusqu'à condition » convient lorsque l'arrêt dépend de l'évolution des données.
Pour tracer un carré, quatre répétitions suffisent. Pour soustraire 7 tant qu'un nombre reste supérieur ou égal à 7, le nombre d'itérations dépend de la valeur initiale. Dans ce second cas, la variable qui contrôle l'arrêt doit être modifiée dans la boucle.
Erreur fréquente : si la condition d'arrêt ne peut jamais devenir vraie, la boucle ne termine pas. Avant l'exécution, identifier l'instruction qui rapproche effectivement de l'arrêt.
Construire une table de trace
Une table de trace consigne les valeurs après chaque instruction. Considérons un programme qui choisit , met à , puis remplace par (y-x).
| Étape | ||
|---|---|---|
| départ | 4 | non défini |
| 4 | 11 | |
| 7 | 11 |
Cette trace relie Scratch au calcul littéral : une expression utilise toujours les valeurs disponibles au moment où elle est évaluée.
Déboguer par hypothèse et test ciblé
- Décrire précisément le résultat attendu.
- Choisir une entrée minimale qui reproduit l'erreur.
- Suivre les variables jusqu'à la première divergence.
- Formuler une cause avant de modifier un bloc.
- Retester le cas fautif, puis d'autres cas, notamment les limites.
Si un programme classe une note de 10 comme « insuffisante », la question n'est pas « quel bloc changer au hasard ? », mais « la frontière doit-elle utiliser ou ? ». Une correction ciblée est plus fiable qu'une succession d'essais.
Astuce : faire dire temporairement les valeurs importantes par le lutin. Cette instrumentation simple montre le contenu réel des variables sans modifier l'algorithme.
Modéliser un programme de calcul
Un programme de calcul demande un nombre, le transforme puis affiche le résultat. Par exemple : choisir , ajouter 3, multiplier par 2 et soustraire 6 donne :
Cette égalité explique pourquoi le programme double toujours le nombre choisi. Elle peut ensuite être vérifiée avec plusieurs entrées. Les tableaux et graphiques du cours sur les fonctions en 4ème permettent de représenter le lien entre entrée et sortie.
Le cours d'algorithmique et Scratch en 5ème fournit les bases de séquence et de boucle ; la 4ème ajoute le raisonnement sur les branches et le diagnostic.
Valider un programme avec des cas bien choisis
Tester seulement une valeur ne prouve rien. Pour une condition , il faut au minimum tester une valeur négative, zéro et une valeur positive. Pour une boucle, on teste aussi le cas où elle ne s'exécute aucune fois et le cas où elle s'exécute plusieurs fois.
| Type de cas | But |
|---|---|
| cas courant | vérifier le fonctionnement normal |
| valeur frontière | contrôler , , ou |
| valeur extrême | déceler une répétition trop longue ou une hypothèse cachée |
| chaque branche | s'assurer que tout le code est exercé |
Écrire une condition qui couvre tous les cas
Pour classer une température, on peut tester d'abord , puis , puis traiter le reste. L'ordre compte : si l'on teste d'abord , les températures négatives entreront déjà dans cette branche et le test suivant ne sera jamais atteint.
Des intervalles bien construits ne doivent laisser ni trou ni chevauchement involontaire. Les valeurs frontières 0 et 25 sont donc les meilleurs tests pour décider où placer les signes stricts ou larges.
Erreur fréquente : deux blocs « si » indépendants peuvent s'exécuter tous les deux. Un bloc « si, sinon si, sinon » choisit une seule branche.
Déboguer un compteur dans une boucle
Un programme doit afficher les cinq premiers multiples de 4. Il met à 1, puis répète cinq fois : afficher . Si n'est jamais augmenté, il affiche cinq fois 4. La boucle fonctionne, mais son état ne progresse pas.
Il faut ajouter « ajouter 1 à n » après l'affichage. La trace devient 4, 8, 12, 16, 20. Placer l'incrément avant l'affichage produirait 8, 12, 16, 20, 24 : le nombre d'itérations serait correct, mais le décalage d'une position signalerait une erreur d'ordre. La table de trace identifie précisément la première étape divergente.
| Itération | n avant affichage | valeur affichée |
|---|---|---|
| 1 | 1 | 4 |
| 2 | 2 | 8 |
| 5 | 5 | 20 |
Pour rendre le programme réutilisable, on peut demander le multiple recherché et le nombre de valeurs à afficher. Les constantes 4 et 5 deviennent alors des variables d'entrée. Le même algorithme produit une table de 7 ou les dix premiers multiples de 3, sans dupliquer les blocs. Généraliser vient après avoir validé le cas simple.
Algorithmique et Scratch 4ème : l’essentiel à retenir
En algorithmique et Scratch en 4ème, une variable se suit dans le temps, une condition sélectionne une branche et une boucle doit progresser vers son arrêt. La table de trace transforme un programme opaque en suite d'étapes contrôlables.
Le programme officiel de mathématiques du cycle 4 place la programmation au service de la résolution de problèmes : prévoir, tester et expliquer sont aussi essentiels que faire fonctionner les blocs.