L’idée d’initier les jeunes à la programmation n’est pas nouvelle. La programmation a été un sujet abordé dans les années 1970 et a été le point d’entrée de l’usage pédagogique des ordinateurs en classe à l’école primaire (Harrari, 2000 ; Baron & Boulc’h, 2012 ; Béziat, 2012).
Dans les années 1990, l’idée d’initier les enfants à programmer a été supplantée par l’objectif de maîtrise de logiciels spécifiques et l’acquisition de compétences logicielles (Bruillard, 1997 ; Béziat, 2012). Aujourd’hui, l’apprentissage de la programmation refait surface dans l’objectif de former les jeunes à acquérir des compétences qui vont au-delà d’une simple maîtrise des logiciels pour leur permettre de comprendre l’univers technique et ses logiques (créativité, structure). Des centaines, voire des milliers, d’applications existent en effet. Leur point commun est d’aborder la programmation de manière simplifiée et ludique. Scratch (MIT) et Light-Bot (Lightbot Inc.) font partie des applications les plus connues dédiées à l’apprentissage de la programmation par les enfants. Scratchest basé sur un langage simple orienté objet et permet aux enfants de programmer des histoires interactives, des jeux et des animations qu’ils pourront partager en ligne avec leurs cercles d’amis. Light-Bot est une application mobile qui s’adresse aux enfants à partir de 4 ans. Elle initie au langage et aux concepts de base de la programmation sans qu’il soit nécessaire de taper la moindre ligne de code.
Les industriels, les acteurs de l’éducation et différentes associations lancent des initiatives à ce sujet : événements, lieux dédiés, concours sont mis en place pour encourager les enfants à programmer. En France, des événements comme les « coding goûters» se multiplient, réunissant parents et enfants de 5 à 15 ans pour un moment collectif de programmation, de partage et de détente.
Pourquoi former les élèves à la programmation ?
Dans les discours – scientifiques, politiques, journalistiques, associatifs – qui encouragent les élèves à se former à la programmation, des argumentations sur l’acquisition de compétences sont avancées. Mais de quelles compétences s’agit-il ?
Mendelsohn (1985) parle d’initiation à la pensée informatique et assimile la situation de programmation à une situation de résolution de problème. Selon lui, la situation de résolution de problème se définit par trois critères : l’état initial (le projet et l’objectif du programmeur), les règles du jeu (syntaxe du langage de programmation et fonctionnement du microprocesseur) et l’état final (construction de la liste d’instructions qui conduit au résultat escompté). A ce titre, la programmation est une activité permettant de développer chez un élève sa faculté d’analyse et de projection, sa créativité, sa logique de raisonnement et sa capacité à se mettre en action.
Brennan et Resnick (2012), deux chercheurs du MIT (Massachusetts Institute of Technology), avancent d’autres intérêts pédagogiques de la programmation. Selon eux, la découverte et l’apprentissage de la programmation donnent aux élèves la possibilité d’exprimer leurs idées à travers l’objet de médiation qu’est la technologie numérique ainsi que de renforcer chez eux l’esprit de collaboration et de communication. Selon eux toujours, dans une activité de programmation, les élèves sont amenés à créer avec et pour les autres. En même temps, ils peuvent développer leurs compétences à collaborer et à communiquer dans un groupe ainsi que leur propre capacité à réaliser.
Dans tous les discours et surtout ceux tenus par le monde associatif, il est évoqué que l’introduction de la programmation auprès des élèves permet de les pousser à aller au-delà d’une simple utilisation logicielle pour qu’ils soient capables de comprendre non seulement le fonctionnement d’un logiciel ou d’une application mais aussi l’univers technique qui le constitue.
Développer les performances cognitives et démystifier la programmation
Wilson et Moffat (2010), deux chercheurs de l’Université calédonienne de Glasgow, ont voulu vérifier la validité des discours tenus par les concepteurs de Scratch qui stipulent que cet outil est adapté aux personnes n’ayant jamais programmé et qu’il participe à l’amélioration des performances cognitives de ses utilisateurs. Leur problématique de recherche se décline en deux volets. Le premier est d’ordre cognitif et a pour objectif de tester si l’initiation au logiciel pourrait participer ou pas au développement cognitif d’un élève. Le deuxième volet est d’ordre affectif et la question posée par les chercheurs est de savoir si l’utilisation de cet outil peut motiver ou pas les novices pour aller plus loin dans l’apprentissage de la programmation.
Pour répondre à ces questions, ils ont fait appel à une classe de 21 élèves, âgé de 8 et 9 ans. Wilson et Moffat leur ont proposé de suivre 8 cours de programmation pendant une durée de 8 semaines. Chaque cours, hebdomadaire, dure une heure. Les élèves concernés par cette expérimentation ont suivi la totalité des cours. Pour mesurer la progression des élèves dans l’apprentissage, des tests sont organisés à la troisième et à la huitième séance. Un test final a lieu à la neuvième semaine. La comparaison des résultats aux tests permet aux chercheurs de mesurer l’évolution de la capacité des élèves à maîtriser les commandes du logiciel, l’évolution de leur créativité et de leur capacité à réaliser les tâches demandées. La mesure de la progression de l’apprentissage est inspirée de celle du «Cambridge ICT starters1 », un programme dédié à un public âgé de 5 à 14 ans visant à introduire la culture numérique et à transmettre les compétences de base en termes d’usage numérique. Concernant l’évaluation de l’aspect affectif, chaque élève était invité à décrire dans un journal son état émotionnel à chaque fois qu’il sortait d’un cours de programmation.
Les résultats ont donné à voir un niveau de satisfaction des élèves dans l’utilisation du logiciel élevé au bout des 8 séances. Les séances organisées pour introduire la programmation ont permis de démystifier cette activité chez les élèves participants. En ce qui concerne l’aspect cognitif, les notes moyennes des élèves sont passées de 52 % (premier test) à 64 % (troisième test), ce qui marque une progression en termes de compétences numériques. L’analyse de l’entretien que Wilson et Moffat ont mené auprès de l’enseignant confirme ce résultat : l’enseignant ayant indiqué que l’utilisation de l’application rend les élèves plus enthousiastes et augmente leur rythme d’apprentissage.
D’autres études amènent à des résultats comparables, à l’exemple de celle menée par Komis et Misirli en Grèce en 2013. Ces chercheurs ont étudié les processus de construction d’algorithmes et de programmes par des élèves de maternelle. Leur étude a eu lieu dans 7 classes d’école maternelle de la ville de Patras en Grèce et concerne 108 élèves. Ils ont conçu un scénario pédagogique basé sur l’utilisation de robots de plancher programmables et ont formé les enseignants. L’objectif du scénario est d’entraîner les élèves à contrôler, à manipuler et à construire un programme qui pilote le jouet. Pour cela, les élèves doivent résoudre un problème qui consiste à le mener vers un objet précis. Il a été prévu dans le scénario que les élèves planifient le trajet optimal et le verbalisent (conception et verbalisation de l’algorithme), rédigent ensuite un programme par cartes de commandes (codage de l’algorithme), l’appliquent avec le robot (exécution de l’algorithme), et enfin, corrigent ce programme si l’objectif n’est pas atteint (test et correction de l’algorithme). La construction séquentielle des algorithmes, le débogage des programmes et les stratégies de programmation développées par les élèves sont les trois éléments qui ont été analysés dans cette étude. Komis et Misirli concluent que les élèves de 4 à 6 ans qui ont participé à l’expérimentation étaient capables de construire des programmes séquentiels à l’aide des commandes graphiques, à les transférer sur l’interface tangible du jouet programmable et à les corriger. Ils en déduisent que ce type de jouets programmables peut être introduit dès l’école maternelle en tant qu’outil à potentiel cognitif pour le développement des compétences des élèves.
Former les élèves aux concepts
Wilson, Hainey et Connolly (2013) de l’Université d’Ecosse de l’Ouest se sont demandé dans quelle mesure l’initiation à Scratch des élèves du primaire leur permettait de comprendre les concepts associés à la programmation. A titre expérimental, ils ont donc observé 60 élèves de 8 à 11 ans issus de trois classes d’une école primaire de Glasgow. Après 8 semaines de cours de programmation à raison d’un cours d’une heure par semaine, les élèves étaient invités à programmer un jeu. Deux possibilités de création leur étaient proposées : soit concevoir un nouveau jeu selon leur propre inspiration, soit adapter un jeu existant en lui apportant des modifications. Les jeux construits par les élèves étaient ensuite évalués par les chercheurs, le but de l’expérimentation étant de déterminer si l’expérience de création a permis (ou pas) aux élèves de mieux comprendre les concepts de programmation.
Les indicateurs sont répartis en trois catégories : la maîtrise des concepts de programmation, l’organisation des codes et le design du jeu créé. Pour la première catégorie, sont évalués l’ordonnancement séquentiel, l’itération, la création des variables, les conditionnels, la gestion des événements, la logique booléenne, la coordination et la synchronisation, le dynamisme au niveau de l’interaction. La deuxième catégorie d’indicateurs se rapporte à l’organisation des codes : les noms de variables, les fonctions, les procédures utilisées. La troisième catégorie est en lien avec le design du jeu créé : l’utilisabilité, l’originalité, la personnalisation et la clarté des instructions. Une question correspond à chacun de ces indicateurs dont la réponse sera notée de 0 à 3. Par exemple, pour l’indicateur « l’ordonnancement séquentiel », les chercheurs ont posé la question suivante : « Les blocs sont-ils disposés suivant un ordre systématique permettant au programme de s’exécuter correctement ? » Une note de 1 est attribuée si le jeu proposé répond favorablement à la question et de 0 dans le cas contraire. Il en est de même pour les autres indicateurs.
Les élèves ont donc créé 29 jeux. 93 % des jeux présentés montrent une réelle maîtrise des séquences, 90 % une bonne gestion des événements, 86 % des conditionnels, 55 % des itérations. En termes de codes, 72 % des jeux montrent une maîtrise des variables. Et enfin, au niveau du design, 97 % des jeux ont un design fonctionnel et 97 % sont personnalisés. Les chercheurs ont donc conclu que les 8 semaines de cours ont effectivement permis aux élèves d’assimiler des notions de programmation.
Conclusion
Selon les études présentées, l’apprentissage de la programmation pourrait aider les élèves à développer leurs capacités à résoudre un problème en les initiant à raisonner de manière séquentielle et ordonnée, à découvrir et à s’intéresser de plus en plus à l’informatique. Les différents outils d’apprentissage de la programmation à disposition de la communauté éducative permettent à l’heure actuelle d’ouvrir cette activité réservée auparavant aux informaticiens et de la rendre accessible aux plus jeunes. Le défi d’une telle initiative est de familiariser les enfants à la logique de pensée et de raisonnement informatique, non pas de former des futurs programmeurs. Sa réussite dépend donc de la manière dont se déroule la transmission des concepts auprès des élèves. Elle nécessitera un outillage pédagogique d'éducation à la culture numérique capable de susciter l’intérêt des élèves et d’aborder de manière simplifiée un sujet requérant une capacité à conjuguer rigueur (être conforme aux règles et aux normes) et créativité (être imaginatif pour trouver une solution originale).
Note : 1 http://www.cie.org.uk/programmes-and-qualifications/cambridge-primary/cambridge-ict-starters/
* Ny Aina Rakotomalala Harisoa - Chargé d’expérimentations (Direction de la recherche et du développement sur les usages du numérique éducatif)* - Chercheur associé au laboratoire Communication et Solidarité (EA 4647 – Université de Clermont-Ferrand)
Date de publication : 07/10/2015Article publié sur le site : http://www.cndp.fr/agence-usages-tice/que-dit-la-recherche/apprendre-a-programmer-84.htm
Auteur : Ny Aina Rakotomalala Harisoa