Frage

Welche Sprachen und Tools sollten Ihrer Meinung nach ein Jugendlicher, der mit dem Programmieren beginnt, in der modernen Zeit verwenden?

Viele von uns haben mit proprietären Basics angefangen und sie haben uns allen langfristig nicht geschadet :) Aber gibt es angesichts der Erfahrungen, die Sie seitdem gemacht haben, und Ihres Wissens über die Domäne jetzt bessere Optionen?

Es gibt verwandte Abfragen zu dieser Frage, z. B. „Die besten Möglichkeiten, einem Anfänger das Programmieren beizubringen?" Und "Ein Ratschlag„Über den Einstieg in das Programmieren für Erwachsene. Auf beide Fragen habe ich Antworten eingereicht, aber Kinder benötigen möglicherweise ein anderes Tool.

Offenlegung:Es ist verdammt schwer, auf eine Frage wie diese eine „richtige“ Antwort zu finden. Wer also in ein paar Tagen die beste Punktzahl hat, bekommt von mir die Note „Beste Antwort“, basierend auf der Wahl der Community.

War es hilfreich?

Lösung

ich würde vorschlagen LEGO Mindstorm, Es bietet eine intuitive Drag-and-Drop-Schnittstelle zum Programmieren und da es mit Hardware geliefert wird, bietet es etwas Greifbares, das ein Kind begreifen kann.Da es sich um „LEGO“ handelt, denken sie vielleicht auch, dass es eher ein Spiel als eine Programmierübung ist.

Andere Tipps

Hauptberuflich arbeite ich in einer Schule, und in den letzten Jahren habe ich verschiedenen Kindern in unterschiedlicher Anzahl Programmierunterricht gegeben oder beigebracht (oder versucht zu unterrichten).

Kinder sind alle unterschiedlich – manche lernen schnell, andere nicht.Insbesondere verfügen einige über bessere Lese- und Schreibfähigkeiten als andere, und das wirkt sich definitiv auf die Geschwindigkeit aus, mit der sie das Programmieren erlernen.Ich wette, dass die meisten von uns hier, als professionelle Computerprogrammierer und die Art von Leuten, die zum Spaß lesen und in Foren posten, schon in jungen Jahren das Lesen gelernt haben.Für diese Art von Kindern, und wenn es sich um Ihr eigenes Kind handelt, das Sie einzeln unterrichten können, könnten Sie schlechter abschneiden als JavaScript – es hat den Vorteil, dass Sie sofort echte Dinge damit machen können, und den Edit-Test-Zyklus Klicken Sie einfach im Browser auf „Aktualisieren“.Es wird verwirrend, wenn man anfängt zu verstehen, wie JavaScript alles asynchron erledigt und schwierig zu debuggen ist, aber für ein kluges Kind, das gründlich unterrichtet wird, können diese Probleme überwunden werden.

LEGO Mindstorms steht definitiv ganz oben auf der Liste.Die meisten Schulen kleben die Steine ​​jetzt mit Sekundenkleber zusammen, um vorgefertigte Modelle zu schaffen, von denen keine Teile abgebrochen werden dürfen, aber zu Hause sollte das kein Problem sein.Auf der Times Educational Supplement Site (Website -Forum für die wöchentliche Lehrzeitung in Großbritannien) ist die "Welche Programmiersprache ist am besten für Kinder?" Das Thema erscheint ziemlich regelmäßig.Dort gibt es viele Empfehlungen für Scratch als Alternative zu Mindstorms – etwas mehr Freiheit als Mindstorms, wiederum wahrscheinlich besser für den intelligenteren Schüler, der auch einen Lötkolben bekommen könnte.

Ich habe festgestellt, dass langsamere Schüler immer noch Probleme mit Mindstorms haben können, auch wenn die Programmierumgebung „grafisch“ ist – auf dem Bildschirm passiert immer noch viel und es gibt einiges zu merken (das war eine ältere Version, mein Gott). Ich habe das schicke neue noch nicht ausprobiert).Meiner Erfahrung nach ist LOGO immer noch der beste Allround-Einstieg in die Programmierung – eigentlich eine wesentlich leistungsfähigere Sprache, als die meisten Leute ihr zutrauen.Das Original Gedankenstürme Das Buch von Seymour Papert (hat nichts mit LEGO zu tun – sie haben den Titel des Buches für ihr Produkt geklaut), einem der Urheber von LOGO, ist die kanonische Referenz dafür, Kindern das Programmieren als „Denkfähigkeit“ beizubringen und für das Konzept von Konstruktionismus beim Lernen.

Wir hatten Klassen von 7- oder 8-Jährigen, die LOGO programmierten.Beachten Sie, dass wir nicht darauf abzielen, sie zu „Softwareentwicklern“ zu machen. Das ist ein Karriereweg, für den sie sich irgendwann nach 16 Jahren entscheiden können.Schon in jungen Jahren versuchen wir, sie dazu zu bringen, sich „Computerprogrammierung“ als ein weiteres Werkzeug vorzustellen – wie man ein Problem darstellt, das von einem Computer gelöst werden soll, so wie sie vielleicht eine Mindmap als Hilfe bei der Organisation nutzen würden und sich Dinge für eine Prüfung merken.Kein armes Kind sollte hingesetzt und in die Einzelheiten und den Gebrauch einer bestimmten Sprache eingeübt werden, es sollte ihm überlassen werden, die Dinge nach Belieben zu erforschen und herauszufinden.

Ich werde Geoffs Vorschläge unterstützen Phrogram (früher KPL), Und Alice.

Mein einziger anderer Vorschlag ist Lego Mindstorms NXT.Die Programmiersprache von NXT funktioniert per Drag-and-Drop, ist sehr einfach zu verwenden und kann einige sehr komplizierte Aufgaben erledigen, sobald man sie erlernt hat.Auch kleine Jungen mögen es normalerweise, wenn sich Dinge bewegen.:) :)

Ich habe Alice und NXTs mit einigen kleinen Kindern verwendet und sie haben es sehr gut angenommen.

Zwei Möglichkeiten sind:

Scratch – entwickelt am MIT – http://scratch.mit.edu/

Und

EToys aus der One Laptop per Child-Reihe – http://wiki.laptop.org/go/Squeak

Vollständige Offenlegung:Ich gehöre zu den Erfindern der Kid's Programming Language, die es heute gibt http://www.Phrogram.com, was andere hier empfohlen haben.Lassen Sie mich einige programmiererorientierte Informationen dazu hinzufügen.

Es handelt sich um eine Code-IDE und nicht um Drag-and-Drop oder Designer-basiert.Dies war von unserer Seite beabsichtigt – wir wollten es einfach und unterhaltsam machen, echte textbasierte Programmierung durchzuführen, insbesondere das Programmieren von Spielen und Grafiken.Das ist ein grundlegender Unterschied zwischen uns und Alice und Scratch.Welche Sie wählen, hängt vom Kind, seinem Alter und seinen Fähigkeiten sowie Ihren Zielen ab.Sie nacheinander mit demselben Anfänger zu verwenden, könnte ein guter Weg sein – wenn Sie das tun, würde ich Scratch, Alice, Phrogram als Reihenfolge empfehlen.Phrogram funktioniert seit 12 Jahren am besten, aber ich kenne Väter mit 6-Jährigen, die es ihren Kindern beigebracht haben, und ich kenne 10-Jährige, die es sich selbst beigebracht haben.

Die Sprache ist dem Englischen so nahe wie möglich und so minimalistisch wie möglich.Das Geheimnis liegt in der klassenbasierten Objekthierarchie, die wiederum so einfach, intuitiv und englischartig ist, wie wir sie nur machen konnten.Die Objekthierarchie ist für Spiele und Grafiken optimiert.Es stehen 3D-Modelle und 2D-Sprites zur Verfügung.Absolute Bewegung unter Verwendung von Bildschirmkoordinaten wird unterstützt, oder relative Bewegung ala LOGO-Schildkröten – Vorwärts(x), TurnLeft(y).

Die IDE enthält über 100 Beispiele, einige Sprachbeispiele (Schleifen), einige Lernbeispiele (Arrays) und einige voll funktionsfähige Spiele und Simulationen (Pong, Missile Command, Game of Life).

Um Ihnen einen Eindruck davon zu vermitteln, wie wirkungsvoll wir die Sprache und die IDE entwickelt haben:Mit 27 Anweisungen können Sie mit Ihrer Tastatur ein 3D-Raumschiffmodell um eine 3D-Skybox fliegen.Das Gleiche gilt für ein 2D-Sprite mit 12 bis 15 Anweisungen.

Wir arbeiten an einer Blade-kompatiblen Version von Phrogram, die die Ausführung von Programmen auf der XBox 360 ermöglicht.Ja, die XBox, auf deinem großen Fernseher.Schöner Motivator für den Start eines Kindes?:) :)

Phrogram bietet Unterstützung für klassenbasierte Programmierung mit Methoden und Eigenschaften – aber dabei handelt es sich nur um Kapselung, nicht um Vererbung oder Polymorphismus.

Ein Tutorial und ein Benutzerhandbuch sind verfügbar.

Mein eigenes E-Book „Learn to Program with Phrogram!“ ist bei Amazon und anderen Online-Shops erhältlich und erleichtert Anfängern den Einstieg in die Programmierung des klassischen Pong.

Phrogram Programming for the Absolute Beginner von Jerry Lee Ford, Jr. ist auch als Taschenbuch bei Amazon und anderswo erhältlich.

Für ein Kind würde ich mitgehen Alice.Jedem Kind wird die Drag-and-Drop-Interaktion, die Alice nutzt, besser gefallen als der Versuch, sich die Rechtschreibung und Zeichensetzung einer Programmiersprache zu merken.Er/Sie lernt die grundlegenden Programmierstrukturen (Bedingungen, Schleifen usw.) und erlebt den Spaß beim Erstellen eines animierten Programms, das er/sie anderen Familienmitgliedern oder Freunden zeigen kann.

Ein CS-Anfängerkurs am örtlichen Community College nutzt Alice tatsächlich, um das Programmieren auf sprachunabhängige Weise zu unterrichten.Es bietet eine gute Grundlage für den späteren Einstieg in die Programmierung in einer bestimmten Sprache (oder mehreren Sprachen).

Ich habe kürzlich eine Präsentation darüber gesehen GreenFoot (eine Java-basierte Lernumgebung für Kinder).Es sah fantastisch aus.Wenn ich Kinder hätte, würde ich es versuchen

Link zur Präsentation

Es ist eine sehr spielerische Umgebung, in der man mit sehr einfachen Methoden beginnen kann.Die Kinder lernen, objektorientiert zu denken (ein Tier kann man nicht instanziieren, wohl aber eine Katze).Und je besser sie werden, desto mehr von Java können Sie für/mit ihnen entdecken.

Ich würde mitgehen Kratzen, einige Punkte dazu.

  • Es ist eine grafische Programmiersprache.Es ist nicht textbasiert (dies könnte positiv oder negativ sein).Es macht es für Kinder intuitiver und einfacher (7 und up).
  • Es ist eigentlich sehr objektiv.Den Objekten, die Sie in diesen grafischen Skripten schreiben, ist der Code angehängt und sie können wiederverwendet und verschoben werden.
  • Sehr wichtig:schnelle und beeindruckende Ergebnisse.Kinder müssen schnell loslegen und Ergebnisse erzielen, um süchtig zu werden.

Ich möchte anmerken, dass viele von uns zwar schon in jungen Jahren mit dem Programmieren in Basic- oder Logo-Sprachen begonnen haben und später im Leben Programmierer werden, das aber nicht unbedingt gute Sprachen sind.Ich denke, dass Kinder heutzutage viel bessere Möglichkeiten haben, wie Scratch oder Alice.Textbasierte Sprachen (Python, Ruby, Basic, C# oder sogar C) sind auf externe Bibliotheken und Tools (Editoren, Compiler) angewiesen, während etwas wie Alice oder Scratch allumfassend ist und Kindern (nicht für Jugendliche) Programmierkonzepte beibringt.Später können sie weitermachen und ihr Wissen erweitern.

Kasse Programm (ehemals KPL) und Alice

Ich würde sagen:Geben Sie dem Kind einen echten C64, denn so habe ich angefangen.Aber heute...Ich würde Ruby sagen, aber Ruby ist etwas zu chaotisch.BASIC wäre auf lange Sicht besser.Die Verarbeitung ist leicht zu erlernen und im Grunde genommen Java.

Der Grund, warum ich einen C64 empfehle, ist, dass er BASIC ist, man aber noch bestimmte computerbezogene Dinge lernen muss, wie das Speichermodell, Pixel, Zeichen, Zeichentabellen, Zeilenumbrüche usw.usw., wenn Sie fortgeschrittenere Dinge tun möchten.Und wenn Ihr Kind es langweilig findet, wissen Sie, dass ihm das Programmieren nicht wirklich am Herzen liegt.

Ich würde LOGO vorschlagen.Das wurde mir in der Grundschule beigebracht.Es gibt nahezu sofortiges Feedback und vermittelt wirklich grundlegende Programmierkonzepte.Es kann eine Menge Spaß machen, die kleine Schildkröte herumzubewegen.

Als Kind würde ich mit Alice gehen.

Hier ist eine weitere Stimme für Alice.Meine 4 Kinder hatten eine Menge Spaß damit, damit zu arbeiten und die Grundkonzepte des Programmierens zu erlernen.Für sie geht es natürlich vor allem darum, mit Feen und Ogern in Kontakt zu treten, aber das verdammte Legacy-System, an dem ich arbeite, könnte auch ein paar Feen und Oger gebrauchen.

Ich würde Python empfehlen, weil es so prägnant und ausdrucksstark ist.Scheint beim Einstieg weniger frustrierend zu sein, bietet aber auch viel Raum, um fortgeschrittenere Konzepte zu erlernen.

Spielemacher könnte ein anderer Ansatz sein.Sie können einfach mit der einfachen Drag-and-Drop-Entwicklung beginnen und dann nach und nach eine komplexere Programmierung einführen.Das Buch Der Lehrling des Spielemachers:Spieleentwicklung für Anfänger verfügt über eine Reihe von Beispielspielen und führt Sie durch die Schritte, die zu deren Erstellung erforderlich sind.

Ich denke, Python ist eine gute Alternative;Es ist eine sehr mächtige Sprache, mit der man viele Dinge problemlos erledigen kann (überhaupt nicht langweilig).

Kasse Quietschen entwickelt von Alan Kay die der Meinung sind, dass Programmieren schon in jungen Jahren gelehrt werden sollte.

Wie alt?Viele von uns haben irgendwann mit BASIC angefangen, aber vorher habe ich die Konzepte der Aneinanderreihung von Befehlen, Variablen und Schleifen mit LOGO gelernt.Herauszufinden, wie man einen Kreis mit einem Dreieck zeichnet, das nur eine gerade Linie bilden und sich drehen kann, war meine allererste Programmierleistung.

Bearbeiten:Diese Frage und ihre Antworten machen mich alt.

Obwohl _why ihm im letzten Jahr oder so nicht viel Liebe geschenkt hat, war ich eine Zeit lang wirklich gespannt darauf Hackety-Hack.Ich denke, der Schlüssel für die meisten neuen Programmierer, insbesondere für Kinder, die leicht dazu neigen, das Interesse an Dingen zu verlieren, ist sofortiges Feedback.Das war das wirklich Wunderbare an Hackety Hack:ein paar Zeilen Code, und plötzlich steht etwas vor Ihnen, das etwas tut.Es gibt einige ähnliche Anwendungen, die auf Dinge wie das Zeichnen von Grafiken abzielen (bei einer davon habe ich Nathan Weizenbaum kurz unterstützt, Kritzeln!).Kinder brauchen einfach regelmäßig positives Feedback, dass sie etwas richtig machen, sonst gibt es nichts, was ihr Interesse an der anstehenden Aufgabe weckt.Meiner Meinung nach besteht die Zukunft darin, Kindern das Programmieren beizubringen, in einer Art DSL, das auf einer Sprache mit benutzerfreundlicher Syntax aufbaut (dazu gehören wohl Ruby, Python und Scheme), deren Zweck darin besteht, eine intuitive Umgebung für die Konstruktion einfacher Programmiersprachen bereitzustellen Spiele (zum Beispiel Tic-Tac Toe oder Hangman).

Ich denke, Sie sollten sie in C beginnen.Je früher sie den Dreh raus haben, desto besser.

Sehen Zeiger verstehen Und Soll ich C lernen?.

Ich denke, die erste Frage ist:Welche Art von Programm wäre es interessant zu erstellen?Eines der Dinge, die mich als Kind dazu brachten, mit dem Programmieren zu beginnen (in BBC Basic und dann QBasic), war die Leichtigkeit, grafische Programme zu schreiben.Ich könnte ein paar Zeilen Code schreiben und sehen, wie mein Programm sofort eine Linie auf dem Bildschirm zeichnet.

Die, die dieser Art von Einfachheit in letzter Zeit am nächsten kommen, sind die Pygame-Bibliothek für Python und wird bearbeitet, eine Reihe von Java-Bibliotheken mit einer IDE.

Ich stelle mir vor, dass das Hacken von Webseiten ein weiterer guter Einstieg wäre:das würde HTML, Javascript (unter Verwendung einer Bibliothek wie jQuery), vielleicht PHP oder etwas in dieser Richtung erfordern.

Welche Tools Sie auch bereitstellen, entscheidend ist, dass Sie sofort loslegen können.Wenn Sie zwanzig Zeilen korrekten Code schreiben und herausfinden müssen, wie Sie den Compiler aufrufen, bevor Sie greifbare Ergebnisse sehen, wird der Fortschritt langsam sein.

Hier gibt es bereits viele gute Vorschläge.Ich stimme Kronikarz wirklich zu.Besorgen Sie sich einen Retro-Computer (oder Emulator), der Sie interessiert, und unterrichten Sie damit.Warum ein Retro-Computer?Basic ist eingebaut.Sounds und primitive Grafiken zu erstellen ist eine triviale Aufgabe.Das echte Angebot könnte besser sein als ein Emulator, da es für ein Kind, das es gewohnt ist, nur moderne Geräte zu sehen, etwas faszinierender ist.

Wie ich sagte Hier, würde ich wählen Quietschland und das Berühmte Ein Auto fahren Beispiel (unterstützt von Quietschen).

Die Smalltalk-Syntax ist einfach und eignet sich hervorragend für Kinder.

Und später, wenn sich das Kind weiterentwickelt, kann es komplexere und sogar sehr fortgeschrittene Konzepte lernen, die auch in Squeak enthalten sind (z. B.Programmieren zustandsbehafteter Webanwendungen mit automatisiertem Refactoring und automatisierten Unit-Tests!).

Und wie @cpuguru und @Rotem sagten, ist Scratch (ebenfalls Squeak-basiert) auch großartig.

Ich denke, Java könnte einfach deshalb eine gute Wahl sein, weil man GUIs einfach erstellen und sehen kann, wie „coole Dinge“ passieren.Aus dem gleichen Grund vielleicht eine der .NET-Sprachen.Ich habe auch Gutes über Skriptsprachen (insbesondere Ruby und Python) gehört, mit denen Kinder das Programmieren lernen können.

Nun, wenn sie jung sind und ihr ABC noch nicht gelernt haben, könnten Sie es bei BF versuchen – nicht mit diesen lästigen Buchstaben und Zahlen, mit denen man umgehen muss.

Ich hole mir einen Mantel.

Skizz

Ich würde mit dem weitermachen, von dem ich wünschte, ich hätte es zuerst gewusst:eine einfache MS-DOS-Box und den integrierten Assembler (Debug).Es ist großartig, die Grundlagen der Kommunikation mit einem Computer wirklich zu erlernen und zu verstehen.

Wenn das ein Kind nicht abschreckt, dann würde ich die „nächste Stufe höher“ gehen und C vorstellen.Dies sollte nicht schwer sein, wenn man bedenkt, dass das Grundkonzept von Zeigern, Registern und Anweisungen im Allgemeinen bis dahin gut verstanden ist.

Allerdings bin ich mir nicht ganz sicher, wohin ich als nächstes gehen soll.Machen Sie den großen Schritt zu Lisp, Haskell oder ähnlich abstrahierten Sprachen oder sollten einige einfache objektorientierte Sprachen (vielleicht sogar C++) hinzugefügt werden, oder würde das mehr schaden als helfen?

Wenn ich mir Alice ansehe, sehe ich, dass es „für High-School- und College-Studenten konzipiert“ ist.Es scheint eine andere Sprache/Version mit dem Namen zu geben Geschichtenerzählen Alice das ist „für Mittelschüler konzipiert“

Alice-Download-Seite

Ich finde Kontextfreie Kunst Könnte eine gute Wahl sein, mit der Ausgabe von Grafiken macht es viel Spaß, etwas darüber zu lernen kontextfreie Grammatik.

Versuchen Sie es mit [Guido van Robot][1].Es ist eine ausgezeichnete Einführung in die Robotik und eine großartige Möglichkeit, Kinder an die Programmierseite der Dinge heranzuführen (im Gegensatz zum „Bau der Roboter“).

Wurde Smalltalk nicht für einen solchen Zweck entwickelt?Ich denke, dass Ruby als Nachkomme von Smalltalk eine gute Wahl wäre.

Ich weiß, dass uns in den ersten Schuljahren Logo beigebracht wurde, und seltsamerweise auch HTML.Danach ging es weiter zu Makros in MS Office, gefolgt von grundlegendem VBA und schließlich Visual Basic.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top