Scratch

De EduTech Wiki
Aller à la navigation Aller à la recherche

En préparation : Page d'introduction général à Scratch d'un point de vue théorique/conceptuel. Pour approche technique voir les pages des différentes versions.

Idéalement cette page devrait proposer :

  • Présentation du projet Scratch (histoire, finalité, etc.)
  • Exemples d'application dans contexte pédagogique

Introduction

Scratch est un langage de programmation visuel (VPL). Le site web permet de programmer, d'enregistrer et de partager les réalisations, simplement en créant un compte gratuit.

Scratch permet aux enfants et adolescents d'appréhender les nouvelles technologies et de comprendre ce qu'il se passe réellement lorsqu'ils les utilisent. Le constat a été rapidement fait, que même si on se réfère aux adolescents comme à des "digital native" peu d'entre eux sont capables de créer leur propre jeu, applications ou simulations. C'est "comme s'ils pouvaient lire, mais pas écrire"[1]. L'habileté numérique n'inclue pas seulement la capacité à écrire des messages, faire des recherches sur internet ou communiquer, mais aussi toutes les compétences de design, de création et d'inventivité que permettent de développer les nouveaux médias. Pour atteindre ce but, il est nécessaire de développer des compétences en programmation.

L'habileté à programmer devient aussi une compétence transversale et ainsi transposable dans d'autres domaines. En programmant, on développe des compétences d'organisation des tâches, de gestion des problèmes et le statut de l'erreur prend une autre dimension, qui n'est pas celle de la faute, mais plutôt d'un essai non concluant.

Histoire

Le groupe Lifelong Kindergarten du Media Lab de MIT, dirigé par Mitchel Resnick, en partenariat avec l'entreprise the Playful Invention Company (Montreal), fondée par Brian Silverman et Paula Bonta, ont développé une première version de Scratch en 2003. Scratch implémente d’une manière dynamique le langage de programmation Smalltalk fondé sur Squeak.[2] La dernière version, sortie en janvier 2019, est programmée en JavaScript. Le code est sous licence Creative Common.

Pour les chercheurs et ingénieurs du MIT Media lab, l'idée de créer un langage de programmation aussi simple d'utilisation que les blocs est venu suite à leur nombreuses collaboration avec Lego pour développer les LegoMeindstroms et autres kits de robotiques. L'idée était de transposer la manière dont les enfants jouent avec les briques de Lego dans un langage de programmation pour le rendre accessible aux plus jeunes et aux plus néophytes. Le design des briques permet de comprendre simplement lesquelles sont utilisables ensemble et la manière de les associer. Le but est de pouvoir essayer d'assembler les blocs de multiples manières en les associant ou dissociant facilement. Le terme même de Scratch fait référence aux DJ de Hip hop qui "bricolent" avec la musique en jouant avec les vinyles afin de créer de nouveaux morceaux en les mélangeant de manière créative, tout comme il est possible de le faire avec les blocs de programmation.

Principe

C'est “un logiciel de programmation visuelle" (VPL) destiné principalement aux enfants, mais aussi aux adolescents, qui permet de créer facilement des histoires interactives, des jeux et des animations. Scratch a été développé dans le but que les personnes qui l'utilisent puissent se l'approprier et y ajouter leur propre contenu. Les développeurs partent du principe que plus les utilisateurs peuvent développer leur propre projet, avec leur propre matériel, plus ils auront envie de l'utiliser et de l'explorer. C'est pour cette raison qu'en développant Scratch, la diversité et la personnalisation sont des éléments incontournables qui influences les décisions de développement.

Dans le processus de conception et de programmation des projets de Scratch, les jeunes apprennent à penser de façon créative, à raisonner systématiquement, et travailler en collaboration".[3] Aujourd'hui, Scratch compte plus de 20 millions de projets partagé et 17 million d'utilisateurs (au 01/03/2017).[4]

Communauté

Scratch a pour slogan « Imagine, Programme, Partage ! ». Le partage est en élément central de la pédagogie de Scratch, que donne aussi la possibilité aux utilisateurs de “recycler des projets existants pour en inventer de nouveaux”. Scratch est “un environnement de développement, de site web, et un lecteur de scripts Scratch” [4] Il permet de rendre utilisable en ligne les projets réalisés, au moyen du plugin Adobe Flash Player lequel transforme les projets Scratch en applications web.[2]

Une communauté hébergée sur le site de Scratch permet de partager les créations avec d'autres participants tout autour du monde. Scratch a comme priorité que cette communauté soit positive, encourageante et motivante en demandant à ses membres de respecter Règles de conduite de la communauté.

Objectifs

Scratch a pour objectif l'enseignement de la programmation aux enfants et adolescents, en mettant en œuvre visuellement des concepts de base tels que les boucles, les tests, les affectations de variables. Il est dynamique tant qu’il permet de modifier le code du programme en cours d'exécution. Le code est inscrit sous forme de briques en couleurs en plusieurs langues, donnant la possibilité à l’enfant de choisir sa langue maternelle.

En utilisant Scratch, les enfants apprennent aussi à découper une tâche en sous-tâches et à résoudre des problèmes selon les principes de la pensée computationnelle.

Au-delà de cet objectif principal et initial, Scratch permet de développer des applications qui peuvent avoir elle-mêmes des objectifs pédagogiques et être utilisées dans des environnements pédagogiques.

Blocs

Les couleurs des blocs, leur signification, fonctionnalités et les éléments
Couleur Signification Fonctionnalités Elements Exemple

Bleu foncé

Mouvements

Ces blocs reprennent tous les déplacements possibles du lutin, ainsi que des blocs pour connaître sa position à tout moment dans la scène. Certains permettent de faire pivoter le lutin sur lui-même (le faire tourner).

move, turn, go to, rotation

Move-scratch-28-01-2020.png

Violet

Apparence

Ces blocs servent à modifier temporairement ou définitivement l'apparence des lutins.

say, think, change color, change size

Say-scratch-28-01-2020.png

Rose

Son

Ces blocs permettent de jouer des sons.

play sound, set volume, change volume

Moew-scratch-28-01-2020.png

Jaune

Evénements

Ces blocs servent pour la plupart à lancer un script quand il se passe une action précise ; les autres servent à déclencher ces événements.

when X then ..., broadcast

Events-Scratch-28-01-2020.png

Orange clair

Contrôle

Ces blocs servent pour la plupart à lancer un script quand il se passe une action précise ; les autres servent à déclencher ces événements.

wait, repeat, if - else

Control-Scratch-28-01-2020.png

Bleu clair

Capteurs

Ces blocs servent à mesurer ou détecter certaines valeurs, mais aussi à poser des questions.

touching color, mouse X, mouse Y

Sensing-Scratch-28-01-2020.png

Vert

Opérateurs

Ces blocs servent à effectuer des opérations mathématiques, à générer l'aléatoire et à analyser des chaînes de caractères.

+, -, <, >, and, or, not

Operators-Scratch-28-01-2020.png

Orange foncé

Variables

Ces blocs permettent de gérer et créer des variables, qui sont des objets contenant une valeur.

set "my variable" to

Variable-scratch-28-01-2020.png

ScratchED

Lors de sa création, Scratch avait été conçu comme outil d'aide à l'apprentissage de la programmation en tant qu'activité personnelle et en dehors des bancs de l'école. Ce projet n'a donc pas été conçu, à la base, pour les éducateurs souhaitant intégrer la programmations dans leurs programmes. Cependant, depuis 2007, grâce à la croissante demande des éducateurs d'avoir la possibilité d'implémenter Scratch dans des programmes éducatifs, Karen Brennan, à l'époque étudiante de troisième cycle (graduate student) du MIT a commencé à développer un environnement qui pouvait répondre à ces besoins. C'est ainsi que ScratchED a pu se développer. Le site ScratchED pour les éducateurs a été mis en ligne en l'été 2009 et a permis aux enseignants intéressés, ou travaillant déjà activement avec Scratch, de pouvoir utiliser ce site pour partager des histoires, échanger des ressources, poser et répondre à des questions, et trouver d'autres éducateurs intéressés par les mêmes sujets. Pour le développement du site, Karen Brennan s'est inspirée à d'autres communauté en ligne dédiée aux enseignants, comme Tapped In (communauté en ligne internationale de professionnels de l'éducation, fermée depuis 2013), Inquiry Learning Forum (communauté pour les éducateurs K-12 et les étudiants universitaires, qui désormais n'existe plus), ou WIDE World (programme de Harvard, qui proposait des cours de perfectionnement professionnel en ligne pour les enseignants, elle aussi non plus existante). Pendant les 10 ans qui ont suivi le lancement du site, 27169 éducateurs du monde entier ont rejoint la communauté en ligne ScratchEd et ont contribué à 354 histoires, 1027 ressources et 4749 messages de discussion. De mai 2009 à mai 2019, le site a reçu 10,35 millions de pages vues par 2,5 millions de visiteurs uniques (Karen Brennan, article consulté sur http://scratched.gse.harvard.edu/about.html, le 03/05/2020).

En début de 2019, Karen Brennan a décidé de transformer le site ScratchED en archive statique pour se dédier à d'autres projets visant à supporter des enseignants souhaitant travailler avec Scratch. Elle a donc crée le Creative Computing Curriculum et les Scratch Educator Meetups. Bien que il ne soit plus possible s'inscrire au site ScratchEd et y contribuer activement, toutes les ressources continuent à êtres disponibles pour être explorés.

Creative Computing Curriculum

Le Creative Computing Curriculum a été développée par les membres du Creative Computing Lab de la Harvard Graduate School of Education - principalement Christan Balch, Michelle Chung et Karen Brennan. Le programme d'études pour Scratch 3.0 et le site web du curriculum ont été réalisés par Laura Peters.

Le Creative Computing Curriculum est une collection de stratégies, suggestions, et activités pour les éducateurs afin de les aider à concevoir une expérience d'introduction à la programmation créative en utilisant le langage de programmation visuelle de Scratch. Les activités sont conçues pour aider à se familiariser et à accroître la maîtrise de la créativité computationnelle et de la pensée computationnelle. La dernière édition du curriculum comprend des images de blocs et de projets, ainsi que des révisions mineures du contenu pour refléter le nouveau site web Scratch 3.0. Cette édition du curriculum est également disponible dans Google Slides sous forme d'unités individuelles, d'activités ou de programme complet.

Le curriculum est composé de 7 unités (plus une Introduction et une Appendix) :

  1. Unité 0 : Démarrage (Getting Started)
  2. Unité 1 : Exploration (Exploring)
  3. Unité 2 : Animations (Animations)
  4. Unité 3 : Histoires (Stories)
  5. Unité 4 : Jeux (Games)
  6. Unité 5 : Aller plus loin (Diving Deeper)
  7. Unité 6 : Hackathon (Hackathon)

Les activités du curriculum sont conçues pour aider les élèves à se familiariser et à mieux maîtriser la créativité et la pensée computationnelle, tout en s'appuyant sur leur créativité et leurs intérêts personnels. En particulier, les activités encouragent l'exploration des concepts clés de la pensée computationnelle (séquence, boucles, événements, conditions, opérateurs, données) et des pratiques clés de la pensée computationnelle (expérimentation et itération, test et débogage, réutilisation et remixage, abstraction et modularisation).

Scratch Educator Meetups

Comme le Creative Computing Curriculum, les Scratch Educator Meetups (rencontres d'éducateurs Scratch) ont a été développé par les membres du Creative Computing Lab de la Harvard Graduate School of Education

Les Scratch Educator Meetups sont des expériences d'apprentissage professionnel pour les éducateurs qui souhaitent enseigner avec l'environnement de programmation visuelle de Scratch. Durant ces événements les éducateurs peuvent partager leurs expériences et rencontrer des autres éducateurs, explorer et apprendre en travaillant sur des projets Scratch, participer à des défis, et réfléchir aux manières d'appliquer ces nouvelles connaissances dans leur environnement professionnel, notamment dans leur classe. Ces événement réunissent des éducateurs de provenance différente (écoles, musées, bibliothèques), avec des profils variés (école maternelle, primaire, secondaire, d'informatique ou de sciences sociales ou visuelles) et différents dégrées d'expertise avec Scratch (novices ou avancés).

Les événements sont organisés régulièrement dans tout le monde, surtout aux États-Unis.

Scratch Jr.

Scratch Jr. est une version simplifiée de Scratch pour tablettes iOS, Androïdes ou Chrombook. Contrairement à Scratch, la version pour tablette utilise des blocs de programmation qui ne contiennent pas d'écriture. Cela permet aux enfants plus jeunes, souvent non-lecteurs, de pouvoir programmer à l'aide de symboles. En effet, à la place d'avoir un bloc "avancer de 10 pas" comme sur Scratch, le bloc contiendra une flèche avec un espace pour noter le nombre de pas. Si l'enfant ne maîtrise pas les nombres, il peut simplement aligner autant de fois qu'il le souhaite le même bloc pour que son personnage avance.

Scratch Jr. offre moins de familles de blocs que Scratch, mais les couleurs gardent la même signification sur les deux plateformes, ce qui permet de passer aisément de l'une à l'autre.

Avec l'apparition des tablettes dans les écoles, ScratchJr devient un outil fréquemment utilisé pour initier les enfants à la programmation.[5]


Scratch et le Constructionnisme

Le constructionnisme affirme que constructivisme fonctionne particulièrement bien lorsque l'apprenant est engagé dans la construction de quelque chose avec une signification personnelle ou sociale (Bruckman, 2006 ; Papert, 1980, évoqués par Brennan, 2015), qui est développé grâce à des interactions avec d'autres personnes (Papert, 1980 ; Rogoff, 1994, évoqués par Brennan, 2015), et qui favorise la réflexion sur sa propre pensée (Kolodner et al., 2003 ; Papert, 1980 évoqués par Brennan, 2015). Brennan souligne que l'apprentissage par les activités de conception, personnalisation, partage et réflexion sont essentiels à la conception d'environnements d'apprentissage constructionnistes (Brennan, 2015). Elle soutient également que toute description du constructionnisme ne peut pas être suffisante aux enseignants pour qu'ils puissent traduire la théorie en pratique dans la conception d'expériences d'apprentissage constructionnistes. Pour ce faire, ScratchEd d'abord, et les Scratch Educator Meetups et le Creative Computing Curriculum par la suite, ont pu créer des opportunités pour les communautés d'enseignants de s'engager dans les mêmes activités de conception, de personnalisation, de partage et de réflexion sur ces thématiques.

Les enseignants intéressés ou travaillant déjà activement avec Scratch ont pu utiliser ScratchEd pour partager des histoires, échanger des ressources, ou poser et répondre à des questions avec la communauté en ligne. Cependant, bien qu'en supportant les besoins des enseignants d'avoir des ressources et pouvoir partager leurs expériences, Scratch ED ne pouvait pas fournir et assurer des expériences constructionnistes (Brennan, 2015). C'est pour mieux supporter le développement professionnel des éducateurs que Brennan a conçu les Scratch Educator Meetups. La communauté en ligne et les meetups mettent l'accent sur la réflexion sur les approches constructionnistes de l'apprentissage plutôt que sur la réflexion sur la mécanique du Scratch en tant qu'outil (Brennan, 2015).

Versions de Scratch

Liens

Bibliographie

  • Brennan K. (2015) Beyond technocentrism: Supporting constructionism in the classroom. Constructivist Foundations 10(3): 289–296. http://constructivist.info/10/3/289
  • Boyer, J.T. Using Scratch for learner-constructed multimedia: A design-based research inquiry of constructionism in practice. Ph.D. thesis, University of Florida.

Ressources

  • Creative Computing Curriculum complet, disponible sur Google Slides

Références

  1. [1], Scratch : Programming for All
  2. 2,0 et 2,1 [2], Wikipédia.
  3. [3], FlossManual.
  4. 4,0 et 4,1 [4] , Scratch_wiki.
  5. [5], Wikipédia.