🐱 Programmation Scratch — Cours Complet

Apprendre Scratch au collège — Tous les blocs, les structures et les exercices type brevet corrigés

9
Catégories de blocs
5e → 3e
Niveaux
⭐⭐⭐
Fréquence brevet
Gratuit
📌 Scratch est le langage de programmation visuel utilisé au collège de la 5e à la 3e. Il est au programme de mathématiques et de technologie, et tombe très régulièrement au brevet — dans l'épreuve de maths et/ou dans l'épreuve de sciences. Au lieu d'écrire du texte, on assemble des blocs colorés qui s'emboîtent comme des pièces de puzzle. Chaque couleur correspond à une catégorie (mouvement, contrôle, opérateurs…). Ce cours couvre tous les blocs essentiels, les trois structures fondamentales (séquence, condition, boucle) et propose des exercices corrigés type brevet.

🖥️ 1. L'Interface de Scratch

Scratch est accessible gratuitement sur scratch.mit.edu. L'interface se divise en trois zones principales :

ZonePositionRôle
Palette de blocsGaucheTous les blocs disponibles, classés par catégorie (couleur). On les glisse vers la zone de script.
Zone de scriptCentreL'espace de travail où l'on assemble les blocs pour créer le programme. Les blocs s'emboîtent verticalement.
ScèneDroiteL'espace visuel où le résultat du programme s'affiche. Le lutin (sprite) se déplace ici. Dimensions : 480 × 360 pixels. Le centre de la scène est le point (0, 0).
💡 Le système de coordonnées — La scène Scratch utilise un repère avec le point (0 , 0) au centre. L'axe x va de −240 (gauche) à +240 (droite). L'axe y va de −180 (bas) à +180 (haut). Le lutin démarre par défaut en (0, 0), orienté vers la droite (direction 90°). Les directions : 0° = haut, 90° = droite, 180° = bas, −90° (ou 270°) = gauche.

🎨 2. Les Catégories de Blocs Scratch

Scratch organise ses blocs en 9 catégories identifiées par des couleurs. Voici un tableau complet avec les blocs les plus importants de chaque catégorie :

CatégorieCouleurRôleBlocs essentiels
MouvementBleuDéplacer et orienter le lutinavancer de __ pas, tourner ↻ de __ degrés, aller à x: __ y: __, glisser en __ secondes à x: __ y: __, s'orienter à __, rebondir si le bord est atteint
ApparenceVioletModifier l'aspect du lutindire __ pendant __ secondes, penser __, basculer sur le costume __, costume suivant, montrer, cacher, mettre la taille à __ %
SonRoseJouer des sonsjouer le son __, jouer le son __ jusqu'au bout, mettre le volume à __ %
ÉvénementsJauneDémarrer les scriptsquand ⚑ est cliqué, quand la touche __ est pressée, quand ce sprite est cliqué, quand je reçois __
ContrôleOrangeStructures : boucles, conditions, attentesattendre __ secondes, répéter __ fois, répéter indéfiniment, si __ alors, si __ alors / sinon, arrêter tout
CapteursCyanDétecter des événementstouche __ pressée ?, souris pressée ?, couleur __ touchée ?, __ touché ?, distance de __, demander __ et attendre, réponse, chronomètre
OpérateursVertCalculs et logique__ + __, __ − __, __ × __, __ / __, nombre aléatoire entre __ et __, __ < __, __ = __, __ > __, __ et __, __ ou __, non __, reste de __ / __ (modulo)
VariablesOrange foncéStocker et modifier des valeursmettre __ à __, ajouter __ à __, montrer la variable __, cacher la variable __
StyloTurquoiseDessiner sur la scèneeffacer tout, stylo en position d'écriture, relever le stylo, mettre la couleur du stylo à __, mettre la taille du stylo à __
💡 Types de blocs — Il existe 4 formes de blocs : les blocs chapeau (arrondis en haut, déclencheurs comme quand ⚑ est cliqué), les blocs empilables (rectangulaires, s'empilent les uns sur les autres), les blocs reporters (arrondis, retournent une valeur comme position en x), et les blocs booléens (hexagonaux, retournent vrai ou faux comme touche espace pressée ?). Au brevet, on vous demande souvent d'identifier le type de bloc et son rôle.

🏗️ 3. Les 3 Structures Fondamentales

Tout programme informatique, qu'il soit en Scratch, Python ou n'importe quel langage, repose sur seulement trois structures :

➡️
La séquence
Les instructions s'exécutent les unes après les autres, de haut en bas. C'est l'ordre normal d'exécution. Chaque bloc attend que le précédent soit terminé avant de s'exécuter.

🔀
La condition (Si / Sinon)
Le programme teste une condition (vrai ou faux) et exécute un bloc différent selon le résultat. Permet au programme de prendre des décisions.

🔄
La boucle (Répéter)
Un bloc d'instructions est répété : soit un nombre fixe de fois (répéter 10 fois), soit indéfiniment (répéter indéfiniment), soit tant qu'une condition est vraie.

Ces trois structures peuvent être combinées et imbriquées : on peut mettre une condition à l'intérieur d'une boucle, ou une boucle à l'intérieur d'une condition, etc. C'est ce qui permet de créer des programmes complexes.

🎯 4. Mouvement et Dessin avec le Stylo

Déplacer le lutin

Le lutin se déplace dans la scène selon sa direction (l'angle vers lequel il pointe) et un nombre de pas (1 pas = 1 pixel). Les deux commandes de base :

BlocEffetDétail
avancer de 10 pasLe lutin avance dans la direction où il pointeUn nombre négatif le fait reculer
tourner ↻ de 90 degrésLe lutin pivote de 90° dans le sens horaire↺ pour le sens antihoraire
s'orienter à 90Le lutin pointe vers la droite0°=haut, 90°=droite, 180°=bas, -90°=gauche
aller à x: 0 y: 0Le lutin se téléporte au centreDéplacement instantané
glisser en 1 s. à x: 100 y: 50Le lutin glisse vers (100, 50) en 1 secondeDéplacement visible et progressif

Dessiner avec le stylo

Le bloc Stylo (extension à ajouter dans Scratch 3) permet au lutin de dessiner sur la scène en se déplaçant, comme un crayon sur une feuille. C'est très utilisé au brevet pour tracer des figures géométriques.

quand ⚑ est cliqué
effacer tout
stylo en position d'écriture
répéter 4 fois
avancer de 100 pas
tourner ↻ de 90 degrés
relever le stylo

Ce programme trace un carré de 100 pixels de côté. Le lutin avance de 100 pas puis tourne de 90°, et répète cette opération 4 fois.

💡 Formule pour les polygones réguliers — Pour tracer un polygone régulier à n côtés avec Scratch, l'angle de rotation est 360° / n. Exemples : triangle équilatéral → 120°, carré → 90°, pentagone → 72°, hexagone → 60°. Programme : répéter n fois . C'est un exercice classique du brevet.

🔀 5. Les Conditions — Si / Sinon

La structure conditionnelle permet au programme de choisir entre deux chemins selon qu'une condition est vraie ou fausse. C'est le bloc le plus important au brevet.

Le bloc « Si … alors »

si touche espace pressée ? alors
avancer de 10 pas

Le lutin avance uniquement si la touche espace est enfoncée. Si elle n'est pas enfoncée, rien ne se passe.

Le bloc « Si … alors / sinon »

si score > 10 alors
dire "Bravo, tu as gagné !" pendant 2 secondes
sinon
dire "Continue, tu peux y arriver !" pendant 2 secondes

Ici, le programme affiche un message différent selon la valeur du score. Le bloc sinon s'exécute quand la condition est fausse.

Conditions combinées (et / ou / non)

On peut combiner plusieurs conditions avec les opérateurs logiques :

OpérateurBloc ScratchSignificationExemple
ET__ et __Vrai seulement si les DEUX conditions sont vraiestouche espace pressée ? ET score > 0
OU__ ou __Vrai si AU MOINS UNE condition est vraieposition en x > 200 OU position en x < -200
NONnon __Inverse la condition (vrai ↔ faux)non (couleur rouge touchée ?)
⚠️ Erreur fréquente au brevet — Confondre si … alors (une seule branche) et si … alors / sinon (deux branches). Quand le sujet demande « que se passe-t-il si la condition est fausse ? », vérifiez s'il y a un bloc sinon. S'il n'y en a pas, la réponse est « rien ne se passe et le programme continue après le si ».

🔄 6. Les Boucles — Répéter

Les boucles permettent de répéter un bloc d'instructions sans le recopier plusieurs fois. Scratch propose trois types de boucles :

BlocComportementQuand l'utiliser
répéter __ foisExécute le contenu un nombre fixe de foisQuand on sait exactement combien de répétitions on veut (tracer un carré = 4 fois)
répéter indéfinimentExécute le contenu sans jamais s'arrêter (boucle infinie)Pour un jeu qui tourne en permanence (vérifier en continu si une touche est pressée)
répéter jusqu'à ce que __Exécute le contenu tant que la condition est fausse, s'arrête quand elle devient vraieQuand on ne sait pas combien de répétitions il faudra (avancer jusqu'à toucher un mur)

Exemple : dessiner un cercle

quand ⚑ est cliqué
effacer tout
stylo en position d'écriture
répéter 360 fois
avancer de 1 pas
tourner ↻ de 1 degré
relever le stylo

En avançant de 1 pas puis en tournant de 1° (et en répétant 360 fois), le lutin trace un cercle. C'est un polygone à 360 côtés, visuellement indiscernable d'un cercle.

Boucles imbriquées

On peut mettre une boucle à l'intérieur d'une autre boucle. C'est utile pour les motifs répétitifs :

quand ⚑ est cliqué
effacer tout
stylo en position d'écriture
répéter 6 fois   ← boucle externe (6 côtés de l'hexagone)
répéter 4 fois   ← boucle interne (carré sur chaque côté)
avancer de 50 pas
tourner ↻ de 90 degrés
tourner ↻ de 60 degrés

Ce programme dessine un hexagone avec un carré sur chaque côté. La boucle interne (4 fois) trace le carré, la boucle externe (6 fois) déplace le lutin au prochain sommet de l'hexagone.

📦 7. Les Variables

Une variable est un espace mémoire qui stocke une valeur (nombre ou texte). On peut la créer, la modifier et la lire à tout moment. C'est indispensable pour les compteurs, les scores, les réponses de l'utilisateur.

Blocs essentiels

BlocRôleExemple
mettre score à 0Donne une valeur à la variable (écrase l'ancienne)Initialiser le score à 0 en début de jeu
ajouter 1 à scoreAugmente la variable de la valeur indiquéeGagner un point à chaque bonne réponse
ajouter -1 à scoreDiminue la variable (on ajoute un nombre négatif)Perdre un point à chaque erreur
montrer la variable scoreAffiche la valeur à l'écranLe joueur voit son score

Exemple : quiz avec score

quand ⚑ est cliqué
mettre score à 0
demander "Combien font 7 × 8 ?" et attendre
si réponse = 56 alors
dire "Bravo !" pendant 2 secondes
ajouter 1 à score
sinon
dire "Perdu ! La réponse était 56." pendant 2 secondes
💡 Demander et réponse — Le bloc demander __ et attendre affiche une question et crée un champ de saisie. La réponse de l'utilisateur est stockée dans le bloc spécial réponse (catégorie Capteurs). Attention : la réponse est toujours un texte dans Scratch, mais les opérateurs de comparaison (=, >, <) convertissent automatiquement en nombre quand c'est possible.

📨 8. Messages et Clones

Les messages (pour communiquer entre scripts)

Les messages permettent à un script de déclencher l'exécution d'un autre script, même s'il appartient à un lutin différent. C'est le mécanisme de base pour synchroniser plusieurs lutins.

BlocRôle
envoyer à tous "nom_du_message"Envoie un message à tous les lutins. Le script continue immédiatement.
envoyer à tous "nom_du_message" et attendreEnvoie un message et attend que tous les scripts déclenchés soient terminés avant de continuer.
quand je reçois "nom_du_message"Bloc chapeau : le script sous ce bloc s'exécute quand le message correspondant est reçu.

Les clones (créer des copies du lutin)

Les clones permettent de créer des copies d'un lutin pendant l'exécution du programme. Chaque clone est indépendant et peut avoir son propre comportement. Utile pour les jeux (tirs multiples, ennemis, particules).

BlocRôle
créer un clone de moi-mêmeCrée une copie du lutin actuel
quand je commence comme un cloneBloc chapeau : les instructions sous ce bloc s'exécutent pour chaque clone créé
supprimer ce cloneDétruit le clone (libère la mémoire)

📝 9. Exercices Type Brevet Corrigés

Exercice 1 — Tracer un triangle équilatéral (brevet classique)

Énoncé : Écrire un programme Scratch qui trace un triangle équilatéral de côté 150 pas.

Correction :

quand ⚑ est cliqué
effacer tout
stylo en position d'écriture
répéter 3 fois
avancer de 150 pas
tourner ↻ de 120 degrés
relever le stylo

Explication : Triangle équilatéral = 3 côtés identiques. L'angle de rotation est 360° / 3 = 120° (c'est l'angle extérieur, pas l'angle intérieur de 60°). C'est le piège classique : on tourne de l'angle extérieur, pas de l'angle intérieur du polygone.

Exercice 2 — Programme de calcul (brevet 2022 type)

Énoncé : Un programme Scratch demande un nombre à l'utilisateur, le multiplie par 3, ajoute 5, puis affiche le résultat.

quand ⚑ est cliqué
demander "Choisis un nombre" et attendre
mettre résultat à réponse
mettre résultat à résultat × 3
mettre résultat à résultat + 5
dire résultat

Questions type brevet :

a) Si on choisit le nombre 4, quel résultat est affiché ? → 4 × 3 + 5 = 17

b) Si on choisit le nombre −2, quel résultat est affiché ? → (−2) × 3 + 5 = −6 + 5 = −1

c) Exprimer le résultat en fonction du nombre de départ x. → 3x + 5

d) Pour quelle valeur de x le résultat est-il égal à 20 ? → 3x + 5 = 20, donc 3x = 15, donc x = 5

Exercice 3 — Jeu avec boucle et condition (brevet avancé)

Énoncé : Que fait le programme suivant ?

quand ⚑ est cliqué
mettre compteur à 0
répéter indéfiniment
si touche flèche droite pressée ? alors
ajouter 10 à x
si touche flèche gauche pressée ? alors
ajouter -10 à x
si bord touché ? alors
dire "Perdu !" pendant 2 secondes
arrêter tout

Correction : Le programme fait déplacer le lutin vers la droite (+10 en x) quand on appuie sur la flèche droite, et vers la gauche (−10 en x) quand on appuie sur la flèche gauche. Si le lutin touche le bord de la scène, il affiche « Perdu ! » et le programme s'arrête complètement. C'est un mini-jeu de déplacement horizontal avec condition de défaite.

Exercice 4 — Nombre aléatoire et boucle « répéter jusqu'à » (brevet type)

Énoncé : Le programme suivant simule un jeu de devinette. Quel est le rôle de chaque partie ?

quand ⚑ est cliqué
mettre mystère à nombre aléatoire entre 1 et 100
mettre essais à 0
répéter jusqu'à ce que réponse = mystère
demander "Devine le nombre (1-100)" et attendre
ajouter 1 à essais
si réponse > mystère alors
dire "Trop grand !" pendant 1 seconde
si réponse < mystère alors
dire "Trop petit !" pendant 1 seconde
dire (regrouper "Bravo ! Trouvé en " (regrouper essais " essais"))

Correction : (1) Le programme tire un nombre aléatoire entre 1 et 100 et le stocke dans la variable mystère. (2) Il demande au joueur de deviner le nombre. (3) À chaque tentative, il incrémente le compteur essais et indique si le nombre proposé est trop grand ou trop petit. (4) La boucle continue tant que la réponse n'est pas égale au nombre mystère. (5) Quand le joueur trouve, le programme affiche le nombre d'essais nécessaires.

⚠️ 10. Les Erreurs Fréquentes au Brevet

ErreurExplicationComment l'éviter
Confondre angle intérieur et extérieurPour un triangle équilatéral, on tourne de 120° (extérieur), pas 60° (intérieur)Retenir : dans Scratch, on tourne toujours de l'angle extérieur = 360° / n
Oublier d'initialiser une variableSi le score n'est pas mis à 0 au début, il garde la valeur de la partie précédenteToujours écrire mettre variable à 0 après le bloc quand ⚑ est cliqué
Confondre « répéter n fois » et « répéter indéfiniment »L'un s'arrête, l'autre ne s'arrête jamaisLire attentivement : si c'est « indéfiniment », le programme ne passe jamais aux blocs suivants
Mal lire l'ordre des opérationsDans mettre x à (x + 1) × 3, le +1 est fait AVANT le ×3Suivre les blocs de l'intérieur vers l'extérieur, comme des parenthèses
Oublier le « et attendre » après « demander »Sans « et attendre », le programme n'attend pas la saisie et continueVérifier que le bloc est bien demander __ et attendre
Confondre « si alors » et « si alors sinon »Sans le sinon, rien ne se passe quand la condition est fausseVérifier la forme du bloc : le « si/sinon » a deux creux, le « si » n'en a qu'un
Ne pas distinguer « = » et « > »Au brevet, les conditions score > 10 et score = 10 ont des résultats différents pour score = 10> est « strictement supérieur » (10 n'est PAS > 10). Pour ≥, il faut utiliser non (score < 10)

🐍 11. De Scratch à Python — Tableau de Correspondance

En 3e, on passe parfois de Scratch à Python. Les concepts sont identiques, seule la forme change (blocs visuels → texte). Voici les équivalences :

ConceptScratchPython
Afficher un textedire "Bonjour"print("Bonjour")
Créer une variablemettre x à 5x = 5
Demander une saisiedemander "Ton nom ?" et attendrenom = input("Ton nom ?")
Condition simplesi (x > 10) alors …if x > 10:
Condition avec sinonsi … alors … sinon …if … : … else: …
Boucle fixerépéter 10 foisfor i in range(10):
Boucle conditionnellerépéter jusqu'à ce que (x = 0)while x != 0: (attention : logique inversée !)
Nombre aléatoirenombre aléatoire entre 1 et 6import random puis random.randint(1, 6)
Reste de la divisionreste de x / 2x % 2
ET logique__ et ____ and __
OU logique__ ou ____ or __
⚠️ Piège Scratch → Python — Le bloc Scratch répéter jusqu'à ce que (condition) répète tant que la condition est FAUSSE et s'arrête quand elle devient vraie. En Python, while condition: fait l'inverse : il répète tant que la condition est VRAIE. Il faut donc inverser la condition quand on traduit. Exemple : Scratch répéter jusqu'à ce que x = 0 → Python while x != 0:.

❓ Questions Fréquentes

Scratch est-il au brevet des collèges ?
Oui, et dans deux épreuves. Scratch peut tomber en mathématiques (exercice d'algorithmique : lire un script, trouver le résultat, compléter des blocs) et en technologie (analyser le programme d'un système automatisé). C'est l'un des sujets les plus récurrents. Depuis 2017, il y a eu au moins un exercice Scratch dans la quasi-totalité des sujets de maths du brevet.
Faut-il savoir coder « par cœur » les blocs Scratch ?
Non. Au brevet, on vous montre le programme (image des blocs) et on vous demande de le lire et l'interpréter. Vous devez comprendre ce que fait chaque bloc, suivre l'exécution pas à pas, et calculer les résultats. Parfois, on vous demande de compléter des blocs manquants dans un programme. Il n'y a jamais besoin d'écrire un programme entier de mémoire.
Pourquoi tourne-t-on de 120° pour un triangle et pas de 60° ?
Parce que dans Scratch, le bloc tourner de __ degrés fait pivoter le lutin par rapport à sa direction actuelle, c'est-à-dire qu'il tourne de l'angle extérieur du polygone. L'angle extérieur d'un triangle équilatéral est 180° − 60° = 120°. Règle générale : pour un polygone régulier à n côtés, l'angle de rotation = 360° / n. Pour le triangle : 360° / 3 = 120°.
Quelle est la différence entre « répéter 10 fois » et « répéter indéfiniment » ?
Répéter 10 fois exécute le contenu exactement 10 fois puis continue avec les blocs suivants. Répéter indéfiniment ne s'arrête jamais — le programme reste dans la boucle pour toujours (sauf si un bloc arrêter tout est déclenché). Les blocs placés après un répéter indéfiniment ne seront jamais exécutés.
Comment Scratch gère-t-il les nombres négatifs ?
Scratch gère les nombres négatifs normalement. avancer de -10 pas fait reculer le lutin. ajouter -5 à score diminue le score de 5. Les opérateurs de comparaison fonctionnent aussi : -3 < 2 est vrai. Au brevet, les programmes de calcul avec des nombres négatifs en entrée sont fréquents — c'est un piège classique car les élèves oublient de gérer le signe.
Peut-on utiliser Scratch pour le brevet de technologie aussi ?
Oui. En technologie, Scratch est utilisé pour programmer des systèmes automatisés (portail, éclairage, robot). L'exercice type vous montre un programme Scratch qui commande un moteur ou une LED via des capteurs, et vous demande de l'analyser ou de le compléter. C'est le même Scratch qu'en maths, mais appliqué à un contexte technique avec la chaîne d'énergie et d'information.
Où s'entraîner gratuitement avec Scratch ?
Le site officiel scratch.mit.edu est entièrement gratuit. Vous pouvez y créer un compte, programmer en ligne et explorer les projets d'autres utilisateurs. Pour le brevet, entraînez-vous surtout à lire et analyser des scripts existants plutôt qu'à créer vos propres projets — c'est ce qui sera demandé le jour de l'épreuve.

📚 Autres cours de technologie

💡 Scratch en maths et en techno — Scratch est au programme des deux matières. En mathématiques, on l'utilise pour des programmes de calcul, des tracés géométriques et des simulations de probabilités. En technologie, on l'utilise pour programmer des systèmes automatisés. Les compétences se renforcent mutuellement : maîtriser Scratch vous aide dans les deux épreuves du brevet.