Abstract: In diesem Artikel wird der Frage nachgegangen,
welche Rolle die Programmierung und die Vermittlung von Programmiersprachen
in der Lehrerausbildung spielen soll. Im Vordergrund stehen dabei grundlegende
Konzepte der Problemlösung und deren Umsetzung in verschiedenen Programmierparadigmen.
Außerdem wird über Erfahrungen berichtet, die an der TU Dresden
in der seit Wintersemester 1991/1992 durchgeführten Lehrerausbildung
gewonnen wurden.
1. Algorithmierung/Programmierung - eines der Kerngebiete der Informatik
Die Algorithmierung/Programmierung ist eines der zentralen Wirkprinzipien
der Informatik. Auch im Alltag nimmt die Programmierung ständig weiter
zu, so sollen z.B. Videorecorder, Anrufbeantworter, Handy, aber auch Waschmaschine
oder Elekroherd programmiert werden.
Bei Waschmaschine oder Herd geschieht dies meist mit einfachen Schaltereinstellungen
- bei Handys kann dies schon etwas mehr Aufwand erfordern. Wichtig ist
dabei stets eine gewisse Strukturierung von Abläufen.
Sowohl in der Schule und erst recht im Studium ist deshalb eine Arbeitsmethodik
zum Problemlösen zu vermitteln, die sich in die folgenden vier Schritte
fassen läßt: Problemanalyse, Modellbildung, Algorithmierung/Implementierung
und Modellkritik
2. Klassische Programmierung im Kleinen versus Objektorientierung und Programmierung
im Großen
Die Grundprinzipen der verschiedenen Programmierstile wie imperative, funktionale
oder logische Programmierung lassen sich relativ gut bereits anhand kleinerer
Problemstellungen erfassen und umsetzen. Dabei stellen Funktionen eine
besonders einfache Umsetzung der Begriffe: Eingabe (über Parameter)
- Verarbeitung (Berechnungsvorschrift) - Ausgabe (Rückgabe des Funktionswertes)
dar. Allen diese "klassischen" Programmierstilen liegt letzten Endes eine
sequentielle Arbeitsweise zugrunde (Fließbandarbeit).
Die Objektorientierung bringt eine ganz neue Sichtweise zum Tragen,
die bereits in der Modellierungsphase eine Rolle spielt: Man arbeitet mit
Objekten, die aus Objektklassen abgeleitet werden und über deren Eigenschaften
und Methoden verfügen. Die Objekte können Botschaften miteinander
austauschen und auf diese Botschaften reagieren. Dies läßt sich
durchaus mit "Teamwork" vergleichen. Bei der Programmierung der Methoden
wird jedoch auf die klassische imperative oder funktionale Programmierung
zurückgegriffen.
Ein wichtiger erster Schritt in Richtung Objektorientierung kann darin
bestehen, daß man vordefinierte Objektklassen zur Gestaltung einer
nutzerfreundlichen Oberfläche für die Ein- und Ausgabe verwendet
und zunächst die elementaren Grundbegriffe der imperativen oder funktionalen
Programmierung vermittelt und nutzt. Die ist sowohl mit MSW Logo, Delphi,
JavaScript und anderen Sprachen möglich. (bezgl. Delphi s. /2/)
3. Ereignissteuerung in Logo - oder: Logo - eine nach wie vor aktuelle
Programmierumgebung für die Schule
Mit diesem Beitrag soll keinesfalls eine Neuauflage des uralten Sprachenstreites
wieder entfacht werden. Vielmehr soll auf die Ergebnisse der Arbeitsgruppe
ãProgrammiersprachenã des 5. Fachdidaktischen Gesprächs verwiesen
werden. Dort wurden einige wesentliche Kriterien für die Auswahl einer
Sprache für den Informatikunterricht herausgearbeitet. Diese Kriterien
erfüllt Logo sicher nicht in allen einzelnen Punkten. Dennoch eignet
sich Logo sehr gut für die Umsetzung eines Gesamtkonzeptes der informatischen
Bildung:
Bereits in der Grundschule können die Schüler mit Hilfe sehr
weniger Grundworte von der Kommandoebene aus sehr vielfältige Grafiken
zeichnen. (Stichwort. entdeckendes Lernen)
In der Sekundarstufe I kann man auch mit Logo durchaus algorithmische Grundstrukturen
wie Folge, Schleife und Verzweigung behandeln, wenn man sich auf entsprechende
Prozeduren zum Zeichnen von Grafiken beschränkt.
Ebenso kann man in der Sekundarstufe I bereits die elementaren Grundbegriffe
der funktionalen Programmierung wie Grundfunktionen und nutzerdefinierte
Funktionen, Verkettung von Funktionen etc. anhand einfacher mathematischer
Berechnungen demonstrieren.
In der Sekundarstufe II schließlich kann man anspruchsvolle Themen
der Listenverarbeitung bis hin zur Arbeit mit Bäumen behandeln.
Außerdem stellt MSW Logo eine Reihe von Grundprozeduren und Grundfunktionen
zur Arbeit mit vordefinierten Objektklassen wie Fenstern, Labels, Button
usw. bereit. Dies ist eine wesentliche Erleichterung für die Ein-
und Ausgabe, da man ja sonst bei allen Logo-Funktionen die genaue Anzahl
und vor allem auch Reihenfolge der Argumente beim Aufruf einer Funktion
beachten muß (bezgl. Logo s. /3/).
4. Erfahrungen aus der Ausbidung von Lehrern an der TU Dresden
In der Ausbildung der Informatiklehrer für Mittelschulen (Realschulen)
und Gymnasien wird in den ersten 3 Semestern des Grundstudiums ein relativ
großer Zeitrahmen für die Algorithmierung/Programmierung bereitgestellt.
Seit mehreren Jahren beginnen wir im 1. Semester mit der funktionalen Programmierung
in Logo und setzten danach mit imperativer Programmierung in PASCAL fort.
Dabei wird die Grafik erst am Ende des Vorlesungszyklus zur funktionalen
Programmierung geboten. Seit dem Wintersemester 1999/2000 wird nach der
Grafik auch bereits auf die ereignisgesteuerte Programmierung mit MSW Logo
eingegangen. Dies soll den Übergang zur imperativen Programmierung
unter Delphi erleichtern. Dennoch macht die wesentlich komplexere Programmierumgebung
Delphi den Anfängern sehr große Probleme.
Leider bleibt im Hauptstudium der Mittelschullehrer nur noch wenig
Zeit. So wurde im Sommersemester 2000 erstmalig ein Kurs zur Programmierung
für das Web (Sprache: Javascript) angeboten, der sehr großen
Zuspruch fand. Im Hauptstudium der Gymnasial- und Berufsschullehrer hingegen
wird seit Anfang an sowohl logische Programmierung mit Prolog als auch
objektorientierte Programmierung (bisher mit Borland Pascal, ab Sommersemester
2000 mit Objekt Pascal unter Delphi) angeboten. Außerdem gibt es
eine Vertiefungsrichtung "Algorithmierung/Programmierung - Programmierparadigmen".