Une programmation événementielle Un « programme » Scratch est une série de vignettes (sprite en anglais, traduit par lutin !). Une de ces vignettes à un statut particulier puisqu’elle sert de fond d’écran. Des scripts peuvent être liés à chaque vignette. Ils sont déclenchés par des événements extérieurs. Les vignettes communiquent entre elles en envoyant des messages. Les messages sont des textes qui sont envoyés « à tous » et qui peuvent déclencher des scripts de certaines vignettes.
Programmation en parallèle et interaction La programmation dans Scratch se fait en parallèle. Un même événement peut déclencher un script simultanément pour plusieurs vignettes, le script d’une vignette peut déclencher ceux d’autres vignettes et les différents scripts fonctionnement en parallèle. Mais le déclenchement de script ne se fait pas seulement à partir de message d’autres vignettes. L’utilisateur peut aussi les déclencher via les différentes touches du clavier, les clics de souris, voire d’autres capteur connectés à l’ordinateur, notamment des capteurs d’expériences scientifiques.
Pourquoi Choisir Scratch ?
Avantages pédagogiques Le choix de Scratch comme outil de programmation principal se justifie de plusieurs façons. Il y a bien sûr des avantages intrinsèques, lié au fait qu’il permet mieux que d’autre de couvrir le programme officiel, avantages qui sont mis en évidence dans le tableau 1, mais il y a aussi les qualités propres du logiciel qui en font dans tous les cas un outil pédagogique riche.
Tableau 1. Points du projet de programme pour lesquels Scratch présente de gros avantages Connaissances et compétences associées Exemples de situations, d’activités et de ressources pour l’élève Décomposer un problème en sous-problèmes afin de structurer un programme ; reconnaître des schémas. Écrire, mettre au point (tester, corriger) et exécuter un programme en réponse à un problème donné. Écrire un programme dans lequel des actions sont déclenchées par des événements extérieurs. Programmer des scripts se déroulant en parallèle. »»Notions d’algorithme et de programme. »»Notion de variable informatique. »»Déclenchement d’une action par un évènement, séquences d’instructions, boucles, instructions conditionnelles. »»Notion de message échangé entre objets. Jeux dans un labyrinthe, jeu de Pong, bataille navale, jeu de nim, tic tac toe. Réalisation de figure à l’aide d’un logiciel de programmation pour consolider les notions de longueur et d’angle. Initiation au chiffrement (Morse, chiffre de César, code ASCII…) Construction de tables de conjugaison, de pluriels, jeu du cadavre exquis… Calculs simples de calendrier Calculs de répertoire (recherche, recherche inversée, etc.). Calculs de fréquences d’apparition de chaque lettre dans un texte pour distinguer sa langue d’origine : français, anglais, italien, etc.
L'aspect ludique La présentation de Scratch et sa finalité (faire du dessin animé, réaliser des jeux) favorise la motivation de tous les élèves. La programmation sort d’un cadre normatif, rébarbatif pour entrer dans un cadre d’expression personnelle et de jeu. L’élève oublie vite qu’il est en train de travailler à l’école.
La facilité d'utilisation La prise en main du logiciel très simple permet d’obtenir très vite des résultats très satisfaisant. Un fonctionnement par essai/ajustement, très intuitif est possible.
La dimension inter disciplinaire Facile d’accès, Scratch favorise un travail pluridisciplinaire. Les arts plastiques sont évidement à l’honneur. La musique a toute sa place puisque le logiciel permet de programmer des morceaux. Le Français et les langues vivantes peuvent être sollicités pour la construction de scénario de dessins animés. Toutes les matières peuvent être inclues dans le cadre d’exercices interactifs. Les sciences expérimentales peuvent brancher des capteurs sur l’ordinateur dont les résultats pourront être utilisés dans Scratch.
Scratch permet des projets collaboratifs ambiteux Réaliser un court métrage d’animation ou un exercice interactif sont en général des objectifs trop élevés pour un élève seul. Par contre un travail collaboratif permet de réaliser des projets d’ampleur, dont les élèves pourront être fiers. Le logiciel permet donc aussi bien de favoriser l’investissement personnel que la capacité à travailler en groupe. Les aspects divers de la réalisation d’un projet ambitieux permet d’autre part la prise en compte de la diversité des élèves.
Inconvénients pédagogiques Il ne faut pas se cacher, comme tout outil, Scratch à des défauts et son utilisation peut entraîner des biais pédagogiques. Les connaitre permet à l’enseignant de les éviter.
Son aspect ludique « Scratch, ça fait pas sérieux », « c’est pour les bébés »… Ce reproche revient de manière récurrente chez un certain nombre de personnes, élèves et enseignants. Pour les enseignants on rappellera que le logiciel permet un vrai travail de programmation mais on mentionnera aussi les expériences graphiques utilisant des supports « pour enfants » pour des contenus adultes (South Park, Anomalisa…)
Son aspect ludique Pour les élèves, qui seront plus difficiles à convaincre par des arguments raisonnés, on pourra travailler sur les différentes approches graphiques, partir de leurs centres d’intérêts…
Trois situations identiques
Scratch ne favorise pas l'algorithmique C’est indiscutable. Il est extrêmement difficile de faire comprendre l’intérêt d’écrire un algorithme à des élèves qui ont pris en main le logiciel et qui ne sont pas amené à en utiliser ailleurs : Ecrire un algorithme avant semble inutile et transcrire un script de scratch en algorithme n’a pas d’intérêt.
Scratch ne favorise pas l'algorithmique La solution à ce problème est à trouver dans le travail collaboratif et pluri disciplinaire. C’est au niveau d’un scénario complexe que vont se poser le problème de l’analyse, de l’algorithme, de la définition des variables et des messages entre les vignettes. Un scénario écrit avec un enseignant de langue ou de français sans l’outil informatique peut avoir à être validé par le prof de math. Un algorithme écrit par un élève peut avoir à être réalisé par un autre…
Choix de la version Scratch est décliné en 3 versions : 1.4 Hors ligne 2 (déclinaison 444) Hors ligne 2 En ligne La version de référence ici est la 1.4 (tout ce qui est dans ce diaporama est donc vrai dans les trois versions Les apports spécifiques de la version 2 sont détaillés à la fin
Pourquoi utiliser la version 1.4 La version 2 propose des amélioration mais.. Travailler en ligne impose à l'enseignant un travail de surveillance au niveau des droits d'auteur et du droit à l'image (voir webquest du S1) La version 2 hors ligne ne permet pas d'importer un morceau de projet dans un autre. Elle est donc moins adapté à un travail collaboratif La version 1.4 permet une exécution pas à pas La compatibilité ascendante est assurée. Un projet fini et légal en version 1.4 peut tout à fait être mis en ligne.
Présentation de l’espace de travail
Fenêtre de visualisation Cadre de gestion de l'objet courant Fenêtre de visualisation Les scripts de l'objet 1 Les objets de l'animation Colonne de choix des actions
Fenêtre de visualisation Gestion de l'objet courant Les scripts Du lutin 1 Les objets de l'animation Colonne de choix des actions
Codes pédagogiques Pour facilité la prise en main et l’utilisation les commandes, test, variables… suivent un système de codage pédagogique à deux niveaux : Un code forme et un code couleur.
Codes formes Les codes de forme permettent de visualiser les enchaînements et ce qui est possible. Exemple : La boite nécessite pour pouvoir être utilisée deux commandes de forme hexagonale.
Les encoches Les encoches permettent d’organiser séquentiellement les commandes. Les rares commandes sans encoche en dessous sont celles qui ne permettent pas de continuer. Les formes suivantes sont donc « déformées » par les encoches Les deux premières commandes ont des encoches et peuvent être insérées dans une séquence. La troisième ne peut être suivie de rien
Début de script Rectangles surmonté d’une vague Les débuts de script déterminent quel événement déclenche le script. Un script qui n’est pas précédé d’un début de script n’est jamais exécuté
Commandes et variables Les rectangles définissent les commandes, les actions qui seront exécutée par la vignette. Ronds et rectangles arrondis sont destinés aux variables, lorsqu’une commande requiert le renseignement d’une variable, on peut utiliser un objet arrondis ou taper directement un texte ou un nombre. La commande ci-dessous permet d’attendre une seconde. On peut modifier cette valeur en tapant un nombre ou en faisant glisser une variable (par exemple ici s) sur le 1.
Blocs et tests Les blocs sont utilisés pour les instructions conditionnelles et les boucles. Le fait d’utiliser des bloc empêche toute erreur due à une mauvaise imbrication. Les hexagones sont utilisés pour les tests.
Le code couleur
Mouvement La page « mouvement » contient trois variables et des commandes Les variables sont les coordonnées x et y du centre de la vignette et la direction. La direction est l’angle formé par le premier vecteur du repère et le vecteur vers la gauche qui suit le « bas » de la vignette. La commande « Avancer » déplace dans le sens de la « direction » de la vignette. Pour déplacer suivant un axe une vignette qui n’est pas dans cette direction, utiliser « Remplacer x par … » et « Remplacer y par … ».
Contrôles La page contrôle contient les instructions de déclenchement, de fin, les boucles et instructions conditionnelles, les échanges entre vignette et une boucle d’attente. Les actions pouvant déclencher un script sont : Le drapeau vert Une touche du clavier Un message d’une autre vignette Un clic sur un objet
Apparence La page « apparence » contient deux variables et des commandes. Les variables sont le numéro du costume de la vignette et sa taille actuelle (en pourcentage) Les commandes permettent de gérer la position sur les calques, les effets visuels, la taille et de faire dire à l’objet des textes.
Capteur La page « capteur » contient 7 variables, 8 tests et deux commandes. Les commandes sont : Réinitialiser le chronomètre Poser une question à l’utilisateur.
Capteur Les variables disponibles sont : La dernière réponse de l’utilisateur Les coordonnées de la souris Le chronomètre Le potentiomètre de sons Le volume sonore La distance entre les vignettes et avec le pointeur de la souris
Capteur Les tests disponibles sont : Toucher (le bord, le pointeur, un autre objet, une couleur) Savoir si le bouton de la souris ou une touche du clavier sont pressés Les caractéristiques de l’objet (position direction, taille, volume sonore…) Savoir si le son et fort (?) Test sur d’autres capteurs éventuellement connectés.
Sons La page « sons » contient deux variables et des commandes. Les variables sont le volume et le tempo Les commandes permettent de jouer des sons enregistrer ou de programmer un mini synthétiseur.
Stylo La page « Stylo » ne contient que des commandes pour piloter le stylo et dessiner sur l’écran. Il manque la possibilité de stocker le résultat.
Opérateurs La page « opérateurs » contient des variables et des tests. Les variables sont des résultats d’opération (il en manque), d’arrondis, de travail sur les chaines de caractère, et de nombre entier pseudo aléatoires. Les tests sont les tests classiques de comparaisons et les opérateurs logiques.
Variables La page « Variable » permet de créer des variables et des listes. Les opérations classiques sont disponibles. Incrémenter est curieusement nommé « changer ». Un test permet de savoir si une variable est dans la liste. Variables et listes sont affichées sur l’écran par défaut mais c’est paramétrable.
Gros plan sur ...
Instructions conditionnelles et boucles Scratch permet deux types d’instructions conditionnelles et quatre boucles. Les instructions conditionnelles sont les classiques SI … ALORS… et SI … ALORS… SINON … Les instructions de boucle sont toutes nommées REPETER. Répéter n fois pour la boucle POUR Répéter si… pour la boucle TANT QUE Il y a deux versions de ces boucles permettant de répéter indéfiniment.
La version 2 La version offline requiert Adobe Air. Plus de catégories : contrôle est séparé en contrôle pour les boucles et attendre et événement pour tout ce qui déclenche des actions. La possibilité de créer un clone d’une vignette a été ajoutée ? Créer des blocs permet de créer ses propres contrôles et donc des routines. Il n’y a pas moyen de fusionner deux programmes ni de mode pas à pas. Possibilité de créer un lutin avec une web cam (attention aux problèmes juridiques avec des élèves. Un éditeur de sons plus intéressant. Enregistrement de vidéos Variables locales