Comment apprendre la programmation aux enfants ?


#1

Simple curiosité, comment vous-y prenez-vous ? Quel genre d’exercices ?

Je pense que c’est une excellente idée que d’enseigner quelques rudiments de logiques aux enfants, même très jeunes. Pour ceux d’entre eux qui accrochent, il n’y a pas d’age pour apprendre la programmation :)


A quel age faut-il apprendre à programmer ?
#2

Il y a plusieurs associations/événements qui ont pour but de démocratiser l’apprentissage de la programmation aux enfants. Tu peux regarder notamment Programatoo, Devoxx4Kids ou encore Mix-TeeN.


#3

J’ai déplacé un message dans le sujet : A quel age faut-il apprendre à programmer ?


#5

Je n’ai pas vraiment d’opinion construite sur le sujet, mais il me semble que des langages comme Smalltalk (et Pharo) ont été pensés pour être facile d’utilisation et de raisonnement et qu’ils ont le mérite d’instituer dans l’esprit des gens ce qui est réellement fondamental en orienté Objet (la notion de message, de mon point de vue).
Par contre, si je devais conseiller à quelqu’un de plus jeune que moi, un langage pour s’initier, il est évident que je conseillerais OCaml ;)


#6

En colo de programmation, le meilleurs ami de l’animateur est RPG Maker :) Extraordinaire et pour tous les niveaux.

“Branche conditionnelle”, “boucle”, “processus parallèle”…


#7

C’est rigolo parce que Grim et moi avons travaillé (et travaillons toujours) pas mal sur RPG Maker. Le fait que le langage interne de script soit en Ruby rend le logiciel raisonnablement extensible et créer des patchs pour une communauté de non programmeurs c’est un exercice assez complexe (en terme d’interface). Notre plus belle proposition est un outil appelé l’Event Extender (disponnible ici : http://funkywork.github.io/EE) qui étend les commandes du logiciel et offrent plus de flexibilités. (Tu peux, si ça t’intéresse, trouver une forme avancée de cet outil ici : http://github.com/funkywork/RME).


#8

Pourtant, la plupart des gens qui étudient OCaml (à l’université, en prépa, en école…) s’en souviennent comme d’un langage terne, inintéressant, purement théorique, dans lequel on ne peut rien faire de concret. Est-ce vraiment un si bon choix ? Est-ce qu’on ne manque pas, dans l’écosystème OCaml, d’outils et de bibliothèques permettant d’apprendre à programmer “en s’amusant” ?


#9

Je pense que le principal problème de l’apprentissage de OCaml à la fac, pour l’avoir vécu, c’est le fait que l’on nous l’apprend par sa couche impérative, qui, pour le coup, est assez ennuyante (même si on peut trouver beaucoup de points positifs dans son modèle Objet).
Par contre, le langage, utilisé par sa couche fonctionnelle est réellement intéressant (fun et ludique ;) ).


#10

Assez intéressant, fun et ludique pour un enfant, même, disons, à 14 ans ?


#11

Entièrement d’accord, j’ai eu un module d’Ocaml l’année dernière, la spécificité était que l’on nous interdisait tout aspect impératif du langage pour nous forcer à en découvrir les aspects fonctionnels. J’ai été agréablement surpris par ce langage, autant pratique qu’élégant.

Il nous arrive de faire des activités, pour les lycéens qui veulent apprendre à developper, durant lesquelles on utilise CodeCombat, une plateforme de type RPG où l’on apprend le JavaScript pour se faire combattre des héros. Plutôt ludique, je pense que ca peut s’appliquer à plus jeune que des lycéens.


#12

Deux articles de Xavier Dupré plein de suggestions :
http://www.xavierdupre.fr/blog/2014-04-10_nojs.html
http://www.xavierdupre.fr/blog/2014-07-12_nojs.html

sebsauvage liste également de nombreuse resources vidéo-ludiques dans ses liens.


#13

J’utilise Scratch dans le cadre des Coding Gouters que j’anime. Ça marche super bien et même les enfants aussi jeune que ~8 ans peuvent le comprendre. Google a un projet très similaire aussi, Blockly.


https://blockly-games.appspot.com/?lang=fr


#14

J’ai découvert récemment avec mon fils de 11 ans Petit Computer, sur Nintendo DS. Plus qu’un langage de programmation, c’est une véritable boîte à outils, avec une base de données de personnages, objets et éléments de décors. Le langage en lui-même est fortement inspiré du Basic (ça me rappelle de vieux souvenirs…) et l’aspect programmation de jeux est évidemment très enthousiasmant pour un enfant de cet âge!


#15

Apprendre à faire aimer les math ? C’est tout bête mais quand j’étais à l’école (au collège) j’étais toujours un des meilleurs de ma classe en math, c’est une matière que j’aimais bien et je pense que ça ma beaucoup aider à me diriger vers le développement web bien des années plus tard, car au final quand on code c’est un peu comme les math, c’est de la logique pure et dure et pour comparer, créer une fonctionnalité pour un blog par exemple, ça peut être comme résoudre un problème en math, il faut trouver des solutions, tester et trouver ce qui cloche si ça ne marche pas. Voilà, c’est une idée comme une autre à analyser :)


Faut-il être bon en math pour être développeur ?
#16

Aux Etat-Unis, Code.org marche plutôt bien, voici la vidéo d’introduction.
Même le président Obama a participé à l’une de ces fameuses “Hour of Code” !

Le principe est simple, une grosse abstraction ludique en drag n drop de bloc de code.

Que pensez-vous du fait d’abstraire à ce point le code ?


#17

Notre ami Rasmus a parlé de http://scratch.mit.edu/ , utilisé par son fils, au forum PHP de Lyon, cette année. J’y ai jeté un coup d’oeil et ça a l’air pas mal :)


#18

Il est vrai que OCaml souffre d’une mauvaise réputation à la fac et seul une minorité continuent leurs chemins avec ce langage. Mais pour le coup, je pense pas qu’il faut blâmer le langage mais surtout l’aspect national de cette décision et sa désorganisation. Je suis sûr que si les cours d’OCaml étaient faits par quelqu’un appartenant au milieu OCaml (comme c’est le cas à Paris 7 par exemple), tout le monde y trouverais son compte.

Maintenant, tout le monde ne sait pas coder en OCaml, tout le monde n’a pas la même affinité à OCaml et c’est particulièrement vrai pour les professeurs en informatique à qui on impose (peut être pour un protectionnisme du patrimoine français puisque qu’OCaml est français) d’apprendre ce langage aux étudiants. Il en résulte donc (comme une majorité des cours à la fac) une approche en effet terne et inintéressant du langage.

En vrai, OCaml est un très bon langage pour un apprentissage poussé de l’informatique théorique puisqu’il se focalise entre autre sur la correspondance de Curry-Howard et je pense qu’un vrai informaticien à tout intérêt à apprendre ce langage (ou un langage comme Haskell ou encore Scala qui se basent sur la même idéologie) pour enfin entrevoir une liaison concrète entre l’informatique technique et l’informatique théorique. Bien entendu, ce n’est pas avec un « 10 minutes with OCaml » qu’on y parvient.

Au delà, depuis pas mal d’année désormais, OCaml fait l’effort de devenir de plus en plus mainstream dans le sens où il embarque désormais un package manager, un build system et un bon écosystème. Ce qui peut amener un aspect fun dans les cours avec ce langage.

Enfin, je pense pas que ça soit un langage fait pour les très petits puisque ce qui est réellement intéressant dans OCaml reste son aspect théorique (lambda calcul, inférence des types, pattern-matching, etc …) très conséquent qui peut être la base de pas mal de R&D dans le milieu de l’entreprise (ce qui est le cas chez Facebook par exemple).


#19

Dans le même (bon) esprit, Code Club (www.clubcode.org) se base aussi sur Scratch, le niveau avancé étant en Python…


#20

J’ai récemment découvert Lightbot qui est très bien pour s’initier à la logique de la programmation.


#21

Génial ! Je ne connaissais pas. C’est vraiment bien fait. Je vais tester sur mon fils de bientôt 7 ans :smile: