3.4.3 Programmiersprachen
Die Implementierung der erstellten Modelle zwingt zumindest gelegentlich zur Verwendung einer Programmiersprache.
Welche Aspekte dabei zu beachten sind, soll in Kapitel 4 besprochen werden. In jedem Fall stellt sich die Frage, welche der
zahlreichen verfügbaren Sprachen man jeweils verwenden soll, weshalb wir kurz einige Vor- und Nachteile der
verschiedenen Sprachparadigmen ansprechen wollen. Die Zuordnung einer Sprache zu einem bestimmten Paradigma ist
dabei meist keineswegs eindeutig. So haben z.B. die meisten objektorientierten Sprachen einen stark imperativen Charakter.
Dennoch hat jede Sprache ihr "Schwerpunktparadigma". Wir wollen kurz auf einige wenige Vor- und Nachteile der einzelnen
Paradigmen eingehen. Eine ausführlichere Besprechung findet sich z.B. bei Schwill (1995).
Funktionale Sprachen (z.B. Haskell, Gofer, ML). Diese Sprachen haben meist eine sehr knappe Syntax mit der
Möglichkeit einer kompakten Darstellung rekursiver Datenstrukturen. Ein Programm ist einfach nur ein Term, in dem selbst
definierte Funktionen vorkommen können. Andererseits kann die Wiederholung von Befehlen (unter Einhaltung des
Sprachparadigmas) nur über Rekursion gesteuert werden, wodurch jüngere Schüler überfordert sein könnten.
Imperative Sprachen (z.B. Basic, Pascal, C, Modula 2, Oberon). Günstig ist die Analogie zur Funktionsweise
des Von-Neumann-Rechners, wodurch ein Grundverständnis für dessen Funktionsweise erzeugt
wird. Weniger positiv ist die Verführung zur "Ad-hoc Codierung" sowie die für Schüler oft schwer durchschaubare
Zustandssemantik.
Objektorientierte Sprachen (z.B. C++, Java, Smalltalk). Diese Sprachen liegen nach Schwill (1995) und Füller (1999)
nahe am menschlichen Weltbild. Schwierigkeiten bereiten dagegen erfahrungsgemäß häufig die höheren Konzepte der
Objektorientierung wie dynamische Bindung, Vererbung oder Polymorphie.
Prädikative Sprachen (z.B. Prolog). Für spezielle Anwendungen wie die Modellierung von Wissensbasen sind diese
Sprachen sehr geeignet. Die Syntax ist minimal. Problematisch ist das Grundverständnis der Semantik, das zumindest elementare Einblicke in die Prädikatenlogik voraussetzt.
Wie man sieht, gibt es (derzeit noch) kein optimales Sprachparadigma für schulische Zwecke. Man wird also nicht umhin
kommen, im Lauf der Schulausbildung mehrere Sprachen für verschiedene Zwecke einzusetzen. Dabei ist allerdings zu
berücksichtigen, dass die Schüler sehr viel Zeit zur Einarbeitung in eine neue Sprache benötigen. Ob sich dieses Problem
mit Mischformen wie Logo oder Makrosprachen lösen lässt, muss durch entsprechende Unterrichtsversuche gezeigt
werden.
3.4.4 Programmieroberflächen
Neben dem Paradigma der Sprache ist die verwendete Programmieroberfläche von großer Bedeutung für den Unterrichtseinsatz. Hier reicht die Spannweite vom spartanischen Texteditor über spezielle Programmieroberflächen mit Syntaxprüfung bis zur visuellen Programmierung, bei der man nur noch die Attributwerte der Objekte setzt. Bei letzterer spart man sich zwar das Eingeben zahlreicher Syntaxelemente, handelt sich jedoch im Gegenzug eine ziemlich undurchsichtige Semantik ein- Warum passiert wo genau was? Welche Information steckt in welchen Attributen und Dateien? Welcher Programmcode wird warum wann ausgeführt (siehe dazu auch Füller (1999)). Eine schöne Möglichkeit für einen Einstieg in die Programmierung in der Sekundarstufe 1 bieten beispielbezogene Programmiersysteme wie Karel der Roboter (siehe Pattis (1981). Dabei kann man auf dem Bildschirm einen kleinen Roboter bewegen und zum Auf- und Abbauen von Ziegelsteinbauwerken veranlassen. Dies kann anfangs im Befehlsmodus durch Aufruf entsprechender Kommandos vor sich gehen. Später kann man dann dieselben Befehle zusammen mit grundlegenden Kontrollstrukturen zu einem Programm kombinieren und ablaufen lassen, etwa um ein Haus aufzubauen.