Question

Selon vous, quels langages et outils un jeune débutant en programmation devrait-il utiliser à l'ère moderne ?

Beaucoup d'entre nous ont commencé avec des bases propriétaires et ils ne nous ont pas fait de mal à long terme :) mais étant donné les expériences que vous avez vécues depuis et votre connaissance du domaine, existe-t-il maintenant de meilleures options ?

Il existe des requêtes liées à celle-ci telles que "Les meilleures façons d’apprendre à programmer à un débutant ?" et "Un conseil" à propos du démarrage de programmes pour adultes, auxquels j'ai soumis des réponses, mais les enfants pourraient avoir besoin d'un outil différent.

Divulgation:c'est vraiment difficile de choisir une réponse « correcte » à une question comme celle-ci, donc celui qui aura le meilleur score en quelques jours obtiendra de ma part la « meilleure réponse » en fonction du choix de la communauté.

Était-ce utile?

La solution

je voudrais suggerer Tempête d'esprit LEGO, il fournit une interface intuitive de type glisser-déposer pour la programmation et, comme il est livré avec du matériel, il offre quelque chose de tangible à saisir pour un enfant.De plus, comme il s'agit de "LEGO", ils pourraient le considérer davantage comme un jeu que comme un exercice de programmation.

Autres conseils

Mon travail quotidien est dans une école et, au cours des dernières années, j'ai vu ou enseigné (ou tenté d'enseigner) à divers enfants, en nombre variable, des cours de programmation.

Les enfants sont tous différents : certains apprennent vite, d’autres non.En particulier, certains ont de meilleures compétences en littératie que d’autres, ce qui fait certainement une différence dans la rapidité avec laquelle ils apprendront les programmes.Je parie que la plupart d'entre nous ici, en tant que programmeurs informatiques professionnels et le genre de personnes qui lisent et publient sur des forums pour le plaisir, avons appris à lire très jeune.Pour ce genre d'enfants, et si c'est votre propre enfant à qui vous pouvez enseigner en tête-à-tête, vous pourriez faire pire que JavaScript - il a l'avantage de pouvoir faire de vraies choses avec lui immédiatement, et le cycle édition-test c'est simplement en appuyant sur "Actualiser" dans le navigateur.Cela devient déroutant lorsque vous commencez à comprendre comment JavaScript fait tout de manière asynchrone et est difficile à déboguer, mais pour un enfant brillant et soumis à un enseignement attentif, ces problèmes peuvent être surmontés.

LEGO Mindstorms est définitivement en tête de liste.La plupart des écoles collent désormais les briques ensemble pour créer des modèles préfabriqués sur lesquels aucun morceau ne peut être arraché, mais cela ne devrait pas poser de problème à la maison.Sur le site Times Educational Supplement (Forum de site Web pour le journal de l'enseignement hebdomadaire du Royaume-Uni), la "quel langage de programmation convient le mieux aux enfants?" Le sujet apparaît assez régulièrement.Beaucoup de recommandations là-bas pour Scratch comme alternative à Mindstorms - un peu plus de liberté que Mindstorms, encore une fois probablement mieux pour l'étudiant le plus brillant qui pourrait également recevoir un fer à souder.

J'ai découvert que les élèves plus lents peuvent toujours avoir des problèmes avec Mindstorms, même si l'environnement de programmation est "graphique" - il se passe encore beaucoup de choses à l'écran, et il y a pas mal de choses à retenir (c'était une version plus ancienne, esprit - refuge Je n'ai pas encore essayé le nouveau et élégant).D'après mon expérience, la meilleure introduction complète à la programmation reste probablement LOGO - en fait un langage considérablement plus puissant que ce que la plupart des gens lui attribuent.L'original Tempêtes d'esprit livre de Seymour Papert (rien à voir avec LEGO - ils ont surnommé le titre du livre pour leur produit), l'un des initiateurs de LOGO, est la référence canonique pour l'enseignement de la programmation aux enfants comme « capacité de réflexion » et pour le concept de Constructionnisme en cours de formation.

Nous avons eu des classes d'enfants de 7 ou 8 ans qui programmaient LOGO.Notez que notre objectif n’est pas d’en faire des « développeurs de logiciels », c’est un cheminement de carrière qu’ils peuvent choisir à un moment donné après 16 ans.Dès leur plus jeune âge, nous essayons de les amener à considérer la « programmation informatique » comme un simple outil parmi d'autres : comment poser un problème à résoudre par un ordinateur, de la même manière qu'ils pourraient utiliser une carte mentale pour les aider à s'organiser. et mémoriser des trucs pour un examen.Aucun enfant pauvre ne devrait être assis et formé aux détails et à l'utilisation d'une langue particulière, il devrait être laissé explorer et comprendre les choses à sa guise.

J'appuie les suggestions de Geoff Phrogram (anciennement KPL), et Alice.

Ma seule autre suggestion est LEGO Mindstorms NXT.Le langage de programmation du NXT est le glisser-déposer, il est très facile à utiliser et peut effectuer des tâches très compliquées une fois que vous l'avez appris.De plus, les jeunes garçons aiment généralement voir les choses bouger.:)

J'ai utilisé Alice et NXT avec de jeunes enfants, et ils l'ont très bien compris.

Deux possibilités sont :

Scratch - développé au MIT - http://scratch.mit.edu/

et

EToys de la renommée One Laptop per Child - http://wiki.laptop.org/go/Squeak

Divulgation complète :Je fais partie de ceux qui ont inventé le langage de programmation pour enfants, qui est maintenant http://www.Phrogram.com, que d'autres ont recommandé ici.Permettez-moi d'ajouter quelques informations destinées aux programmeurs à ce sujet.

Il s'agit d'un IDE de code, plutôt que d'un glisser-déposer ou d'un concepteur.C'était intentionnel de notre part : nous voulions rendre facile et amusante la véritable programmation basée sur du texte, en particulier la programmation de jeux et de graphiques.C'est une différence fondamentale entre nous et Alice et Scratch.Le choix que vous ferez dépendra de l'enfant, de son âge et de ses aptitudes, ainsi que de vos objectifs.Les utiliser en série avec le même débutant pourrait être une excellente solution - si vous faites cela, je recommanderais Scratch, Alice, Phrogram comme commande.Phrogram fonctionne mieux à partir de 12 ans, mais je connais des pères d'enfants de 6 ans qui ont enseigné à leurs enfants avec, et je connais des enfants de 10 ans qui ont appris eux-mêmes avec.

La langue ressemble autant à l’anglais que possible et est aussi minimale que possible.La sauce secrète réside dans la hiérarchie des objets basée sur les classes, qui est encore une fois aussi simple, intuitive et anglaise que possible.La hiérarchie des objets est optimisée pour les jeux et les graphiques.Des modèles 3D sont disponibles, ainsi que des sprites 2D.Le mouvement absolu utilisant les coordonnées de l'écran est pris en charge, ou le mouvement relatif comme les tortues LOGO - Forward(x), TurnLeft(y).

L'IDE est livré avec plus de 100 exemples, des exemples de langage (boucles), des exemples d'apprentissage (tableaux), des jeux et des simulations entièrement fonctionnels (Pong, Missile Command, Game of Life).

Pour vous donner une idée de la façon dont nous avons exploité le langage et l'EDI :avec 27 instructions, vous pouvez piloter un modèle de vaisseau spatial 3D autour d'une skybox 3D, à l'aide de votre clavier.La même chose avec un sprite 2D est de 12 à 15 instructions.

Nous travaillons sur une version de Phrogram compatible Blade qui permettra aux programmes de s'exécuter sur la XBox 360.Ouais, la XBox, sur votre grand téléviseur.Un bon facteur de motivation pour faire démarrer un enfant ?:)

Phrogram inclut la prise en charge de la programmation basée sur les classes, avec des méthodes et des propriétés - mais il ne s'agit que d'encapsulation, pas d'héritage ou de polymorphisme.

Un tutoriel et un guide d'utilisation sont disponibles,

Mon propre ebook est disponible sur Amazon et ailleurs en ligne, "Apprendre à programmer avec Phrogram !", et permet à un débutant de démarrer en programmant le Pong classique.

Phrogram Programming for the Absolute Beginner, de Jerry Lee Ford, Jr., est également disponible, en livre de poche, sur Amazon et ailleurs.

Pour un enfant, j'irais avec Alice.N'importe quel enfant appréciera mieux l'interaction glisser-déposer qu'Alice utilise que d'essayer de se rappeler comment épeler et ponctuer n'importe quel langage de programmation.Il/Elle apprendra les structures de base de la programmation (conditionnelles, boucles, etc.) et éprouvera le plaisir de construire un programme animé qu'il pourra montrer à d'autres membres de sa famille ou à des amis.

Une classe d'informatique pour débutants du collège communautaire local utilise Alice pour enseigner la programmation indépendamment de la langue.Il fournit une bonne base pour passer ultérieurement à la programmation dans un langage particulier (ou quelques langages).

J'ai récemment vu une présentation sur Pied Vert (un environnement d'apprentissage basé sur Java pour les enfants).Ça avait l'air génial.Si j'avais des enfants, j'essaierais

Lien vers la présentation

C'est un environnement très ludique, dans lequel vous pouvez commencer avec des méthodes très basiques.Les enfants apprennent à penser de manière orientée objet (vous ne pouvez pas instancier un animal, mais vous pouvez instancier un chat).Et plus ils s'améliorent, plus vous pouvez découvrir Java pour/avec eux.

j'irais avec Gratter, quelques points à ce sujet.

  • C'est un langage de programmation graphique.Il n'est pas basé sur du texte (cela peut être positif ou négatif).Cela le rend plus intuitif et facile pour les enfants (7 ans et plus).
  • C'est en fait très objet.Les objets avec lesquels vous écrivez ces scripts graphiques sont associés au code et peuvent être réutilisés et déplacés.
  • Très important:des résultats rapides et impressionnants.Les enfants doivent avancer vite et obtenir des résultats pour devenir accros.

J'aimerais noter que même si beaucoup d'entre nous ont commencé à programmer dès leur plus jeune âge en basic ou en logo et que le fait de programmer plus tard dans la vie ne signifie pas que ce sont de bons langages pour commencer.Je pense que les enfants d'aujourd'hui ont de bien meilleures options, comme Scratch ou Alice.Les langages basés sur du texte (python, ruby, basic, c# ou même c) dépendent de bibliothèques et d'outils externes (éditeurs, compilateurs), tandis que quelque chose comme Alice ou scratch est tout compris et enseignera aux enfants (non destinés aux adolescents) les concepts de programmation.Plus tard, ils pourront avancer et approfondir leur apprentissage.

Vérifier Phrogramme (anciennement KPL) et Alice

Je dirais:donnez à l'enfant un vrai C64, parce que c'est comme ça que j'ai commencé.Mais aujourd'hui...Je dirais Ruby, mais Ruby est un peu trop chaotique.BASIC serait meilleur à long terme.Le traitement est facile à apprendre et il s’agit essentiellement de Java.

La raison pour laquelle je recommande un C64 est qu'il est BASIC, mais vous devez quand même apprendre certaines choses liées à l'ordinateur, comme le modèle de mémoire, les pixels, les caractères, les cartes de caractères, les nouvelles lignes, etc.etc, si vous voulez faire des choses plus avancées.De plus, si votre enfant trouve cela ennuyeux, vous savez que son cœur n’est vraiment pas intéressé par le codage.

Je présenterais LOGO.C'était quelque chose qui était enseigné dans mon école primaire.Il donne un feedback presque immédiat et enseignera des concepts de programmation vraiment basiques.Déplacer cette petite tortue peut être très amusant.

Pour un enfant, j'irais avec Alice.

Voici un autre vote pour Alice.Mes 4 enfants ont eu beaucoup de plaisir à travailler avec et à apprendre les concepts de base de la programmation.Bien sûr, pour eux, il s'agit avant tout de socialiser avec des fées et des ogres, mais bon sang, le foutu système hérité sur lequel je travaille pourrait également utiliser des fées et des ogres.

Je recommanderais Python, car il est très concis et expressif.Cela semble moins susceptible d'être frustré au début, mais offre également beaucoup de place pour apprendre des concepts plus avancés.

Créateur de jeux pourrait être une autre approche.Vous pouvez commencer simplement avec un développement simple par glisser-déposer, puis introduire une programmation plus avancée au fur et à mesure.Le livre L'apprenti du Game Maker :Développement de jeux pour débutants propose un certain nombre d'exemples de jeux et vous guide à travers les étapes nécessaires à leur création.

Je pense que python est une bonne alternative ;c'est un langage très puissant et on peut aussi faire facilement beaucoup de choses (pas ennuyeux du tout).

Vérifier Grincer développé par Alan Kay qui pensent que la programmation devrait être enseignée dès le plus jeune âge.

Quel âge?Beaucoup d'entre nous ont commencé à utiliser BASIC à un moment donné, mais avant cela, j'ai appris les concepts d'enchaînement de commandes, de variables et de boucles avec LOGO.Comprendre comment dessiner un cercle avec un triangle qui ne peut aller qu'en ligne droite et tourner a été ma toute première réussite en programmation.

Modifier:Cette question et ses réponses me font me sentir vieille.

Bien que _pourquoi ne lui ait pas donné beaucoup d'amour au cours de la dernière année, pendant un moment, j'étais vraiment enthousiasmé par Hackety Hack.Je pense que la clé pour la plupart des nouveaux programmeurs, en particulier les enfants qui sont plus que susceptibles de se désintéresser des choses, est le retour instantané.C’était la chose vraiment merveilleuse à propos de Hackety Hack :quelques lignes de code, et tout à coup vous avez quelque chose devant vous qui fait quelque chose.Il existe quelques applications similaires destinées à des choses comme le dessin de graphiques (dont l'une sur laquelle j'ai brièvement aidé Nathan Weizenbaum, Griffonner!).Les enfants ont simplement besoin d’un retour positif indiquant qu’ils font régulièrement quelque chose de correct, sinon rien ne les intéresse pour la tâche à accomplir.Ce que je pense que l'avenir est pour apprendre aux enfants à programmer, c'est une sorte de DSL construit sur un langage avec une syntaxe conviviale (ceux-ci incluraient, sans doute, Ruby, Python et Scheme) dont le but est de fournir un environnement intuitif pour construire des langages simples. jeux (par exemple, Tic-Tac Toe ou Hangman).

Je pense que vous devriez les commencer en C.Plus tôt ils pourront maîtriser les pointeurs, mieux ce sera.

Voir Comprendre les pointeurs et Dois-je apprendre le C.

Je pense que la première question est :quel genre de programme serait-il intéressant de créer ?L'une des choses qui m'a fait débuter dans la programmation quand j'étais enfant (en BBC Basic puis en QBasic) était la facilité d'écriture de programmes graphiques.Je pourrais écrire quelques lignes de code et voir mon programme tracer immédiatement une ligne sur l’écran.

Ce que j'ai vu de plus proche de ce genre de simplicité récemment sont les bibliothèque pygame pour python et Traitement, un ensemble de bibliothèques Java avec un IDE.

J'imagine que pirater des pages Web serait une autre bonne façon de commencer :cela impliquerait HTML, Javascript (en utilisant une bibliothèque comme jQuery), peut-être PHP ou quelque chose du genre.

Quels que soient les outils que vous proposez, l’essentiel est qu’il soit facile de démarrer immédiatement.Si vous devez écrire vingt lignes de code correct et comprendre comment appeler le compilateur avant de voir des résultats tangibles, les progrès seront lents.

Il existe déjà de nombreuses bonnes suggestions ici.Je suis vraiment d'accord avec Kronikarz.Procurez-vous un ordinateur (ou un émulateur) rétro qui vous intéresse et enseignez avec cela.Pourquoi un ordinateur rétro ?Basic est intégré.Créer des sons et des graphiques primitifs est une tâche triviale.La vraie affaire pourrait être meilleure qu'un émulateur car elle sera un peu plus fascinante pour un enfant habitué à ne voir que des appareils modernes.

Comme j'ai dit ici, j'irais pour Pays des grincements et le célèbre Conduire une voiture exemple (propulsé par Grincer).

La syntaxe Smalltalk est simple, ce qui est idéal pour les enfants.

Et plus tard, au fur et à mesure que l'enfant évolue, il peut apprendre des concepts plus complexes et même très avancés qui sont également dans Squeak (ex.programmation d'applications Web complètes avec refactorisation automatisée et tests unitaires automatisés !).

Et comme @cpuguru et @Rotem l'ont dit, Scratch (également basé sur Squeak) est également génial.

Je pense que Java pourrait être un bon choix simplement parce que vous pouvez créer facilement des interfaces graphiques et voir des « choses sympas » se produire.Pour la même raison, peut-être n'importe lequel des langages .NET.J'ai également entendu de bonnes choses sur les langages de script (Ruby et Python, notamment) pour apprendre aux enfants à programmer.

Eh bien, s'ils sont jeunes et n'ont pas appris leur ABC, vous pouvez les essayer sur BF - pas de ces lettres et chiffres embêtants à gérer.

Je vais me chercher un manteau.

Skiz

J'irais avec ce que j'aurais aimé savoir en premier :un simple boitier MS-DOS et l'assembleur intégré (debug).C'est formidable de vraiment apprendre et comprendre les bases de la conversation avec un ordinateur.

Si cela ne fait pas peur à un enfant, alors j'irais au "niveau supérieur" et présenterais C.Cela ne devrait pas être difficile étant donné que le concept de base des pointeurs, des registres et des instructions en général est alors bien compris.

Cependant, je ne sais pas vraiment où aller ensuite.Faites le grand saut vers Lisp, Haskell ou des langages abstraits similaires ou devrait-il y avoir des langages simples orientés objet (peut-être même C++) ou cela ferait-il plus de mal que d'aide ?

En regardant Alice, je vois qu'il est "conçu pour les lycéens et collégiens".Il semble y avoir une autre langue/version appelée Alice qui raconte des histoires qui est "conçu pour les collégiens"

Page de téléchargement d'Alice

Je pense Contexte Art gratuit pourrait être un bon choix, avec la sortie de graphiques, cela rend l'apprentissage très amusant grammaire sans contexte.

Essayez [Guido van Robot][1].C'est une excellente introduction à la robotique, et c'est un excellent moyen d'initier les enfants au côté programmation (par rapport au côté « construction des robots »).

Smalltalk n'a-t-il pas été conçu dans un tel but ?Je pense que Ruby serait un bon choix, en tant que descendant de Smalltalk.

Je sais que dans les premières années du lycée, on nous a « appris » le logo et, étrangement, le HTML.Après cela, la progression est passée aux macros dans MS Office, suivies par VBA de base, puis par Visual Basic.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top