Scratch
Scratch
25/02/19 [Link] 1
PROGRAMMATION – Notions préalables
1- Démarche
Entrées / Sorties
Structures de contrôle :
Séquence
Alternative
Itération (répétition)
Séquentialité : les instructions doivent être dans un ordre précis avec un début et une fin
Ajouter 2 puis multiplier par 3 est différent de multiplier par 3 puis ajouter 2
Alternative (conditionnelle)
Si [condition] alors [instructions] fin du si
Si [condition] alors [instructions] sinon [instructions]fin du si
Rem : la condition est un booléen pouvant avoir comme valeur Vrai ou Faux
Itération (répétition)
Soit on fixe le nombre de répétitions
Soit on répète jusqu’à trouver une condition d’arrêt
Pour i de 1 à n faire
[instructions]
fin du pour
25/02/19 [Link] 2
Exercices : concevoir et comprendre un algorithme
Exemple 1 : On dispose de 1530 €, on veut acheter le plus possible d’objets valant chacun 17, 90 €.
On ne sait pas effectuer la division.
Écrire un algorithme permettant de trouver le nombre maximum d’objets que l’on peut obtenir.
Comme l’ordinateur calcule très vite on lui fera faire les calculs successifs en augmentant le nombre d’objets de
1 en 1 à partir de 1 jusqu’à la somme disponible atteinte.
(on utilisera 3 variables nommées par exemple nb, pu, avoir – pour le nombre, le prix unitaire, l’avoir disponible)
(variante : on demandera au début la somme disponible et le prix unitaire, et on affichera à la fin le résultat)
25/02/19 [Link] 3
Cas du langage Scratch
Scratch est un langage orienté objet : les objets ont des propriétés et des méthodes (des savoir faire). On peut
manipuler plusieurs objets simultanément.
Gratuit. Visuel.
Pas d’erreur de syntaxe rebutante pour les débutants, car les instructions sont pré écrites, il suffit de les prendre
et les mettre en place comme des pièces de Lego.
Scratch est très utilisé comme premier langage d’enseignement.
Apprentissage facile sous forme de jeu. Essayer, voir l’effet, modifier, voir l’effet, etc…
début
entrer (n); n=int(input(« n= »))
total ← 0 total=0
pour i de 1 à n faire for i in range (n+1) :
total ← total + i total = total + i
fin du pour print (total)
afficher (total)
fin
25/02/19 [Link] 4
SCRATCH – Les Outils
LA FENÊTRE SCRATCH 2
LA FENÊTRE SCRATCH 3
25/02/19 [Link] 5
Dans la version 3 la scène est passée à droite et la zone de programmation au centre
Pour télécharger Scratch (éditeur hors ligne = version offline = version desktop)
[Link]
LA SCÈNE
La scène (le décor, l’arrière-plan) est l'endroit où des histoires, des jeux et des animations prennent
vie. Les objets (lutins) se déplacent interagissent les uns avec les autres sur la scène.
Choisir une scène dans la bibliothèque de scènes ou la dessiner soit même (personnalisée)
Créer une scène personnalisée :
à partir d’une photo ou image (réduire à 480x360 avec Paint ou autre)
dessiner (avec l’éditeur graphique de Scratch ou avec Paint ou autre)
Enregistrer une scène qui nous convient : clic droit sur la scène, puis clic droit « enregistrer » « save picture of
stage ». On obtient une image de suffixe .png
LES LUTINS
Les lutins (ou objets, ou personnages, ou sprites en anglais) sont les objets animés (environ 60x180) se
déplaçant sur la scène suivant l’algorithme proposé.
Choisir un lutin dans la bibliothèque de lutins ou le dessiner soit même (personnalisé).
On peut aussi importer une image existante au format .png afin de gérer la transparence (ne pas avoir un
contour rectangulaire blanc comme en .jpg).
Enregistrer un lutin qui nous convient : clic droit sur le lutin, puis clic droit « enregistrer localement comme
fichier ». On obtient un fichier de suffixe .sprite2
Un même lutin peut avoir plusieurs aspects (costumes) et on peut modifier sa taille.
Exemple : le chat (lutin par défaut) a deux costumes, c’est à dire deux positions et en les alternant on peut
donner l’impression qu’il marche → instruction « costume suivant » dans la rubrique Apparence
25/02/19 [Link] 6
LES INSTRUCTIONS
Mouvement :
Avancer, s’orienter, tourner, aller à …
Apparence :
Montrer, cacher, écrire dans une bulle de dialogue, changer l’aspect du
lutin, …
Sons :
Émettre un bruit, une musique…
Stylo :
Taille et couleur du stylo, effacer…
Données :
Créer une variable, une liste…
Evénements :
Occasions de déclencher une action
Contrôle :
Les structures de contrôle : attendre, si alors, répéter…
Capteurs :
Capteurs d’événements (appui sur une touche, chronomètre, attendre une réponse, toucher un objet de couleur
donnée..). Récupération de la position du lutin (abscisse, ordonnée, direction).
Opérateurs :
Additionner, soustraire, multiplier, diviser, comparer, opérateurs logiques (et, ou, non), regrouper des éléments,
calcul aléatoire…
Ajouter blocs :
Pour créer des blocs d’instructions… Un bloc permet de regrouper des instructions que l’on utilisera dans le
script principal (notion de procédure).
LES SCRIPTS
25/02/19 [Link] 7
• avec Scratch 2 : utiliser Fichier / Ouvrir (et choisir un fichier de suffixe sb2)
• avec Scratch 3 : utiliser Fichier / Importer depuis votre ordinateur.
Pour conserver un programme Scratch
• avec Scratch 2 : utiliser Fichier / Enregistrer ou Enregistrer sous, on obtient un fichier ayant le
suffixe .sb2
• avec Scratch 3 : Fichier / Exporter sur votre ordinateur, on obtient un fichier ayant le suffixe .sb3
Scratch 3 sait lire les fichiers .sb2 (compatibilité ascendante)
LES LISTES
Vous pouvez créer et manipuler des listes dans Scratch. Les listes peuvent stocker des nombres
autant que des chaînes de lettres ou autres caractères.
Pour créer une liste, allez à la catégorie variables de blocs et cliquez sur . Une fois
que vous avez fait une liste, plusieurs blocs associés à la liste apparaissent. Les blocs de liste sont
décrits dans la section de description des blocs de ce guide.
Lorsque vous créez une liste, un tableau associé à cette liste apparaît sur la scène. Le tableau
présente la liste des éléments .Vous pouvez écrire directement un nombre ou une chaîne de
caractères sur une ligne du tableau de la liste.
Au début, la liste est vide, sa longueur est 0. Pour ajouter à la liste, cliquez sur le bouton + en bas à
gauche de l'écran de la liste. La longueur augmente de 1. Sinon, vous pouvez ajouter ( dans ce cas
chose ) à la liste en utilisant le bloc de liste (par exemple, ).
Note : Vous pouvez faire un clic droit (Mac: Ctrl + clic) sur le tableau de la liste pour exporter une
liste sous la forme d'un fichier texte .txt .
Vous pouvez aussi importer tout fichier .txt avec des valeurs sur des lignes distinctes.
LES SONS
Cliquez sur l'onglet Sons pour voir les sons proposés ou en créer de nouveaux.
25/02/19 [Link] 8
Une bibliothèque de sons est à votre disposition.
Vous pouvez aussi enregistrer de nouveaux sons ou importer des fichiers sonores. Scratch peut lire
des fichiers MP3 et des fichiers non WAV, AIF, AU non compressés et des fichiers (encodés en 8-
bits ou 16-bits par exemple, mais pas 24-bits par exemple).
Les chaînes de caractères peuvent être stockées dans les variables ou les listes. Ex :
ou ).
Vous pouvez joindre ensemble (concaténer) des chaînes de caractères en utilisant . Vous
Les chaînes sont évaluées comme 0 dans les blocs d'opération mathématique (tel que: ) et les blocs qui
25/02/19 [Link] 9
SCRATCHELEM Exercices d’initiation à SCRATCH
Démo A1 :
Démo A2 :
25/02/19 [Link] 10
Démo A3 :
Démo A5 :
On en déduit qu’au départ le lutin est au centre et qu’il est orienté vers
la droite.
Bien voir le rôle de chaque instruction.
Remarque : pour ne pas voir le lutin (chat par défaut) clic droit
sur le lutin en bas à gauche et choix cacher. Cela permet de
mieux voir ce qui est dessiné.
25/02/19 [Link] 11
Exercice A1 : Dessiner un carré en ajoutant quelques instructions.
Exercice A2 :
Exercice A3 :
Exercice A4 :
Comprendre un programme :
Cet exercice fait appel à la notion de variable (voir le module C).
Ici "distance" est une variable que l'on va faire varier au cours du
programme.
Exercice A6 :
25/02/19 [Link] 12
Réaliser un tracé de ce type (escalier)
en utilisant la boucle répéter
Exercice A7 :
Réaliser ce dessin
Exercice A8 :
Écrire un programme qui dessine un triangle équilatéral avec un stylo rouge d’épaisseur double (taille 2).
Exercice A9 :
Exercice A10 :
3 – Reprendre la 1ere question en faisant varier légèrement l’angle (on n’obtient plus un tracé fermé
mais intéressant...)
25/02/19 [Link] 13
Exercice A11 :
25/02/19 [Link] 14
Une séquence d'orientation dans la scène, niveau cours moyen ou classe de 6ème
Objectifs: se déplacer, tourner, repérer sa position et son orientation
Notion préliminaires à expliquer :
1 - La scène est un rectangle de dimension 480 pas en largeur et 360 pas en hauteur.
Pour rester dans le cadre, si on est au centre on peut donc se déplacer au maximum de 240 vers la gauche ou
vers la droite, et de 180 vers le haut ou vers le bas.
2 - Pour tourner d'un certain angle on aura seulement besoin de connaitre 90°, 60° et 120°, qui seront utiles
pour la construction d'un carré et d'un triangle régulier.
Pour obtenir le dessin ci-dessous voici le code utilisé : (on aura caché le chat pour ne voir que le tracé)
25/02/19 [Link] 15
B : Construction d'un triangle régulier de côté 100
Tout cela est tracé très vite et on n'a pas le temps de suivre les étapes. On va ajouter une pause d'une seconde
dans la boucle de répétition, et pour bien voir l'orientation du crayon à chaque étape on va prendre comme lutin
une flèche.
Après le tracé des 2 premiers cotés du triangle voici ce que l'on voit :
25/02/19 [Link] 16
Il est possible qu'au bout de plusieurs manipulations le point de départ ne soit plus le centre de la scène et
l'orientation initiale ne soit plus vers la droite. On peut imposer ces deux contraintes. D'où une autre version
pour le triangle :
On va bien sûr tracer le carré et le triangle successivement. Cela parait simple mais il
y a une difficulté majeure, c'est de savoir comment on est positionné après le
premier tracé pour entamer le deuxième. Laissons faire quelques tentatives pour
mettre en évidence le problème.... Bravo à l'élève qui s'en sort tout seul.
Tracé du carré puis du triangle :
Quand on a tracé le carré on est revenu au point de départ, c'est à dire à l'angle bas
[Link] orienté vers la droite. Pour aller tracer le triangle il faut donc aller se
positionner ailleurs. Plusieurs solutions, beau sujet de recherche et d'essais.
Un élève de CM1 a suggéré : "pour le carré il suffit de répéter 7 fois au lieu de 4 et
on sera bien placé". Pas mal comme idée... Il y en a d'autres.
25/02/19 [Link] 17
Quelques réalisations :
25/02/19 [Link] 18
Apprendre les coordonnées x, y avec 3 petites vidéos (Université de Lille)
Tutoriel 1 : [Link]
Tutoriel 2 : [Link]
Tutoriel 3 : [Link]
25/02/19 [Link] 19
Module B : Piloter avec les touches du clavier ou la souris
Démo B1 :
Chaque événement « appui sur la touche a » ou « appui sur la touche espace » permet de piloter le lutin.
Exercice B1 :
Piloter le lutin en utilisant les 4 flèches du clavier gauche, droite, haut, bas, sans utiliser la commande tourner
mais avec s’orienter et avancer.
Démo B2 :
25/02/19 [Link] 20
Démo B3 :
On choisit un lutin (ici le poisson étoile starfish), on lui définit un deuxième costume (2e aspect, ici simple
changement de couleur). On réduit leurs tailles.
Le script suivant permet de démarrer avec la touche « d », de changer d’aspect (de costume)
avec la touche « espace », de stopper avec la touche « s », et d’effacer avec la touche « e ». La
commande « estampiller » permet d’effectuer une copie du lutin sur la scène.
25/02/19 [Link] 21
Module C : Utiliser des variables
Démo C1 :
On a créé une variable nommée « angle ». On lui donne une valeur initiale
10°, puis après chaque avance de 40 pas on augmente l’angle de 1°.
Exercice C1 :
On a défini deux variables a et b.
Écrire sur chaque ligne, en face de l’instruction, les valeurs obtenues pour a et b
instruction a b
Mêmes questions
instruction a b
25/02/19 [Link] 22
On a ce script :
Écrire les valeurs de a et de b
- avant d’entrer dans la boucle répéter
- après le premier passage dans la boucle répéter
- après le deuxième passage dans la boucle répéter
- à la fin du programme
Exercice C2
Quelle serait la différence si l’instruction « ajouter à i la valeur 1 » était placée entre les deux instructions qui
précèdent ?
Voir QueFaitCeProgramme.sb2
25/02/19 [Link] 23
Exercice C3 : Longueur du trajet
Comprendre un programme :
Ici "distance" est une variable que l'on va faire varier au cours du
programme.
Exercice C4 :
1 - Variante : on demande le nombre de côtés, placé dans une variable. Puis on trace le polygone.
Voir Polygones_réguliers.sb2
25/02/19 [Link] 24
Module D : Poser une question, écrire un message
Démo D1:
Exercice D1 :
Demander le prix unitaire d’un objet, le nombre d’objets achetés, puis afficher le prix à payer
25/02/19 [Link] 25
Module E : Créer une animation avec plusieurs lutins
Démo E1 :
Choisir une scène (arrière-plan) dans la bibliothèque de scènes, ici un fond marin.
Choisir deux lutins, ici deux poissons, dans la bibliothèque de lutins, éventuellement en utilisant aussi la
bibliothèque costumes. Réduire la taille d’un des poissons. On aura donc un gros poisson qui cherchera à
manger le petit poisson.
25/02/19 [Link] 26
Dans l'exemple ci-dessus le drapeau vert déclenche l'action pour les deux lutins simultanément.
Il est possible de synchroniser les actions des lutins en utilisant les échanges de messages (programmation
événementielle)
Le lutin qui veut déclencher une action chez les autres utilise l'instruction
et les autres exécutent alors ce qui est dans leur programme sous l'instruction
25/02/19 [Link] 27
Module F : Utiliser le hasard
Démo F1
Une variable est nommée pièce. On simule un jeu de Pile ou Face en prenant aléatoirement le nombre 1 ou le
nombre 2. Dans un cas on tourne à droite, dans l’autre on tourne à gauche. Afin de ne pas sortir du cadre le lutin
rebondit dès qu’il touche le bord, comme au billard !
Exercice F1 :
25/02/19 [Link] 28
Module G : Utiliser des blocs d’instructions
Il peut être intéressant pour l’enseignant de fournir aux élèves un bloc « tout fait », en leur demandant de
l’utiliser dans un programme sans avoir à le maîtriser complètement.
A noter que l’on peut définir des blocs avec paramètre (au moment de la création du bloc cliquer sur le choix
« options » → notion de procédure avec paramètre.
25/02/19 [Link] 29
Démo G2 : Quant à ce script, voici ce qu’il donne :
25/02/19 [Link] 30
Démo G4 : Dessin géométrique (voir le script dessin_geometrique.sb2)
Par exemple :
A partir d’un bloc carré et d’un bloc triangle créer le bloc maison.
Puis, à partir du bloc maison, créer ce dessin
25/02/19 [Link] 31
Module H : Sons et musique
De très nombreux sons existent dans la bibliothèque de sons (classés par catégories),
y compris les notes de musique.
Exemples d’instructions :
quand on choisit le n° de la note
le clavier est visible pour aider
Pour la correspondance entre les notes et les nombres, ainsi que pour la numérotation des instruments, voir
l’annexe dédiée en fin de document.
25/02/19 [Link] 32
Exemple de Frère Jacques, trouvé sur un site du MIT
(MIT : Massachusetts Institute of Technology )
25/02/19 [Link] 33
Ou avec un lutin qui dit les paroles (Choisir un arrière plan et un personnage)
25/02/19 [Link] 34
Module I : Utiliser une liste
Une liste sert à stocker un ensemble d’éléments : par exemple la liste des élèves.
Dès que l’on a créé une liste (rubrique Données) on dispose d’un ensemble d’instructions pour ajouter,
supprimer, insérer, déplacer, choisir un élément, pour compter le nombre d’éléments, pour voir la liste.
Exercice J1 :
Calcul Mental : Le personnage choisi comme lutin prend deux nombres entiers aléatoires entre 0 et [Link]
sont affichés à l’écran. Il demande « quelle est la somme ? ». L’élève a un délai de réflexion pour répondre.
Pour une bonne réponse on a « bravo » et des applaudissements, pour une mauvaise on émet un son et on
redemande. (dans une première étape le programme devra vérifier avant de poser la question que la somme ne dépassera pas 100)
Exercice J2 :
Calcul Mental : Le personnage choisit deux nombres entiers aléatoires entre 0 et 100 et pose la question de la
différence entre les deux (il aura placé le plus grand en premier).
Exercice J3 :
Calcul mental : On propose un nombre entier aléatoire entre 0 et 500. On demande quel est son double.
Exercice J4 :
Calcul mental : On propose un nombre entier aléatoire entre 0 et 100 et on demande de calculer sa moitié (le
programme devra choisir un nombre entier pair).
Exercice J5 :
Calcul mental : Additionner des heures et des minutes (le programme devra proposer la variable heure entre 0
et 12 et la variable minute entre 0 et 59)
Exercice J6 :
Trop grand / trop petit : le lutin choisit un nombre au hasard entre 0 et 50. Le joueur propose une réponse. Le
lutin lui dit « trop grand » ou « trop petit » ou « trouvé » et indique en combien de fois la réponse a été trouvée.
Réfléchir à une stratégie (dichotomie).
Démos du dossier joint
25/02/19 [Link] 35
L’élève pense à un nombre. Le devin lui demande quelques calculs et trouve ce nombre.
Une difficulté est de tenir compte de la position du lutin après le dessin du sol.
Il serait bien préférable de ne pas créer ce bloc et de créer plutôt une scène dédiée avec le terrain et la falaise.
Démo J3 :
25/02/19 [Link] 36
Démo J4 :
Pour montrer les quatre points cardinaux et simuler un compas de navire qui indique le cap (gradué de 0 à 360),
une petite animation.
Questions éventuelles :
quel cap prendre pour aller vers
• E
• S
• O
• SE
• NO
• SO
• N
Programme peut-être trop difficile à programmer pour des élèves, mais peut être utilisé lors d’une séance
d’exercices sur le sujet.
Le lutin choisit aléatoirement deux durées en h et min et demande le résultat de leur addition. (donner la
réponse sous forme 14h53)
25/02/19 [Link] 37
Démo J6 : Balade hivernale voir le dossier de ce nom
Le pingouin s’avance vers la droite, l’ours apparaît. Lorsque le pinguoin le voit il recule précipitament et bute
dans l’arbre qui se trouve derrière lui.
Avec un pingouin et un ours j’ai introduit les
notions
- Se cacher, se montrer
- Changer d’apparence (de costume)
- Réagir à proximité d’un autre lutin
- Réagir lorsqu’on touche un objet d’une
certaine couleur
25/02/19 [Link] 38
Démo J8 : Cadavre exquis
Ce jeu littéraire est bien connu (Marcel Duhamel, Jacques Prévert, Yves Tanguy). Le principe du jeu est le
suivant : chaque participant écrit à tour de rôle une partie d'une phrase, dans l'ordre sujet–verbe–complément,
sans savoir ce que le précédent a écrit. La première phrase qui résulta et qui donna le nom à ce jeu fut « Le
cadavre – exquis – boira – le vin – nouveau »
Ici on utilisera les notions de liste, de concaténation de chaînes de caractères, de choix aléatoire.
Voici un exemple adaptable, avec 4 listes modifiables directement dans Scratch.
Ouvrir le script cadavre_exquis.sb2 dans le dossier des exercices
25/02/19 [Link] 39
Démo J9 : un peu d’art
(exemple trouvé sur le site de Scratch en ligne, élaboré par Daffo)
voir le script OctogoneEstampille.sb2
On prend comme objet lutin un octogone régulier plein (le bouton « stop »).
On le fait tourner en « estampillant », c’est à dire en peignant ses différentes positions successives dans la scène à fond noir.
Sa taille, au départ très grande, diminue progressivement, et sa couleur varie. Suivant l’angle de rotation choisi on obtient des images
très variées.
Démo J10 : Créer mon premier jeu avec Scratch, vidéo de démonstration par Law974
Beaucoup d’éléments intéressants dans ce petit tutoriel : associer un script à la scène pour la faire défiler et
ainsi créer le mouvement, envoyer des messages aux différents lutins pour coordonner les actions, copier le
script d’un lutin vers un autre lutin...
[Link]
25/02/19 [Link] 40
Module K : Remarques, conseils, liens
Sur son ordinateur, dans son dossier Scratch prévoir des sous-dossiers dans lesquels on stockera ses propres
scripts, ses lutins personnalisés, ses scènes personnelles, avec des identifiants significatifs.
- Soit cliquer sur les icônes agrandir/diminuer ci-contre, puis cliquer autant de fois que voulu sur le
lutin concerné
25/02/19 [Link] 41
- Soit dans le script associé au lutin insérer l’instruction
change sa couleur.
25/02/19 [Link] 42
Récursivité et fractales
Pour les curieux j’ai ajouté un petit module sur la récursivité avec quelques réalisations de fractales (voir sur le
site en page Téléchargement). Bien sûr cela ne correspond pas au niveau choisi pour cette initiation, mais c’est
pour le plaisir de certains profs les dimanches pluvieux. Quant aux grands élèves, on peut avoir des surprises.
Avoir ou ne pas avoir « l’esprit récursif »...
Quelques liens
et [Link]
MitEdu [Link]
Salledesrancy [Link]
*****************************
25/02/19 [Link] 43
Annexe 1 : Liste des instructions Scratch 2
25/02/19 [Link] 44
Annexe 2 : Logique booléenne – Algèbre de Boole
Exemples d’utilisation :
Circuits électriques :
Soit 2 interrupteurs a et b (avec vrai si fermé)
- en série : lampe allumée = a et b, lampe éteinte = (non a) ou (non b)
- en parallèle : lampe allumée = a ou b, lampe éteinte = (non a) et (non b)
25/02/19 [Link] 45
Annexe 3 : sujets
--- pour information, un sujet Scratch proposé pour le Brevet des Collèges en 2016
Losanges
25/02/19 [Link] 46
Et le sujet Scratch du Brevet des Collèges en 2017
25/02/19 [Link] 47
Annexe 4 : Musique avec Scratch, compléments
Liens utiles :
Frère Jacques tutoriel [Link]
Tutoriels de JF. Cauche :
Choix instrument : [Link]
choisissez-vos-instruments/
Percussions [Link]
Volume sonore : [Link]
25/02/19 [Link] 48
Un exemple avec des touches de piano sur un octave. Cliquer sur les touches pour jouer.
Voir le script piano.sb2 chaque touche est un lutin – exemple de script d’une touche :
25/02/19 [Link] 49
Annexe 5. : Scratch Jr
Scratch Junior
[Link]
Des commandes simplifiées et visuelles.
Age idéal : 5/7 ans. Support : sur tablettes iPad et Android
Avec ScratchJr, les jeunes enfants (de 5 à 7 ans) peuvent programmer leurs propres histoires interactives et
leurs propres jeux. Par là même, ils apprennent à résoudre des problèmes, créer des projets et exprimer leur
créativité sur ordinateur.
25/02/19 [Link] 50