[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Lernsoftware Programmierung



> Ansonsten ist es sehr wichtig, das die Schüler nicht nur einfach stur
> die Sprache lernen, sondern die dahinter stehenden Konzepte und die zu
> implementieren Algorithmen verstehen. Dann ist nämlich der Umstieg auf
> eine andere Sprache sehr leicht und beschränkt sich auf das Lernen der
> neuen Syntax und eventueller Caveats.

Genau das ist ja der entscheidende Punkt... Am Anfang des Kurses geht es
eben um den Entwurf einfacher Algorithmen, im Fall von Niki, dem
Roboter, wurde eben ein Roboter programmiert, der durch ein Labyrinth
läuft. Schön in ASCII-Art, so dass am sich auf das Wesentliche
konzentrieren konnte. Die Programmierung erfolgte in Pascal, was
schrittweise zu einer vollständigen Sprach entwickelt wurde, wobei die
Sprache immer im Hintergund stand. Vermittelt wurden stattdessen
Konzepte der Abstraktion und des "algorithmischen Denkens". Die Sprache
wurde eher nebenbei erlernt.

Der Vorteil des Niki-System bestand IMHO darin, dass man die
Auswirkungen seines Tuns (hier: des Codes) an den Bewegungen des Roboter
mitverfolgen konnte, ggf. auch mit schrittweise Programmausführung zum
Debugging. Endlos-Schleifen erkannte man dadurch, dass der Roboter
irgendwann im Kreis durch das Labyrinth lief, Fehler darin, dass er vor
die Wand stieß oder oder "Futter" an Plätzen aufnahm, an denen keine
lag.

So war es bereits nach 24 Unterrichtsstunden im Grundkurs der 11. Klasse
gelungen Rekursion vorzustellen. Wir hatten ein Problem, bei dem sich
der Roboter hätte merken müssen, wie viele Schritte er vorwärts gegangen
war, um die gleich Anzahl wieder zurückzugehen. Zu diesem Zeitpunkt
kannten wir aber noch keine Variablen.

Im Projekt am Ende des 13. Jahres entwickelten wir Spiele, wie 4 gewinnt
(für die schwächeren Schüler), Reversi oder Mühle. Auch hier lag der
Schwerpunkt auf Analyse "korrekter Zug" und der Strategie, die der
Computer als Gegner verfolgen kann, nach dem vorher Konzepte wie das
Negmax-Verfahren erarbeitet worden waren.

Aber zurück zum Thema:

Es ist nicht Ziel des Unterrichts, Programmierkünstler zu schaffen. Es
iost auch nicht wichtig, ob sie die gewählte Sprache nachher praktisch
nutzen können. Wenn sie eine Sprache erlernt haben, z.B. (aber bestimmt
nicht die Topwahl, so war es bei uns) objektorientiertes Pascal (kein
Delphi!), können sie ihre Erfahrung leicht auf andere Sprachen
übertragen und auch erkennen, was an diesen anders ist.

Ein Niki-Ähnliches System würde ich deshalb gern einsetzen, weil die
Rückschläge nicht Segmentation Fault oder "das Programm reagiert nicht
mehr" heißen, sondern richtig erlebt werden. Man kann den Ablauf seines
Programms live erleben. Ferner war nur ein einfacher Texteditor zu
bedienen sowie ein "Malprogramm" für das Labyrinth.

Ich halte dies für die Schule geeigneter, als mit semantischer
Analyseoder objektorienter Modellierung zu beginnen. Die Schüler haben
übrigens z.T. noch nie einen Computer benutzt und sollen das konkrete
System auch gar nicht wirklich kennenlernen. Sie sollen Fähigkeiten und
Einblicke sowie Denkweisen erlernen, die Ihnen nach Möglichkeit ihr
Leben lang helfen, auch wenn sie nie mehr etwas mit Informatik zu tun
haben werden.

Was nützt es heute einem Schüler, wenn er vor 10 Jahren Meister in DOS
und QBasic war? Gar nichts. Weil er sich zu sehr mit dem konkreten
System (DOS) und einer "armen" Sprache (Basic) beschäftigt hat.

Viele Grüße

Michael



Reply to: