Initier les élèves à la pensée informatique
et à la programmation avec Scratch
Pierre Tchounikine
Introduction/Résumé
L'enseignement de l'informatique, de façon générale et, notamment, à l'école élémentaire, est actuellement un objet de réflexion.
Il y a sur le sujet des discours très divers, plus ou moins fondés, et également plus ou moins liés aux enjeux sous-jacents (disciplinaires, médiatiques, politiques). Il y a beaucoup d'appels en faveur de cet enseignement, avec des arguments différents, étayés ou pas ; en substance : « cela permet de développer des compétences importantes », « cela développe la créativité des élèves », « c'est moderne », « c'est un domaine scientifique important », « c'est un secteur qui embauche », « mon petit frère adore », ou encore « c'est mon domaine d'activité, donc il est important, donc il faut l'enseigner ». Il y a également beaucoup de confusions (par exemple qu'enseigner l'informatique a pour but de faire des élèves de futurs programmeurs). Il y a enfin des ressources pédagogique mais qui, si l'on n'a pas les idées claires sur ce que l'on veut enseigner, pourquoi et comment, peuvent être difficiles à exploiter.
L'objectif de ce document est d'essayer d'aider les enseignants (et les formateurs d'enseignants) à y voir plus clair. Pour cela, il propose des informations et des réflexions pour connaître et comprendre le domaine, les discours, les programmes et les principales ressources existantes mais, surtout, pour développer une réflexion personnelle sur quoi enseigner, pourquoi et comment.
Le contenu porte sur deux aspects, l'enseignement de « la pensée informatique » et l'utilisation de l'environnement de programmation Scratch. Aborder l'informatique via la notion de « pensée informatique » m'amène à mettre au coeur de la réflexion et de l'enseignement l'algorithmique et la programmation, dans une approche traditionnelle ou orientée « informatique créative ». Ceci ne résume évidemment pas la discipline informatique, et d'autres approches (mettant plus en avant d'autres notions : machine, automate, langage, bases de données, génie logiciel, architecture, composants électroniques, etc.) sont possibles. Je fais ce choix car c'est celui qui me semble le plus approprié pour une initiation à l'école et, par ailleurs, qu'il est cohérent avec ce que l'on trouve dans les programmes de l'éducation nationale. Le support technique que j'utilise est le langage Scratch. Pourquoi Scratch ? Parce que c'est le langage qui s'impose de fait pour le niveau de l'école primaire, et qu'il y a de bonnes raisons à cela. L'essentiel du discours est cependant indépendant de ce langage particulier.
Le texte est principalement écrit pour des professeurs des écoles (instituteurs et institutrices). Il s'adresse donc à des lecteurs qui, pour la plupart, n'ont pas suivi de formation à l'informatique au cours de leurs études. Le but n'est pas de les former à l'informatique (ce n'est pas un cours d'informatique), mais de donner des éléments permettant de comprendre ce que peut être un enseignement de la « pensée informatique » et comment l'aborder. C'est un point d'entrée donc. Pour se lancer dans un enseignement effectif il faut ensuite développer une certaine maîtrise de ce que l'on veut enseigner (comme on le verra, c'est abordable quelle que soit sa discipline d'origine, et ce document est presque suffisant pour cela), puis exploiter les ressources actuellement à disposition (le document présente des exemples réutilisables, pas d'activités-séquences prêtes à emploi ; cependant, des pointeurs vers ce type de ressources sont indiqués).
Étant donné le public cible, le niveau considéré est le cycle 3 (école / CM1 et CM2). Il est cependant possible de faire des choses au cycle 2 et, par ailleurs, certains éléments sont également potentiellement pertinents pour les niveaux collège-lycée (Scratch reste pertinent pour le collège, voire le lycée pour certains aspects ; à ces niveaux, il est possible d'utiliser d'autres langages de programmation, mais les réflexions pédagogiques sont similaires).
Le texte est structuré autour de la liste de questions suivantes :
Qu'est-ce que c'est que la « pensée informatique » ? (définitions, exemples, confusions à éviter).
Pourquoi enseigner l'informatique à l'école primaire ? (arguments, programmes actuels, position personnelle).
Que faut-il faire pour enseigner l'informatique à l'école ?
Quels objectifs pédagogiques peut-on considérer ? (différents objectifs possibles puis discussion autour des conceptions-approches orientées « algorithmique » et « informatique créative » de l'enseignement de l'informatique).
Que veut dire « utiliser Scratch pour enseigner la pensée informatique » ? (principes généraux et différents exemples pour comprendre la différence entre utiliser et faire un algorithme-programme, comment aligner le moyen Scratch et l'analyse pédagogique-didactique, comment utiliser Scratch pour scénariser une situation pédagogique ou comment passer de la production de texte à l'informatique).
Que faut-il comprendre de Scratch en tant qu'enseignant, et comment s'y prendre ?
Comment définir et gérer des situations pédagogiques ?
Quelles difficultés peut-on attendre-anticiper ?
Le texte a plusieurs niveaux de lecture : il est informatif et, sur certains sujets, aborde des questions plus fondamentales. Bien que les premières questions abordées ne soient pas liées à un langage particulier, des exemples Scratch sont présentés dès le début du texte afin de faciliter la compréhension. J'espère pouvoir faire évoluer ce texte et remercie par avance les lecteurs pour leurs commentaires.
Ce que les exemples exemplifient
Les « Remix » sont des exemples de la communauté Scratch repris en l'état ; les autres sont des exemples construits pour expliquer différentes choses. Cette liste d'exemples qui va évoluer est accessible depuis la page Web.
La différence entre utiliser-faire un programme
Un jeu : Fraction Game remix
Un jeu + simulation : The Fraction Attraction remix
Un exercice d'algorithmique : Exo fraction pommes |
La construction de blocs pour aligner analyse pédagogique et Scratch
Jouer sur les variables didactiques : Exo boucle multiplication
Cacher le positionnement en x.y : Dialogue sur 1 scène. |
Différentes façons de faire des animations + ou – interactives (pas toutes très pertinentes)
L'animation de base classique : Dance Party remix
Un dialogue sur une image, avec 1 seul « personnage » micro : Dialogue sur 1 scène (pour généraliser au cas où l'on utilise d'autres personnages : positionner le micro par rapport aux coordonnées des personnages via les blocs « aller à personnage » ; éventuellement, masquer le micro en le réduisant)
Un dialogue avec 2 personnages, simple puis interactif via un Si-Alors-Sinon : Dialogue entre personnages
Évolution d'une histoire : Changement de scènes via des messages
Évolution d'une histoire : Changement de scènes via arrière-plans et boutons
Une « mise en image » : Le Corbeau et le Renard remix
Un projet d'école (réalisation complexe) : La bouteille d'eau en plastique, quel trajet ! remix |
Des exercices « à la Logo »
Tracer un parcours
Dessiner une rosace (commencer par des choses plus simples !) |
Faire faire des Quizz
Un exemple minimal : 2 et 2 font 4 |
Scratch comme un outil de scénarisation
Démarche de résolution d'un problème : Do Val et Cal résolvent un problème (démarche générale, utilisation de variables) |
Ce que c'est qu'un « jeu » (thème de projet possible) programmé avec Scratch
Le fameux Pong : Pong Starter remix
Un jeu plus actuel d'après les étudiants : Angry Birds V.1 remix
Un labyrinthe/quizz : Fraction Game remix |
Pierre Tchounikine
Pierre.Tchounikine@imag.fr
Paru le 29 janvier 2016 sur :
http://lig-membres.imag.fr/tchounikine/PenseeInformatiqueEcole.html
Document complet (30 pages) :
http://lig-membres.imag.fr/tchounikine/PenseeInformatiqueEcole.pdf
Cet article est sous licence Creative Commons (selon la juridiction française = Paternité - Pas de Modification).
http://creativecommons.org/licenses/by-nd/2.0/fr/
|