======================= Scratch, from scratch ======================= (pas mal comme phrase d'accroche, non ?) .. image:: _static/cat.jpg Introduction ============ Scratch est un outil du **MIT Media Lab** (2003) pour apprendre à programmer dès le plus jeune âge. Il est conçu pour être utilisable par des enfants en âge de lire, mais beaucoup s'en servent plus tard, y compris pour l'introduction à l'algorithme et à la programmation à l'université. C'est un **langage graphique**. Les seules choses que vous aurez à écrire sont les texte à afficher, les valeurs des variables, les noms des fonctions et le nom du fichier dans lequel vous voulez sauvegarder votre prose. Il y a actuellement deux versions sur le marché, Scratch 1.4 et **Scratch 2**. Le 2 est bien mieux que le 1.4 à de nombreux égards, notamment car il permet de faire des blocs personnalisés, mais le 1.4 est intéressant aussi, entre autres parce que beaucoup de projets "1.4" circulent sur le Web. Il est disponible sur **toutes les plateformes** (Linux, Windows, Mac) et il existe même des versions Android et IOS. Vous pouvez **l'utiliser directement en ligne**, dans votre navigateur, ou bien en version bureau. Il existe en anglais, en **français**, et dans bien d'autres langues. Initialement conçu dans l'esprit "programmation événementielle", pour faire des animations et des mini-jeux, il permet en fait de faire passer de nombreux concepts de programmation. Quelques projets triés sur le volet, pour vous mettre l'eau à la bouche ======================================================================= * Un sujet d'actualité : https://scratch.mit.edu/projects/92621587/ * Un jeu bien connu : https://scratch.mit.edu/projects/1979494/ * Un autre jeu bien connu : https://scratch.mit.edu/projects/2345919/ * Des fractales : https://scratch.mit.edu/studios/33129/ Installation, pré-requis et liens utiles ======================================== Si vous acceptez d'utiliser Flash dans votre navigateur, vous pouvez directement programmer en ligne. Sinon, il va vous falloir télécharger et installer Scratch, et pour cela, il faut accepter d'utiliser Air. De de maux, choisissez le moindre :) .. note:: Notez que l'installation en local est souvent bien pratique : quand vous allez à un Coding Goûter sans Wifi, quand Eduroam est trop lent, quand vous voulez occuper vos enfants dans le train, etc. Quelques liens utiles : * Lien de téléchargement : https://scratch.mit.edu/scratch2download/ * Documentation d'installation sous Ubuntu : https://doc.ubuntu-fr.org/scratch (vous pouvez toujours tenter l'install par paquets, mais ils en sont toujours à la 1.4). Qui utilise Scratch, et dans quel cadre ? ========================================= **Les enfants !** ... dans les coding goûters, à l'école, à la maison après les coding goûters, etc. Par exemple, MixTeen [#mixteen]_ organise ses propres coding goûters avec la MMI et avec MixIT. Il existe plein d'autres coding goûters en France [#codinggouters]_. **Les ados :** de plus en plus de collèges et lycées se mettent à Scratch parce que c'est très accessible. Les ressources partagées par les enseignants du secondaire foisonnent sur le Web. **Les adultes "non" informaticiens :** des organismes de formation comme le CNAM ou l'IREM [#irem]_ utilisent Scratch pour "initier à la programmation" des publics variés. **... et enfin, les universitaires !**. L'initiative la plus parlante est probablement celle du fameux cours CS050 [#cs050]_ de Harvard qui commence par Scratch. Ils ont même leur espace dédié sur le site de Scratch [#harvardscratch]_. À Toulouse, on utilise Scratch pour l'introduction à l'algorithmique en IUT [#toulouse]_. .. [#mixteen] https://mixteen.github.io/ .. [#codinggouters] http://codinggouter.org/doku.php .. [#irem] http://irem.univ-reunion.fr/spip.php?article184 .. [#cs050] http://online-learning.harvard.edu/course/cs50-introduction-computer-science .. [#harvardscratch] https://scratch.mit.edu/users/cs50/ .. [#toulouse] http://www.iut-tlse3.fr/moodle-old/pluginfile.php/120141/mod_resource/content/0/scratch/InitiationAlgo_Scratch.pdf Que peut-on faire avec Scratch ? ================================ Un beau dessin valant mieux qu'un long discours, nous allons passer à la pratique... mais pour ne pas oublier, il faut que je vous parle de : * Comment s'organise l'interface * Ce que c'est qu'un *Sprite*, ou Lutin en français * Ce que sont les scènes et les costumes * Pourquoi il est important de savoir faire des puzzles pour jouer avec Scratch * Ce que sont les blocs personnalisés * L'importance de la créativité * La courte liste des limites de Scratch (impossibilité d'interagir avec des sources de données extérieurs, difficulté à traiter des données, pas de bases de données, pas de génération de sorties, pas d'outils dédiés pour le débugage, lenteur, etc.) Peut-on faire des fonctions avec Scratch ? ------------------------------------------ Euh. Oui. Peut-on faire de la récursivité avec Scratch ? ---------------------------------------------- Euh. Oui. Peut-on faire ________ avec Scratch ? ------------------------------------- Euh. Oui. Et puis, de toute façon, si on ne peut pas nativement, vous n'avez qu'à développer votre propre extension... Vous êtes informaticiens non ? **Vous voulez une preuve ?** Références ========== Ressources pédagogiques en français ----------------------------------- * Une montage de ressources pédagogiques en français, par nos amis québécois : http://squeaki.recitmst.qc.ca/PageAccueil * Leur page dédiée à la pédagogie : http://squeaki.recitmst.qc.ca/LaPedagogie * Traduction française de l'ouvrage de Jeremy Scott : https://wiki.inria.fr/wikis/mecsci/images/1/15/Starting_from_Scratch_TUTOR_FR_MCC_V0.pdf * Un guide sur l'informatique créative : https://files.inria.fr/mecsci/CreativeComputingFr/CreativeComputing20140806_FR_ttfrancais.pdf Ressources pédagogiques pour tous les niveaux --------------------------------------------- * L'aide officielle de Scratch (une mine d'or) : https://scratch.mit.edu/help/ * Le wiki de Scratch (on y trouve aussi bien de la doc que des tutos et des propositions d'exercices, et parfois de corrigés) : http://wiki.scratch.mit.edu/wiki/Scratch_Wiki_Home * La communauté des éducateurs de Harvard (donc, d'un certain niveau) : http://scratched.gse.harvard.edu/ Les ressources plutôt pour les enfants -------------------------------------- * Les cartes Scratch (super génial pour débuter avec les jeunes) : https://scratch.mit.edu/help/cards/ * Les studios de Scratch (possibilité de chercher dans les studios français) * Tempête d'idées chez nos amis Québécois : http://squeaki.recitmst.qc.ca/ScratchIdeesProjets Sources d'inspiration --------------------- * Turtle graphics : https://scratch.mit.edu/projects/11816261/ * Scratch et la géométrie : https://www.citizenmaths.com/how-to-use-scratch-in-citizen-maths/ * Découvrir les lois de la physique : http://acces.ens-lyon.fr/acces/classe/numerique/outils/logiciels/scratch-un-outil-pour-linitiation-a-la-programmation Documentation technique sur Scratch ----------------------------------- * Pour en savoir plus sur les blocs personnalisés : http://wiki.scratch.mit.edu/wiki/Custom_Blocks * Pour en savoir plus sur la récursivité : http://wiki.scratch.mit.edu/wiki/Recursion * Pour créer ses propres mods : http://wiki.scratch.mit.edu/wiki/Scratch_Modification Des articles au cas où vous ne soyez pas encore convaincus : ------------------------------------------------------------ * http://www.open.edu/openlearn/science-maths-technology/computing-and-ict/computing/learning-programming-scratch * http://breakoutmentors.com/even-harvard-uses-scratch-to-teach-beginner-programmers/