POURQUOI ENSEIGNER LA PROGRAMMATION AUX ENFANTS

Autour du monde, la programmation conquiert des écoles. Pourquoi il faut l’enseigner ? Est-ce que tout le monde doit savoir coder ? Quels sont les avantages à gagner de cette formation ? Et enfin, comment introduire la programmation dans les premières années de l’école primaire ? Lisez cet article et découvrez les réponses vous-même.

Les défis posés devant l’éducation contemporaine n’ont jamais été aussi grand qu’aujourd’hui. Le monde moderne se développe et change tellement vite que les méthodes d’enseignement traditionnelles, fondées sur l’acquisition directe de connaissances, deviennent de plus en plus obsolètes chaque jour. La réalité évoluant à cette vitesse nous empêche de prévoir les connaissances dont nos élèves auront besoin à l’avenir. Jadis, les jalons de la civilisation humaine émergeaient toutes les quelques générations. De nos jours, ils apparaissent beaucoup plus souvent et toutes les preuves démontrent que cette tendance se poursuivra. L’omniprésence de l’Internet et la disponibilité des smartphones aussi y jouent un rôle, car les connaissances cachées dans des manuels en papier peuvent être consultées partout dans le monde, sur-le-champ. Par conséquent, il n’est plus nécessaire de connaitre beaucoup d’information par coeur.

Les temps dynamiques ont produit de nouvelles tendances à l’éducation. Depuis des années, les écoles ont essayé de développer plus la créativité, la réflexion logique, la résolution de problèmes et la coopération. Malgré la réalité en constante évolution, ces compétences sont toujours utiles et permettent aux gens de s’adapter facilement aux environnements nouveaux.

Une des méthodes prometteuses, souvent mentionnées dans ce contexte, c’est apprendre à coder.

QU’EST-QUE C’EST LA PROGRAMMATION ?

La programmation, aussi appelée le codage, a une grande variété d’applications. Les programmes contrôlent nos ordinateurs, les serveurs bancaires, les sites Web, nos tablettes, nos smartphones, nos machines à laver et même nos ascenseurs. La programmation équivaut à la création des instructions pour les ordinateurs variés. Les premiers programmes ont été écrits en code machine – une séquence de nombres en forme binaire (faite des chiffres 0 et 1), lisible pour les processeurs. Par exemple, un fragment de programme ressemblait à ceci : 0000 0010 0000 0001 0000 0011 0100. Pour une machine, exécuter ce programme était facile, mais pour un homme, même un spécialiste qualifié, déchiffrer un tel fragment de code était difficile, parfois impossible.

Afin de rendre le codage plus efficace, il était nécessaire de créer des langages de programmation : les ensembles de commandes basés sur des mots au lieu des nombres, équipées d’une syntaxe spécifique qui peut être traduite dans le code machine sans aucune ambiguïté. Depuis le temps des premiers ordinateurs, de nombreuses (plus de 1000) langues ont été créées et chaque année, on invente plus encore. Il n’y a pas de langage « parfait » ou universel, qui pourrait être appliqué partout, mais la technologie en constante évolution nous oblige à rechercher de nouvelles méthodes de programmation plus efficaces. Malgré leur multitude, ces langues différentes ont beaucoup en commun – vous pouvez l’examiner sur le site 99-bottles-of-beer.net, où le même programme est écrit dans une variété de langages de programmation.

MÊME UN ENFANT PEUT CODER

« Les ordinateurs changeaient et toujouts changent le monde autour de nous, et les programmeurs sont toujours essentiels. Moi-meme, j’étudiais FORTRAN et je sais que beaucoup d’entre nous sont intimidés par ce langage, mais ça ne devrait pas le cas. La programmation est devenue beaucoup plus accessible pour les enseignants et les élèves, dont notre pays a besoin. »

Randi Weingarten,
President, Présidente de la Fédération américaine des enseignants

On entend souvent que la programmation informatique est une compétence des spécialistes dans les domaines STIM (Science, Technologie, Ingénierie et Mathématiques), qui ont de la connaissance et du pouvoir de créer quelque chose à partir de rien en utilisant seulement un clavier et un compilateur. Ils sont les créateurs de la technologie. Pour nous, les profanes, la programmation demeure de la sorcellerie. Ironiquement, nous l’utilisons quotidiennement sous la forme de programmes, de sites Web ou d’applications. Mais on a le pouvoir d’éliminer cette division. Le monde d’aujourd’hui exige que les nouvelles générations participent activement et créent de nouvelles technologies, pas seulement les utilisent passivement. Notre tâche est de les préparer. Heureusement, de nombreuses années de recherche ont engendré de nombreux outils capables d’initier les enfants au codage dès le début de l’école.

En 1960, mathématicien Seymour Papert a déjà étudié les possibilités de programmation comme un outil d’enseignement. Inspiré par la théorie du développement cognitif de Jean Piaget, Papert a créé le premier langage de programmation pédagogique destiné à enseigner l’informatique et les mathématiques : Logo. Seymour Papert est mort en 2016, mais sa recherche pluriannuelle a conduit, directement ou indirectement, à presque tous les accomplissements acquis dans ce domaine à ce jour. L’ensemble révolutionnaire LEGO Mindstorms a été le résultat de la coopération entre le groupe LEGO et le groupe de recherche MIT Media Lab, dirigé par Papert. En fait, le nom de l’ensemble a été inspiré par le livre pionnier de Papert: « Mindstorms: Children, Computers and Powerful Ideas ». Son influence est également reconnue par les créateurs du célèbre langage de programmation graphique Scratch. Grâce aux efforts de MIT, de Tufts, de LEGO et de beaucoup d’autres, le codage est devenu une compétence beaucoup plus réalisable pour les étudiants. De plus, le codage peut être enseigné même par ceux qui n’ont jamais programmé auparavant.

Langages de programmation éducatifs

Les langages de programmation éducatifs ont habituellement la forme graphique, ou graphique mélangé avec texte. Pour coder, il faut choisir d’un nombre limité d’instructions dans la bibliothèque, puis les connecter de manière logique – comme ça, un programme est créé. Le processus est basé sur la méthode de glisser déplacer et les instructions ressemblent à des blocs colorés avec différentes icônes ou textes. Cet environnement est visuellement attrayant et élimine les premières erreurs de syntaxe, un cauchemar de chaque programmeur débutant. Certaines langues bannissent également les erreurs logiques de l’algorithme : les blocs qui ne fonctionnent pas ensemble ne peuvent pas être connectés. Même les enfants qui ne savent pas encore taper peuvent créer des programmes.

BÉNÉFICES DE LA PROGRAMMATION A L’ÉCOLE

Avantage dans le marché de travail

« Notre politique sur Facebook consiste à recruter autant des ingénieurs talentueux que possible. Il n’y a pas assez de personnes avec la formation et ces compétences aujourd’hui. »

Mark Zuckerberg
Fondateur de Facebook

On commence avec des arguments faciles à évaluer. Selon plusieurs estimations, le marché de l’emploi aura besoin de plus en plus de spécialistes TIC. A présent, l’économie numérique se développe à un rythme plus rapide que l’économie mondiale en général – sept fois plus rapide, pour être précis. Il est de notre intérêt d’aider les enfants et les adolescents intéressés à coder à devenir professionnels dans ce domaine. Selon l’Agenda numérique pour l’Europe publié en 2014 par la Commission européenne, le marché européen aura besoin de 900 000 spécialistes des TIC en 2020. [1]

Le savoir-faire de programmation n’est pas limité au domaine de TIC. De plus en plus de postes nécessitent des connaissances de codage dans les tâches liées à la création et à la modification de sites Web simples, d’applications, de blogs, à la gestion de magasins en ligne, etc.

« La technologie et les ordinateurs sont au cœur de notre économie de l’avenir. Pour être préparé pour les demandes du 21ème siècle – et pour profiter de ses opportunités – il est essentiel qu’aujourd’hui plus de nos étudiants apprennent des compétences de base en programmation, peu importe le métier qu’ils souhaitent poursuivre. »

Todd Park
Directeur de la technologie des Etats Unis

Ces exigences concernent aussi des professions complètement non techniques. L’agenda publié par la Commission européenne estime que, à présent, 90% de tous les emplois nécessitent au moins de compétences informatiques de base. Par coïncidence, malgré l’accès croissant à la technologie, 50% des employés ont des compétences insuffisantes dans ce domaine. Donc, on observe une lacune importante dans l’expertise. Remplir cet écart au cours des prochaines années est l’une des tâches les plus importantes de l’éducation aujourd’hui. Selon les observations, dans la majorité des systèmes éducatifs nationaux, cette lacune se forme au cours des 12 premières années d’éducation. Les compétences développées au cours de cette période ne correspondent pas à celles requises dans les universités ou sur le marché du travail. [1] [2]

Alphabétisation numérique

Apprendre à coder apporte des bénéfices beaucoup plus profonds que la préparation professionnelle. En 2012, l’Estonie a lancé un programme-pilote visant à enseigner la programmation des étudiants à partir de la première année. Cependant, les Estoniens n’ont pas l’intention de créer une nation d’informaticiens au cours des vingt prochaines années, mais plutôt d’éduquer la société, qui sera capable d’utiliser la technique, les ordinateurs et l’Internet de manière plus consciente et plus intelligente.

Apparemment, Mitch Resnick de MIT Media Lab partage cette approche : « Donc, les jeunes d’aujourd’hui ont beaucoup d’expérience et beaucoup de connaissances sur l’interaction avec les nouvelles technologies, mais ils créent avec des nouvelles technologies et s’expriment avec des nouvelles technologies beaucoup moins. Presque comme s’ils savaient lire, mais non pas écrire avec de nouvelles technologies. » [3]

La programmation devient une compétence de plus en plus important, qui graduellement se transforme dans une compétence de base. L’alphabétisation numérique de plus en plus souvent apparait dans la meme catégorie que l’aptitude de savoir lire, écrire et calculer. Dans le monde, où c’est inimaginable de vivre sans technologie, ces comparaisons ont du sens.

Avantages pour le développement et l’éducation

« Apprendre à coder fait les enfants se senter autonomes, créatifs et plein d’assurance. Si nous voulons que les jeunes femmes conservent ces traits à l’âge adulte, une excellente option est de les exposer à la programmation dans leur jeunesse. »

Susan Wojcicki
Vice-Présidente de Google

Pas tout le monde se rend compte que l’apprentissage du codage comporte de nombreux avantages, qui ont peu à faire avec la technologie. Des recherches diverses suggèrent que l’apprentissage de la programmation influence positivement les compétences cognitives et sociales des élèves. Les enfants exposés à l’informatique de base, enrichi par la pensée algorithmique rudimentaire et des constructions logiques, ont montré des progrès dans divers domaines académiques et sociaux. Des améliorations ont été visibles en termes de mémoire visuelle, de compétences cognitives et linguistiques. De plus, ces enfants ont notablement améliorée leur méta-cognition, c’est-à-dire le savoir comment apprendre, qui est relié à l’auto-surveillance et à l’apprentissage indépendant. [4] [5]

Pensée computationelle

Le terme « pensée computationnelle » a été utilise pour la première fois par Seymour Papert dans les années 80. Selon Jeanette Wing, la principale prometteuse de cette idée, la pensée computationelle est le processus impliqué dans la formulation de problèmes et de leurs solutions de manière que leur résolution puisse être effectuée par un ordinateur. On peut décrire cette approche plus simplement : « penser comme un informaticien ».[6]

La pensée computationnelle encourage des compétences douces qui sont rarement introduites dans la classe. La programmation enseigne la résolution de problèmes, la décomposition (comment partager de grandes tâches en sous-tâches), le raisonnement logique, la correction d’erreur. Ces compétences sont utiles dans les domaines STIM traditionnels, par exemple la science et l’ingénierie, mais ils s’appliquent également dans d’autres domaines, y compris les sciences sociales ou l’art. [7]

Évolution du raisonnement logique

Le raisonnement logique est directement lié à la compréhension des constructions logiques. Les ordinateurs complètent les tâches en suivant un certain algorithme – un ensemble prédéterminé d’étapes, qui doit être exécuté pour atteindre un certain objectif. Tant que les étapes sous-jacentes ne changent pas, on peut prévoir l’opération de l’ordinateur. L’algorithme exécuté sur les mêmes données toujours donnera le même résultat.

Formation de la créativité

Lorsqu’ils créaient des cartes interactives pour la Fête des Mères, il était visible qu’en meme temps ils devenaient aisé avec les nouvelles technologies. Que veux-je dire par « aisé »? Je veux dire qu’ils ont pu commencer à s’exprimer et à exprimer leurs idées. Lorsqu’on maîtrise la langue, on est capable d’écrire une entrée dans un journal, raconer une blague ou écrire une lettre à un ami. Et c’est similaire aux nouvelles technologies. En écrivant, créant des cartes interactives pour la Fête des Mères, ces enfants ont clairement prouvé qu’ils sont aisés avec les nouvelles technologies.

Mitchel Resnick,
MIT Media Lab

La connaissance des élémentaires compétences de programmation crée une nouvelle méthode de s’exprimer. Si on l’utilise correctement, le codage donne des résultats tangibles dans le développement de la créativité des enfants. Comme un pinceau et une toile, qui permettent d’exprimer ses pensées et ses sentiments sous forme de peinture, la programmation donne l’occasion de démontrer sa créativité en composant différentes pièces : animations, jeux, images interactives ou présentations. La formation de la créativité est plus possible, plus simple et diversifiée est le langage. Scratch est un excellent exemple, car sa structure a été inspirée par les briques LEGO (les créateurs de Scratch ont déjà travaillé avec LEGO, afin de créer LEGO Mindstorms). Lorsqu’elle joue avec des briques, l’enfant connecte les éléments disponibles dans l’ensemble selon son intuition. Les enfants construisent et créent des modèles qui les inspirent à poursuivre leur travail. Dans cet example, la créativité se développe presque organiquement. Le processus est pareil avec Scratch, où les enfants connectent des blocs intuitivement pour créer des programmes simples qui les inspirent à construire encore plus. Si on combine la programmation avec d’autres intérêts, comme la musique, le film ou l’animation, la créativité des enfants améliore encore plus. Cette méthode encourage un groupe d’élèves plus large à s’intéresser à la programmation et les équipe d’outils complémentaires pour s’exprimer. [9]

Apprendre sur les erreurs

Quand on code, c’est impossible de complètement éviter les erreurs. Certaines erreurs sont frustrantes – chaque programmeur a expériencé la recherche d’une virgule manquante durant quelques heures. Mais la catégorie d’erreurs, qui font partie du processus créatif, est également significative. Par défaut, les programmes sont conçus après plusieurs essais et erreurs, ils nécessitent également des tests répétitifs à chaque étape. Grâce à cette méthode, l’erreur dans la programmation gagne une valeur éducative. Contrairement aux autres méthodes, l’erreur devient un défi, pas un échec. Prenez en considération les mots de Seymour Papert, qui a établi comment certains enfants sont retenus par les méthodes d’enseignement traditionnelles qui stigmatisent les erreurs :

La question qu’on pose à propos du programme n’a pas pour objectif de savoir si c’est bon ou mal, mais s’il est réglable. Si cette façon de regarder les produits intellectuels serait transposé à la façon des gens voient la connaissance et son acquisition, nous pourrions tous être moins intimidés par nos craintes de « se tromper ». [7]

Les outils modernes pour enseigner la programmation se sert des erreurs comme instruments supplémentaires. Dans les langages graphiques, les erreurs de syntaxe n’existent pas (difficile de trouver une syntaxe dans un bloc coloré) et les instructions peuvent être connectées seulement si leur succession est logique.

Développer les capacités cognitives

L’apprentissage de la programmation apporte des avantages comparables aux bénéfices du bilinguisme. Malgré des différences évidentes, apprendre à coder est assez similaire à apprendre une autre langue. Dans la petite enfance, l’esprit est plus susceptible d’acquérir une nouvelle langue, surtout si le processus d’apprentissage est caché derrière les activités quotidiennes, adaptées à l’âge de l’enfant. La recherche axée sur les capacités des enfants à apprendre le codage montre que les compétences de programmation se développent le plus rapidement à un âge pareil. La méthode d’enseignement est également importante. Elle doit être adaptée à l’âge, présentée comme une forme de divertissement et liée à d’autres processus de développement, tels que l’art, les mathématiques ou la lecture.

COMMENT ENSEIGNER LA PROGRAMMATION ?

Pour assurer le développement du raisonnement logique et de la pensée computationelle, la programmation devrait être introduite le plus tôt possible. Néanmoins, cela est un défi pour les enseignants qui doivent présenter la programmation en manière compréhensible pour les enfants.

Outils adaptés à l’âge et aux capacités des élèves

Encourager les enfants à commencer de coder est plus facile qu’on ne le pense. Les jeunes étudiants naturellement acceptent de tels défis, tant que les sujets et les projets sont présentés à un niveau approprié et liés à des activités amusantes à l’âge des élèves. Le marché offre une multitude d’outils pour enseigner de la programmation, tous adaptés à différentes étapes de développement et de compétence. Pourtant, certains outils surpassent d’autres en termes d’efficacité et sont souvent recommandés par des experts.

Jeux

La plupart des enfants sont familiers avec les jeux vidéo et les applications de jeux. Donc, quand la possibilité de créer leur propre jeu apparait, ils acceptent un tel défi avec enthousiasme. Il existe deux approches différentes pour utiliser le jeu dans les leçons de codage.

Dans l’apprentissage basé sur le jeu, le processus éducatif est intégré au contexte du jeu. En remplissant les tâches, les élèves gagnent des points et passent aux niveaux prochains. De tels outils sont appliqués non seulement dans la programmation, mais aussi dans d’autres matières scolaires. Il existe de nombreuses applications qui s’appuient sur un mécanisme pareil, par exemple : Tynker, Alice, CodeCombat et autres.

La conception de jeux se concentre sur l’apprentissage par le codage et l’enseignement par la création. Cela permet aux enfants de devenir des concepteurs de jeux, des programmeurs, des créateurs de leur propre jeu, ce qui assure ils gagnent des compétences réelles et augmente leur estime de soi. Indiscutablement, cette méthode d’enseignement est la plus efficace et la plus inspirant parmi des recettes disponibles aujourd’hui. Par mettant en existence des équivalents de jeux préférés, les enfants deviennent des sorciers. Scratch est un logiciel excellent pour la programmation de jeux simples.

Robotique

La robotique est encore un autre domaine capable d’inciter les enfants à apprendre le codage. Les mécanismes tangibles (les étudiants devraient les construire eux-mêmes) rendent le codage plus réel. Il est beaucoup plus facile pour les élèves de saisir le code lorsqu’un robot l’exécute dans le monde physique, juste à côté d’eux.

Seymour Papert l’a déjà connu en 1997 :

Par donnant aux enfants la possibilité de programmer des comportements dans des véhicules, des robots, des dinosaures et d’autres constructions de leur propre design on a ouvert un nouvel horizon sur leur engagement : de nombreux enfants qui étaient peu intéressés par la programmation graphique ont montré un enthousiasme élevé par cette sphère nouvelle. En même temps, de nombreux types de structures qui n’étaient pas spontanément repris dans l’ancien contexte, maintenant semblaient évidents pour les enfants. La conclusion n’est pas que les constructions LEGO sont des meilleurs objets pour enseigner la programmation que les graphiques, mais que cette variété offre plus de chances pour plus d’enfants de se rapprocher de plus de concepts. [10]

Il y a de nombreux kits de robotique éducative disponibles sur le marché, mais ceux qui semblent avoir le plus de valeur ont été créés par LEGO Education: LEGO WeDo et LEGO Mindstorms. Leur efficacité est basée sur le penchant des enfants pour les briques LEGO, mais ils présentent d’autres avantages aussi. Équipés de capteurs et de moteurs, ces ensembles peuvent être contrôlés avec un logiciel de programmation visuelle de glisser-déposer adapté aux enfants (c’est également possible de programmer les ensembles WeDo dans Scratch !), donc c’est un outil excellent pour les étudiants de 6 ans (WeDo), mais aussi pour ceux qui ont 99 ans (Mindstorms).

Dans le contexte de la robotique, il vaut mentionner ses autres valeurs éducatives. En opérant dans la réalité tangible, les robots enseignent les principes de la physique et la mécanique. En construisant des robots avec des briques ou d’autres éléments, les enfants améliorent leurs compétences motrices, dont il semble qu’on a récemment oublié. En choisissant des constructions, des capteurs ou des thèmes convenables, on peut aussi apprendre la biologie, la chimie, l’histoire ou l’art. Par conséquent, la robotique est un domaine véritablement interdisciplinaire.

OU COMMENCER ?

Avant d’introduire la programmation dans votre classe, vous devriez considérer plusieurs aspects cruciaux : l’âge de vos élèves, leur expérience en codage, la durée de cours et votre équipement. Une autre chose à garder à l’esprit est combien de temps vous pouvez consacrer à la préparation avant la classe. Ces critères vous aideront à choisir les outils les mieux adaptés à vos besoins. Pour les jeunes enfants (âgés de 6 à 8), le meilleur choix serait les robots programmables dans les langues graphiques, qui ne nécessitent pas de ses utilisateurs de savoir lire ou écrire. Vous pouvez utiliser des robots pré-fabriqués (par exemple Dash et Dot) ou des ensembles robotiques (LEGO Education WeDo) qui vous offrent plus d’options, mais nécessitent plus de temps en classe. Si vos élèves ont déjà eu leur 8e anniversaire, vous pouvez les introduire à un logiciel légèrement plus difficile, tel que Scratch (c’est également possible de programmer des robots LEGO WeDo) ou créer des robots plus avancés avec LEGO Mindstorms EV3. Bientôt, nous publierons sur notre blog un article approfondi sur les outils d’enseignement de robotique et de programmation.

OAprès avoir sélectionné vos outils et préparé l’équipement, vous devez organiser votre programme de classes. Dépendant du temps, de l’habileté et de l’expérience de l’enseignant, elle peut créer le programme elle-même ou choisir l’un des cours disponibles sur le marché. Si vous souhaitez savoir plus sur la sélection du bon équipement pour votre atelier de robotique, ou comment démarrer avec Scratch, essayez nos webinaires en ligne. Nous vous encourageons également à vous familiariser avec nos cours de robotique et de programmation, qui sont basés sur LEGO WeDo, Scratch et LEGO Mindstorms.

SOMMAIRE

« Soit que vous souhaitiez découvrir les secrets de l’univers, soit vous voulez simplement poursuivre une profession au 21ème siècle, la programmation informatique de base est une compétence essentielle à apprendre. »

Stephen Hawking,
Physicien théorique, cosmologue et auteur

Le développement de la technologie et les changements mondiaux en liés modifient la programmation : non plus limité aux classes extra scolaires, elle s’inscrit au programme scolaire. Ce changement est provoqué par l’écart entre les compétences des diplômés et les exigences des universités et du marché du travail. De plus, les recherches confirment que la programmation développe des compétences douces, telles que la réflexion logique, la résolution de problèmes, la créativité ou le travail en équipe – les compétences les plus précieuses dans le temps modernes. L’introduction rapide de la programmation dans les écoles constituera un grand défi pour le système éducatif. Néanmoins, nous ne devrions pas en avoir peur. Beaucoup d’années de recherche ont produit des outils pratiques qui dès les premières années de l’enseignement scolaire introduisent la programmation dans des classes facilement et de manière qui permet aux élèves de prendre part activement. L’apprentissage de la programmation en s’appuyant sur des jeux et des robots est amusant pour les enfants et, en même temps, les équipe d’outils et de compétences dont ils pourront profiter de nombreuses années.

BIBLIOGRAPHIE

  1. „Digital agenda for Europe”, Commission Européenne, 2014.
  2. Valerie Barr, Chris Stephenson, „Bringing computational thinking to K-12: What is involved and what is the role of the computer science education community?”, 2011
  3. Mitch Resnick, „Let’s teach kids to code”, TEDxBeaconStreet, 2012.
  4. Marina Umaschi Bers, Designing digital experiences for positive youth development: From playpen to playground., Oxford University Press, 2012.
  5. Douglas Clemens, „Young Children and Technology.”, Forum on Early Childhood Science, Mathematics, and Technology Education, 1998.
  6. Jeannette M. Wing, „Computational thinking benefits society” Social Issues in Computing, 2014.
  7. Seymour Papert, Mindstorms: Children, Computers, and Powerful Ideas, 1980.
  8. Beth Gardiner, „Adding Coding to the Curriculum”, NY Times.
  9. Mitchel Resnick, John Maloney, et al., „Scratch: Programming for All”.
  10. Seymour Papert, „Educational Computing: How Are We Doing?”, 1997.
By | 2017-08-22T16:08:05+00:00 janvier 20, 2017|