Programmieren mit Kindern

Ich hatte neulich die Diskussion, ob es sinnvoll ist mit seinen Kindern gleich den C/C++ und GNU Compiler zu verwenden, um so typische EInsteigerprogramme, wie Hallo World zu schreiben. Das ist im Prinzip so, wie ich damals angefangen habe. Aber ich weiss nicht, ob man damit wirklich das Programmieren lernt. So mächtige Programmierwerkzeuge sind doch eher sehr abstrakt und am Ende kämpft man eher mit dem Compiler als mit der Lösung von Programmieraufgaben. Auch sind die Wege bis zu einem sichtbaren, für Kinder interessantem Programm lang und weit und wenig verständlich.

Meine Idee war erstmal mit Scratch zu beginnen. Allerdings ist das doch zuviel für kleiner Kinder und es wird gleich etwas unübersichtlich. Aber es gab ja schon einmal eine Programmiersprache Logo aus den 60ern, die sehr gut geeignet war zum Programmiereinstieg. Hier bewegt man eine Schildkröte (Turtle) über eine weisse Fläche. Diese Schildkröte hat einen Stift, den man zum Malen einsetzen kann. Der Vorteil an dem Ganzen ist, dass man gleich sieht was man macht. So kann man sich ganz auf das Programmieren an sich stürzen. Auch ist der Befehlssatz nicht sehr umfangreich aber ausreichend genug, um interessante Dinge damit anstellen zu können. Das Wichtigste dürfte man als Kind beim Programmieren hier lernen, einen grösseren Sachverhalt in kleinere Teilprobleme soweit zu zerlegen, dass sie mit der Sprache abgebildet werden können. Damit man sich nicht irgendwo her einen Logo Compiler installieren muss, gibt es eine gute Webseite von Code-Your-Life. Hier kann ohne grossen SchnickSchnack gleich losgelegt werden. Zur Auswahl steht einmal die grafische Programmierung. Aber man kann sich seine Befehle auch in Form von Pseudocode anzeigen lassen.

Die Sprache enthält alle wichtigen Sprachkonstrukte, wie for, if else, while und die Turtle kann die Aktionen Vorwärts, Rückwärts, Drehen, Stiftauf und Stiftab. Variablen können verwendet werden und wiederholende Aktionen in Funktionen ausgelagert werden.

Ein Aufgabe könnet zB sein, dass die Schildkröte ein Viereck zeichnen soll. Der Gedankensprung ist nun, dass ein Viereck aus vier Geraden besteht, die alle zu 90° aneinender liegen. Somit muss die Schildkröte die Aktion in die EInzelschritte Gehen und Drehen unterteilt werden.

Im Coder sieht das dann so aus

function main() {
  turtle->leftTurn(90)
  turtle->forward(100)
  turtle->leftTurn(90)
  turtle->forward(100)
  turtle->leftTurn(90)
  turtle->forward(100)
}

Der nächste Chritt wäre es dann die sich wiederholenden Codeteile in eine For-Schleife zusammen zu fassen, um das Programm kleiner zu gestalten.

Jetzt ist das Programm schon viel kürzer und der Coder zeigt es auch an:

function main() {
  for(var i < 4) {
   turtle->forward(100)
   turtle->leftTurn(90)
  }
}

Nun jetzt kann man sich immer weitere Aufgaben ausdenken, die immer komplexer werden.

und der Coder dazu zeigt dann auch das entsprechend an:

function main() {
  var laenge := 100
  pythagorasBaum(laenge)
}
function pythagorasBaum(laenge) {
   zeichneQuadrat(laenge)
   if(laenge > 1.0) {
     turtle->forward(laenge)
     turtle->leftTurn(30)
     var neue_laenge := laenge*0.866
     pythagorasBaum(neue_laenge)
     turtle->rightTurn(90)
     turtle->forward(neue_laenge)
     pythagorasBaum(laenge/2)
     turtle->forward(-neue_laenge)
     turtle->leftTurn(60)
     turtle->forward(-laenge)
   }else {
   }
}
function zeichneQuadrat(laenge) {
   for(var i < 4) {
     turtle->forward(laenge)
     turtle->rightTurn(90)
   }
}

Einen Mangel hat der Interpreter, dass in den Funktionsparametern keine mathematischen Operationen ausgeführt werden können.

Links:
https://de.wikipedia.org/wiki/Logo_(Programmiersprache)
http://www.code-your-life.org/
http://www.code-your-life.org/app2/#/user/defaultUser
http://www.code-your-life.org/Lehrmaterial/mediabase/pdf/2058.pdf

 

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.