fsteeg.com | notes | tags

∞ /notes/programmieren-fuer-kinder-mit-basic | 2019-12-29 | basic programming

Programmieren für Kinder mit BASIC

Programmieren lernen ist schon immer ein superspannendes Thema für mich. Mit einem Kind kam dann konkret die Frage, wie man an Computer und ans Programmieren heranführt. Unser Kind hatte schon länger eine alte USB-Tastatur von mir als Spielzeug, und als der erste Wunsch zu Weihnachten “ein Computer, wo ich meine Tastatur anschließen kann, zum Programmieren, natürlich nur im Spiel” war, habe ich mich nochmal umgesehen was es so gibt zum Programmiereinstieg.1

Hardware

Es wurde dann IchigoJam, aber nicht das spezifische Board, sondern die Version für Raspberry Pi.

Am Schreibtisch: Computer, Steckdose, Monitor, Tastatur

Ein Raspberry Pi 3 Model B+ mit Hülle, dazu ein alter VGA-Monitor, HDMI-Adapter, USB-Tastatur (IchigoJam unterstützt nur US- und JP-Tastaturlayouts, die alte Tastatur hat tatsächlich US-Layout, sonst wäre es eine neue geworden), und eine 2er-Steckdose mit separaten Ein/Aus-Schaltern: erst Monitor, dann Raspberry Pi einschalten, und man hat in 3 Sekunden ein eingabebereites Programmiersystem.

Die IchigoJam-Dateien können einfach auf eine FAT-formatierte SD-Karte mit anderen Daten kopiert werden, man muss nicht speziell formatieren. Das Ganze ging erfreulich einfach.

Software

Als Start-Setup habe ich 5 Programme aus der IchigoJam-Anleitung installiert (d.h. abgetippt und gespeichert): LED an/aus und 4 Minispiele (die nicht den Knopf des IchigoJam-Boards verwenden, den der Raspberry Pi nicht hat: Screen jack!, Typing!, Downstream, Calc!).

Als erstes nach dem gemeinsamen Aufbauen, Anschließen und Einschalten haben wir ein bisschen getippt, den eigenen Namen, “Mama”, “Papa”. Als erstes Programm dann das letzte Minispiel von oben (Screen jack!), was einen tollen Aha-Effekt zum Start bringt (und dessen Quelltext erstaunlich kurz ist, was aber noch kein Thema ist).

Später das erste (Jumping rope girl) von dieser Seite mit IchigoJam-Beispielprogrammen, das im Gegensatz zum Ausweichspiel oben (Downstream, verlangsamt) klasse ankam, vor allem wegen der nachvollziehbaren Punktezählung glaube ich (die Minispiele oben messen, wie schnell man war, das habe ich aber noch nicht thematisiert beim Spielen).

Bei diesem letzten Spiel haben wir auch die erste Anpassung gemacht: Statt “@” für die Spielfigur der erste Buchstabe des eigenen Namens. 8 Punkte diesmal! Mir scheint das wirklich einen sehr kindgerechten, spielerischen Umgang mit Buchstaben, Zahlen, Zeichen allgemein zu ermöglichen.

Weitergehende Doku zum IchigoJam-System.

Warum überhaupt früh Programmieren lernen?

Ich finde, dass Programmieren eine grundlegende Technik wie Lesen, Schreiben und Rechnen sein sollte. Das heißt nicht, dass alle Programmierer werden. Genauso wenig, wie alle Lektoren, Autoren und Mathematiker werden. Aber ich glaube, es kann helfen, sich den allgegenwärtigen Computern und Algorithmen ein bisschen weniger ausgeliefert zu fühlen.

Und warum mit einem alten System wie BASIC?

Einerseits klar, ich bin selbst so mit Computern und Programmieren in Kontakt gekommen und kann da einen Nostalgie-Effekt wohl nicht ausschließen.

Zugleich gibt es aber wirklich den Charme des Einfachen. Eines Systems, wo die Programmierumgebung nicht eine Anwendung unter vielen ist. Wo der Computer nicht eigentlich viel mehr kann, und vieles davon noch gar nicht angesagt ist (und deshalb der Zugang zum Computer eingeschränkt werden muss). Sondern wo der komplette Computer zu verstehen ist. Wo das Betriebssystem die Programmiersprache ist und andersrum. Wo der Computer vom Wesen her ein offenes, programmierbares System ist, nicht eine geschlossene Plattform, auf der mir ein oder mehrere Anbieter Software zur Verfügung stellen.

So wird der Computer (wieder) etwas, das eher sowas wie Basteln ist, als wie Fernsehen. Wo man etwas erschafft und damit spielt. Etwas, das nicht ruhigstellt, sondern anregt.


1Es gibt so viele verschiedene Ansätze. Vielleicht gut für später, auch BASIC, aber mit visuellem Fokus, mit kompletter Einführung in die Spiele-Entwicklung und vielen Beispiel-Spielen: FUZE (z.B. für Switch); Vergleichbar von der Grundidee, aber auf Hochschullevel: Projekt Oberon; mehr auf Hardware-Ebene, programmiert wird auf einem anderen System: Lego Mindstorms, Arduino, Calliope; visuelle, animierte Ansätze: Kano, Swift Playgrounds.