Archives de
Auteur : Alexandre Amigouet

Et si apprendre à coder à l’école était fait par des professeurs d’arts plastiques ?

Et si apprendre à coder à l’école était fait par des professeurs d’arts plastiques ?

Depuis quelques années, je vois bien la volonté d’apprendre à coder à l’école exprimée par le ministère de l’éducation nationale. J’ai lu pas mal d’articles qui débattent de la pertinence ou non d’apprendre à coder aux enfants directement dans les programmes scolaires. Généralement, je retrouve deux positions entre ceux qui estiment qu’il faut se concentrer sur les « fondamentaux » comme apprendre à lire, écrire et compter ; et ceux qui pensent qu’il faut que les enfants découvrent le plus de choses. Par contre, je vois assez rarement de discussions sur la place du code à l’école.

 

Une volonté d’apprendre à coder à l’école depuis la rentrée 2016

 

Depuis la rentrée 2016, apprendre à coder à l’école est une réalité qui a intégré les programmes de primaire et collège. De mon point de vue, c’est déjà une belle évolution puisque l’on passe d’un apprentissage du numérique orienté sur les usages, sur savoir comment utiliser un ordinateur (et donc être consommateur), à un apprentissage fondé sur la compréhension et la construction du monde numérique (et donc être acteur, constructeur).

Concrètement, l’initiation à la programmation à l’école va commencer à l’âge de 6 ans du CP au CM1. C’est au collège qu’apprendre à coder entre dans les programmes de mathématiques. Au brevet 2017, l’épreuve de mathématiques et sciences comportera des exercices de programmation et d’algorithmique.

« Nous avons fait le choix de nous appuyer sur la mobilisation des enseignants de mathématiques et de technologie » Michel Lussault, président du Conseil supérieur des programmes.

Une approche plus globale pour apprendre à coder à l’école que le cloisonnement dans les mathématiques

 

Le parti-pris est donc d’intégrer l’apprentissage du code à l’école dans les mathématiques. Je ne vais pas insister sur la formation des professeurs de mathématiques pour remplir correctement cette mission ou sur le débat pour savoir si on devrait créer une matière « informatique » à l’école. Je pense que je pourrais en faire un billet de blog dédié 😉

Personnellement, je pense que c’est assez réducteur que de cantonner le code aux mathématiques (même si les mathématiques peuvent être créatives). En faisant ce choix, on accentue les préjugés que la programmation informatique est uniquement une science sans mettre en avant que c’est une façon de penser différemment.

En réalité, apprendre à coder à l’école devrait être possible dans de nombreuses matières. Coder, c’est aussi savoir organiser sa pensée et mieux comprendre le monde. La logique du code permet d’être bien plus créatif que ce que l’on nous présente à travers cette intégration dans les programmes scolaires.

Pourquoi apprendre à coder à l’école ne serait pas plus créatif ?

 

Lorsque j’étais encore à l’école, j’ai adoré mes cours d’arts plastiques. Je n’ai pourtant pas poursuivi mes études dans ce domaine (j’ai été en Fac de Droit) mais ça a été une formidable expérience. En arts plastiques, je n’ai pas appris à dessiner. Ce n’était pas l’objet. C’est une façon de penser que l’on enseigne et les méthodes ne sont que secondaires.

En fait, je suis persuadé que les professeurs d’arts plastiques devraient également apprendre à coder. Avec le code informatique, on peut construire de nombreuses choses et la seule limite est sa propre imagination. La logique du code est assez rapide à assimiler ainsi que les bases. Par contre, développer sa créativité est bien plus complexe.

Faire de la programmation, ce n’est pas une matière purement technique. En fait, ce sont des outils numériques que l’on peut utiliser pour construire le monde de demain et s’épanouir personnellement. L’objectif de l’apprentissage du code n’est pas de faire des ingénieurs.

En réalité, mon interrogation est plutôt de savoir comment nous voulons former nos enfants. Je suis convaincu que le rôle de l’école est de former des gens à penser et à être autonome. Apprendre à coder à l’école n’est donc pas une chose anecdotique puisque cela permet d’ouvrir des perspectives au-delà des sciences.

 Alexandre Amigouet

Histoire pour apprendre à coder – La programmation

Histoire pour apprendre à coder – La programmation

Ce billet de blog est la suite de celui sur le boulier qui évoquait la mécanisation des opérations de calcul. Comme indiqué dans l’article sur le boulier, je souhaite reprendre trois innovations importantes (qui ont des conséquences lorsque l’on veut apprendre à coder) à travers une série de trois billets de blog qui sont :

Qu’est-ce la programmation ?

Les débuts de la programmation remontent au Moyen-Âge avec les  premiers automates. A l’époque, c’était des objets mécaniques qui avaient des mouvements automatiques (d’où leur nom) sans intervention humaine pour effectuer les mouvements. Les humains se contentaient de les … programmer !

Ces automates avaient donc une mémoire limitée à l’aspect mécanique qui pouvait se concrétiser par l’utilisation de poulies, d’engrenages, de courroies, etc.

A la fin du XVIIIème siècle, la programmation a connu une étape importante avec l’industrialisation. On avait besoin de machines capables de répéter des gestes programmés à l’avance par l’homme. Les machines industrielles ont permis dépasser les limites physiques du corps humain.

De nombreuses initiatives sont alors réalisées pour développer la programmation. On peut, notamment, évoquer les recherches du britannique Charles Babbage (1792-1871) sur les « calculateurs ».

BabbageDifferenceEngine

Charles Babbage est considéré comme un des précurseurs de l’informatique. Il est le premier à avoir réalisé une machine qui combine une mémoire et un calculateur programmable. 

« You will be able to appreciate the influence of such an Engine on the future progress of science. I live in a country which is incapable of estimating it. »
— Charles Babbage

Il a commencé à réfléchir à la programmation lorsqu’il était chargé de contrôler des calculs. Comme son travail était légèrement ennuyant, il a réfléchi à des méthodes pour automatiser ces calculs et éviter les erreurs.  Après différents essais, il a commencé à réaliser une machine intitulée le Analytical Engine qui était programmable à l’aide de cartes perforées qui permettaient d’obtenir les résultats (sur une feuille de cuivre) lorsqu’elles étaient insérées dans la machine.

Malheureusement, Charles Babbage n’a jamais réussi à construire une machine complète faute de financement. Cependant, le Science Museum de Londres à construit une de ses machines en 1990 en suivant ses plans et la machine fonctionnait bien comme il l’avait prévu.

La programmation est importante lorsque l’on veut apprendre à coder et son histoire n’est pas aussi récente que l’on pourrait le penser. Aujourd’hui, la programmation est essentiellement numérique mais elle puise ses origines dans ses recherches.

 

Mark Zuckerberg pense que l’on peut apprendre à coder grâce aux jeux vidéo

Mark Zuckerberg pense que l’on peut apprendre à coder grâce aux jeux vidéo

On ne présente plus Mark Zuckerberg, le célèbre fondateur de Facebook. Le 15 mai dernier, lors d’une séance de questions/réponses publiée sur Facebook, il a incité les parents à laisser leurs enfants jouer aux jeux vidéos pour favoriser leur développement intellectuel. Pour Mark Zuckerberg, on peut apprendre à coder grâce aux jeux vidéo et il se base sur son expérience personnelle pour en parler.

« Je ne serais assurément jamais devenu programmeur si je n’avais pas joué aux jeux vidéo étant enfant. » – Mark Zuckerberg

Il y a souvent un débat sur les effets des jeux vidéo sur les enfants. Par exemple, dès qu’il y a une tuerie aux Etats-Unis ou un acte de violence dans la société, on voit se développer des arguments autour du « c’est la faute aux jeux vidéo« .

Cette fois, Mark Zuckerberg explique que c’est grâce aux jeux vidéo que l’on peut devenir développeur. Dans son enfance, son goût des jeux vidéo lui a donné envie de faire des choses pour lui. Il a donc commencé par faire ses propres jeux vidéo seulement pour lui et « ils étaient horribles« . Ce n’était pas grave. Le jeu vidéo a donc été sa porte d’entrée pour apprendre à coder.

Néanmoins, il admet que certaines craintes des parents sont légitimes sur les jeux vidéos mais cela reste la solution la plus simple pour faire aimer les nouvelles technologies aux enfants.

Chez Toxicode, nous apprenons justement à des enfants à découvrir la programmation tout en développant leur propre niveau d’un jeu vidéo. Nos ateliers sont accessibles et on remarque qu’ils sont passionnés par l’exercice. Lors de nos différents ateliers pour apprendre à coder, je suis toujours assez étonné par le silence qui règne dans la salle. Les enfants sont vraiment concentrés.

Je partage donc cette approche pédagogique avec Mark Zuckerberg et je vous invite, si vous avez des enfants, à développer leur curiosité de la programmation que ce soit via des jeux vidéo ou tout autre support.

La nouvelle réforme des programmes scolaires prévoit d’apprendre à coder à l’école

La nouvelle réforme des programmes scolaires prévoit d’apprendre à coder à l’école

Le 13 avril 2015, le ministère de l’Education nationale a publié les projets de programmes pour les élèves du CP à la troisième qui doivent entrer en vigueur pour la rentrée de 2016. Outre la nouveauté de l’élaboration de programmes par cycles de trois ans avec des objectifs de formations, il est question d’apprendre à coder à l’école.

Ce n’est pas une grande surprise puisque l’apprentissage de la programmation à l’école est une préoccupation du gouvernement depuis quelques années maintenant. L’Académie des Sciences, le Conseil National du Numériques et des hommes politiques sont favorables à l’apprentissage du code à l’école. Au contraire, certaines personnalités comme Linus Torvalds estiment qu’apprendre à coder à l’école devrait être une spécialité en dehors du tronc commun.

Ce projet de programme tranche la question puisque ce serait les professeurs de mathématiques qui auraient la charge d’apprendre à coder aux élèves à partir du CE1.

Le projet prévoir que « dès le CE1, les élèves peuvent coder des déplacements à l’aide d’un logiciel de programmation adapté, ce qui les amènera en fin de CE2 à la compréhension, et la production d’algorithmes simples ».

L’idée est de préparer progressivement les élèves à apprendre à coder à l’école dès le cycle 2 (CP, CE1, CE2). Le cycle 3 (CM1, CM2, 6ème) doit permettre au professeur de mathématiques d’apprendre aux élèves à utiliser des logiciels de calculs et d’initiation à la programmation.

En réalité, ce n’est qu’à compter du cycle 4 (5ème, 4ème, 3ème) que le code serait enseigné aux élèves. Les enseignants devront réaliser une introduction de l’algorithmique et de la programmation.

Durant ce cycle 4, l’objectif de l’Education nationale est de développer « l’enseignement du raisonnement, éclairer l’introduction du calcul algébrique et fournir un nouveau langage pour penser et communiquer.  » A la fin de la 3ème, les élèves devront être capable « d’analyser un problème complexe, définir des sous-problèmes, des étapes de résolution ainsi que de traduire un algorithme dans un langage de programmation. »

Concrètement, le projet de programme prévoit que les élèves pourront réaliser des exercices consistants à développer des petites applications ludiques comme une bataille navale, un pong, un tic tac toe, etc. Dans tous les cas, il est précisé que « la maîtrise d’un langage de programmation n’est toutefois pas un objectif du programme. » Il est avant tout question d’une ouverture d’esprit afin d’enseigner une méthode et une réflexion.

C’est un défi que je trouve intéressant et assez cohérent, maintenant il reste un travail de formation des professeurs de mathématiques à réaliser. Je pense que de nombreux professeurs seront heureux de cette évolution des programmes vers l’apprentissage du code. Pour le moment, ce ne sont que des projets de programmes et il va falloir attendre quelques mois pour voir les versions définitives. Néanmoins, on peut observer une tendance qui est récurrente comme l’a démontré l’appel « Culture de l’innovation et de l’entrepreneuriat » favorisant, notamment, l’émergence de solutions pour permettre l’apprentissage du code à l’école.

Illustrations Lou Pine

Notre atelier pour apprendre à coder à la Cantine Numérique Rennaise

Notre atelier pour apprendre à coder à la Cantine Numérique Rennaise

Apprendre à coder est un désir croissant chez de nombreuses personnes. Il vous suffit de regarder le succès de la Codeweek, la multiplication des ateliers autour de l’apprentissage de la programmation ou la volonté politique de l’instaurer à l’école pour mesurer cet engouement.

Chez Toxicode, notre ambition est de proposer des outils pour favoriser cet apprentissage et casser les barrières psychologiques que l’on peut avoir avant de commencer à apprendre à coder. C’est dans cet objectif que nous avons lancé Silent Teacher, un petit outil ludique qui permet de se familiariser avec le code informatique.

Mercredi 14 janvier, nous avons été, avec Pierre Lancien, animer deux ateliers pour apprendre à coder à la Cantine Numérique de Rennes. Nous avons fait le choix de faire deux sessions sur deux plages horaires différentes et nous avons eu deux publics totalement différents !

Notre atelier pour apprendre à coder à la Cantine Numérique Rennaise
Nicolas Leludez avec sa fille jouant aux jeux réalisés lors de la session

La première session était de 14h30 à 18h00, les participants étaient essentiellement des adolescents venus apprendre à coder un petit jeu. Mais nous avons aussi accueilli deux retraités et des adultes attirés par ce monde qu’ils voulaient découvrir. La seconde session était de 18h30 à 22h30, ce sont des adultes de divers horizons qui étaient présents (étudiants, salariés, etc). Malgré les idées reçues, il y avait une part non négligeable de femmes intéressées par l’apprentissage de code.

Notre atelier pour apprendre à coder à la Cantine Numérique Rennaise
Pierre Lancien expliquant comment utiliser l’outil de Toxicode Code n’ Slash

Cet atelier avait pour objectif d’initier chacun à l’apprentissage du code et, pour y parvenir, nous avons développé un outil intitulé « Code n’ Slash ». Pour le moment, il n’est pas encore disponible en ligne mais il le sera dans les prochains mois via notre portail. L’objectif était de permettre à chacun de construire le niveau de son jeu, à sa manière, grâce à des fonctionnalités regroupées dans une documentation. Ainsi, on peut être initié à apprendre à coder tout en s’amusant. Code n’ Slash permet de se familiariser avec la syntaxe de la programmation web, et ce, même sans avoir de notions en programmation ! De nombreux participants à cet atelier n’avaient jamais fait de code de leur vie.

A la fin de l’atelier, chacun pouvait retrouver les niveaux du jeu réalisés par les autres pour les comparer et y jouer. Ce qui est amusant, c’est que chaque personne a utilisé Code n’ Slash à sa manière pour en faire un jeu singulier. J’ai été impressionné par le calme qui régnait pendant la réalisation des niveaux tellement la concentration des « codeurs » était forte !

Je tenais à remercier la Cantine Numérique Rennaise pour nous avoir ouvert ses portes et Nicolas Ledez pour son aide précieuse dans l’animation de cet atelier d’apprentissage du code.

Plus d’informations sur le site de la ville de Rennes : http://metropole.rennes.fr/actualites/les-themes/loisirs/savoir-coder-l-autonomie-dans-un-monde-connecte/

Histoire pour apprendre à coder – Le boulier

Histoire pour apprendre à coder – Le boulier

Lorsque l’on souhaite apprendre à coder, on pense que l’on va apprendre un métier qui est très récent. C’est vrai, si vous apprenez un langage de programmation votre objectif sera certainement de vouloir réaliser des sites web ou des logiciels via un ordinateur. Cela fait partie des nouveaux métiers qui ont vu le jour avec l’essor des nouvelles technologies.

Si je vous demandais à quand remontent les origines des langages de programmation, je pense que la majorité des lecteurs de ce billet de blog estimerait que cela remonte à moins d’un siècle. C’est là qu’il peut sembler y avoir un paradoxe. Même si le métier de développeur web ou de développeur de logiciel est très récent dans notre Histoire, l’origine de l’informatique et des langages de programmation est bien plus lointaine que l’on ne pourrait le penser.

En réalité, l’informatique que l’on connaît aujourd’hui est le résultat final de trois innovations humaines (que je traiterai à travers trois billets de blog) :

  • La mécanisation des opérations de calcul
  • La programmation
  • La notion d’algorithme

Dans ce premier billet de blog, je vais revenir sur la mécanisation des opérations de calcul.

Qu’est-ce la mécanisation des opérations de calcul ?

L’homme a cherché depuis plusieurs siècles des solutions pour calculer plus rapidement. Les méthodes pour compter et calculer peuvent être radicalement différentes d’un endroit du globe à l’autre.

Ainsi, le boulier, essentiellement en Asie, est un outil mécanique utilisé pour calculer, et ce depuis des siècles.

Dans un article du journal Le Monde du 26 novembre 1987 (réservé aux abonnés), un journaliste avait suivi des expériences faites dans des classes pour utiliser le boulier. Il est expliqué que lors de concours de calcul au Japon, le choix du boulier était supérieur à la calculatrice électronique. Le boulier permet même de calculer plus rapidement qu’une calculatrice !

« Avec le boulier, un enfant est capable de raisonner sur un nombre qu’il ne sait pas désigner », observe Mme Josette Huso, institutrice en CP à Grigny.

Le boulier offre la possibilité d’acquérir une réflexion visuelle où l’on va déconnecter le nombre de son aspect abstrait. On ne visualise que des boules. De plus, cela permet de voir les opérations dans leur ensemble. Une addition ou une soustraction sont des opérations pratiquement identiques dans cette méthode de calcul alors que dans les pays occidentaux, on va les traiter comme deux éléments d’apprentissage distincts. Les élèves qui ont appris à calculer avec un boulier sont souvent meilleurs en calcul mental. Ils ont une méthode de calcul différente.

En développement, c’est la même chose. En fonction de la façon dont sera écrit le code, on va avoir une réflexion différente pour arriver à un résultat. C’est pour cette raison qu’il est important de maîtriser les bonnes pratiques de la programmation car cela permet d’avoir un code plus efficace et lisible.

Le boulier illustre le paradoxe que l’on retrouve au Japon mais également dans le développement et l’informatique. Nous avons des outils ultra modernes tout en utilisant des logiques, des méthodes, qui sont ancestrales (même si l’usage du boulier n’est pas nécessaire pour apprendre à coder). Cette méthode est ancienne et les bouliers sont des objets rustiques dont la puissance pédagogique a traversé les siècles.

A l’heure du débat sur la nécessité d’apprendre le code à l’école, cela pourrait commencer par l’apprentissage de certains socles. L’usage d’un boulier dans une classe pourrait, paradoxalement, être un élément de l’apprentissage du code à l’école.

C’est donc assez amusant de constater que nos élèves (ceux qui ont eu des leçons avec un bouliers) « apprennent » depuis des décennies des logiques courantes en programmation à l’école…

Pour aller plus loin, je vous invite à comprendre le mécanisme du boulier à travers cette vidéo et pourquoi pas vous amusez avec un boulier … numérique !

« Boot to Gecko » et cap sur l’HTML5

« Boot to Gecko » et cap sur l’HTML5

Chez Toxicode, nous faisons des paris technologiques et l’un d’eux consiste à miser sur un langage de programmation appelé le JavaScript.

Je ne suis pas développeur donc je ne m’aventurerai pas sur un terrain technique dont je ne maîtrise pas les tenants et aboutissants.

Cependant, nous essaierons de parler de temps en temps ici de la mise en avant du JavaScript car nous estimons que c’est un langage qui est prometteur.

On parlera également de l’HTML5 puisque ce sont des notions étroitement liées. D’un côté, l’HTML5 a un rôle d’affichage et de l’autre côté, le JavaScript a un rôle de pilotage. Dans le langage courant (c’est à dire pour les non-techniques comme moi), on utilise souvent le terme HTML5 pour désigner les nouvelles technologies du web qui englobent le JavaScript, le CSS3… D’ailleurs, l’utilisation du CSS3 combiné au JavaScript est un excellent concurrent au Flash avec un avantage non négligeable qui est d’être compatible sur de nombreux supports.

Cette précision était importante pour mieux comprendre le sujet de ce billet de blog. Les systèmes d’exploitation des Smartphones les plus populaires sont iOS (Apple), Android (Google), BlackBerry OS (RIM) ou encore Windows mobile (Microsoft). Il y a un nouvel acteur qui aimerait percer dans ce domaine et qui est Mozilla. Il s’agit de l’entreprise qui développe le navigateur web Firefox. En restant dans cette lignée, Mozilla est en train de développer un système d’exploitation, baptisé “Boot to Gecko”, dont toutes les fonctionnalités (du SMS aux applications) seront en HTML5.

Comme je l’ai dit précédemment, l’HTML5 est employé pour désigner les nouvelles technologies du web et donc Mozilla compte bien utiliser son expérience dans ce domaine pour réaliser son système d’exploitation. L’expérience de Mozilla est essentiellement présente dans son navigateur Firefox puisque le rôle d’un navigateur web est justement d’interpréter ces technologies.

L’objectif de ce système d’exploitation est d’être orienté web mais on pourra bien évidemment l’utiliser sans être connecté à la toile. La position de Mozilla se démarque des autres systèmes d’exploitation précédemment cités en adoptant un standard du web pour concevoir Boot to Gecko. Un “market place” est disponible pour les développeurs qui aimeraient proposer leurs applications à sa sortie.

Les avantages d’un tel système sont de permettre la création d’applications facilement pour les développeurs, mais également de proposer des téléphones peu onéreux.

C’est un exemple parmi tant d’autres illustrant l’intérêt qui est porté au JavaScript en ce moment et nous ne manquerons pas d’en présenter d’autres à l’avenir sur notre blog.