Früher oder später wird ein Kind, das in einer Familie aufwächst, anfangen, Vater oder Mutter zu belästigen, die zu Hause programmieren:
- Was machst du?
- Was bedeutet dieses Wort?
"Und warum sind hier grüne Buchstaben und hier blaue Buchstaben?"
Und es wird sicherlich zur Hauptfrage kommen:
"Wirst du mir das Programmieren beibringen?"
Diese Frage wurde mir auch gestellt. Ich war nicht bereit für eine Antwort. Und er begann über das Problem nachzudenken. Wie kann man ein Kind (ungefähr zehn Jahre alt) an diese interessante und faszinierende Aktivität binden?
Außerdem einige Gedanken zu diesem Thema und was sie mich dazu gebracht haben ...
Eine kleine Erklärung zur weiteren Diskussion. Ich bin ein professioneller Java-Entwickler. Ich bin mit dieser Sprache und Plattform vertraut. Ich finde es nicht allzu schwierig, Java zu lernen, selbst als erste Programmiersprache. Wie andere Sprachen kann Java schrittweise gelernt werden, ohne direkt in den Dschungel von OOP einzutauchen.
Ich bin der Meinung, dass die Grundlagen der Programmierung von jedem modernen Menschen verstanden werden sollten. So lernen Sie die Mathematik im Umfang der Grundschule kennen. Wir alle verwenden Taschenrechner und Tabellenkalkulationen, aber wir wissen immer noch, wie man ein Stück Papier oder im Kopf addiert und multipliziert. Und das bringen wir Kindern bei. Das gleiche gilt für die Programmierung - eine Person muss über die Fähigkeiten der Algorithmusisierung verfügen und eine Vorstellung davon haben, wie der erfundene Algorithmus in einer Sprache implementiert werden kann.
Die Aufgabe besteht also darin, das Kind in die Programmierung einzuführen. Es wäre gleichzeitig gut, das beginnende Interesse nicht zu zerstören. Was ich gefunden habe:
Scratch und andere visuelle Spielesysteme
Persönlich habe ich solche noch nie benutzt. Ich bin sicher, dass viele Kinder gerne spielen und sich mit ihnen beschäftigen. Für meine Zwecke ist dies von geringem Nutzen, da ich in ihnen zu viel Unterhaltungskomponente sehe.
Zahlreiche Online-Programmierschulungen
GeekBrains, JavaRush, Codecademy und andere. Auch hier habe ich aufgrund der Einschränkungen beim Erwerb eines Berufs keine Kurse besucht. Ich habe ihre Marketingmaterialien und Probestunden durchgesehen. Fanden sie auch nicht geeignet. Entweder wird das Material nicht von Grund auf neu gegeben, oder die Ausbildung ist zu stark auf die weitere Beschäftigung ausgerichtet. Der allgemeine Eindruck ist nicht, jüngere Schüler zu unterrichten, sondern den Beruf zu beherrschen.
Bildungsliteratur
Googelte das Buch von Jacob Fine, "Programmieren in Java für Kinder, Eltern, Großeltern." Etwas veraltet, aber vielleicht als Hilfslesung geeignet. Eine ausführliche Präsentation in den ersten Kapiteln zur Installation und Konfiguration von JDK und Eclipse wird nicht alle zu weiteren Studien inspirieren. Persönlich machen mich solche Beschreibungen traurig und deprimiert.
Es gibt auch Bruce Eckels Java-Philosophie - ein gutes Tutorial. Aber ich würde es Kindern nicht empfehlen.
Ich konnte also nicht das ideale System finden, um einem Kind das Programmieren beizubringen, aber ich entwickelte eine Reihe von Kriterien, die es erfüllen muss:
- komplexe Darstellung des Materials - Theorie, Beispiele und praktische Aufgaben
Unterrichtsmaterialien in russischer Sprache - Erlernen einer echten, modernen Programmiersprache (Java)
- einfacher Syntax- und Kompilierungsfehlercode-Editor
- Kontexthilfe zur Standardbibliothek, vorzugsweise in russischer Sprache
- Russischsprachige Systemschnittstelle nicht mit Werkzeugen überladen
- Compiler-Nachrichten in russischer Sprache
- Die Schulungsunterlagen richten sich an Personen, die mit der Programmierwelt nicht vertraut sind, dh es sollten auch sehr offensichtliche Dinge erklärt werden
In Bezug auf die wiederholt erwähnte russische Sprache. Viele mögen Einwände erheben, sagen sie in der IT-Welt ohne Englisch, was bedeutet, dass es unterrichtet werden muss. Lassen Sie das Kind unterrichten. Einschließlich dieser Art.
Ich bin damit einverstanden, dass ein Programmierer zumindest auf der Ebene der „Lesedokumentation“ fließend Englisch spricht. Wir sprechen aber nicht über die Ausbildung eines Programmierers. Die Sprachbarriere, die in dieser Ausbildungsphase entsteht, kann zu einem unüberwindbaren Hindernis werden und die Begeisterung des Kindes sehr schnell auslöschen. Deshalb halte ich die Russifizierung von allem und jedem für von entscheidender Bedeutung.
Integrierte Lernumgebung
Wie Sie bereits zu erraten beginnen, komme ich zum Kern des Artikels. Da ich nicht wie viele von uns das Ideal in der Welt um mich herum gefunden habe, habe ich beschlossen, es selbst zu schaffen. Bei uns sind Programmierer also schon lange etabliert. Die Aufgabe schien mir in einer begrenzten und vernünftigen Zeit interessant und machbar.
Der Arbeitstitel des Projekts lautet „Java-Klasse“. Die Idee ist wie folgt. Die Desktop-Anwendung ist eine „integrierte Lernumgebung“. Ich habe heruntergeladen, installiert und Sie können die Lektionen sofort lesen, Code schreiben und ausführen.
JavaFX-Technologie. Die Umgebung kann in drei Modi sein: Lesen von Lehrmaterialien, Arbeiten mit Quellcode und Ausführen eines laufenden Programms.
Modus: Lesen von Schulungsunterlagen
Hier können Sie die verfügbaren Lektionen und Dokumentationen lesen. Es soll Materialien aus dem Online-Speicher herunterladen.
Materialien sind urheberrechtlich geschützt. Es ist geplant, ein spezielles XML-Format für Textmarkups zu entwickeln. Innerhalb des Programms werden XML-Dateien in HTML-Dokumente konvertiert und im integrierten Browser (WebView) angezeigt. Interaktive Elemente werden in Seiten eingebettet. Am Ende des Textes der Lektion befindet sich beispielsweise die Schaltfläche "Projekt öffnen", mit der die Umgebung mit einem geladenen Beispiel aus der Lektion in den Codebearbeitungsmodus versetzt wird.
Für die Hauptklassen der Standardbibliothek soll eine minimale Dokumentation in russischer Sprache im Javadoc-Stil geschrieben werden. Diese Dokumentation wird auch als kontextsensitive Hilfe im Code-Editor verfügbar sein.
Modus: Arbeiten mit Quellcode
, . — /, « ...». java-. . . ECJ Eclipse JDT, . , .
richtextfx. code completion .
java-
main()
, .
:
, , . . .. — .
. :

, «Java », .
? - ? . ( ) .
.