Variante:

Prolog als erste Programmiersprache


Inhalt:

  1. veränderte Reihenfolge der Themenbereiche
  2. Gründe für diese Reihenfolge
  3. Analogien zwischen dem Fix-Prolog-System und dem ETH Zürich Oberon


1. veränderte Reihenfolge der Themenbereiche
(am Hoffmann-von-Fallersleben-Gymnasium Weimar)

Klassenstufe 11:
1 Einführung in die Informatik und Projektarbeit (10)
2 Kommunikation in Netzen (18)
7.2 Einblick in das logik-orientierte Programmieren (25)
3 Bearbeiten von Problemen mit Pascal oder Oberon (32)

 
Klassenstufe 12:
4 Iteration und Rekusion (14)
5 Sortieren und Suchen (10)
6 Möglichkeiten und Grenzen des Einsatzes von Informatiksystemen (10)
8 Anwendung von abstrakten Datentypen (15)
9 Projektarbeit II und Prüfungsvorbereitung (25)

Im Klammern sind die nicht verbindliche Richtstundenzahlen lauf Lehrplan angegeben.
Im Schuljahr 1999/2000 habe ich für das Themengebiet "7.2 Einblick in das logik-orientierte Programmieren" beispielsweise 30 Unterrichtsstunden verwendet.
Folgende weitere Wahlthemenbereiche gibt es im Lehrplan für das Grundfach Informatik an Gymnasien:
7.1 Einblick in die Technische Informatik
7.3 Einblick in formale Sprachen

2. Gründe für die Programmiersprachenreihenfolge Prolog --> Pascal/Oberon

  1. Prolog ist eine What-Type-Language, es muss also vom Programmierer nur möglichst genau beschrieben werden, was das Problem ist. Die Lösung des Problemes selbst übernehmen die in Prolog eingebauten Backtracking- und Unifikationsalgorithmen. Im Gegensatz dazu sind Pascal und Oberon How-Type-Languages. Hier muss neben der Definition der Anfangswertbedingungen auch präzise beschrieben werden, wie das Problem zu lösen ist. Man muss also als Programmierer (und Schüler) gleich zwei Aufgaben meistern:

  2. Was ist vom Problem bekannt?
    Wie soll das Problem gelöst werden?
     
  3. In Prolog gibt es weitaus weniger vordefinierte "Pflichtsprachelemente" als in Pascal bzw. Oberon (wie zum BEGIN, VAR, END, ...).

  4.  
  5. Der Umstieg von Prolog zu Oberon bzw. Pascal fällt den Schülern leichter als umgekehrt. Das beobachteten ich und auch andere Autoren an den SchülerInnen. In den ersten beiden Informatik-Grundkursen, die ich leitete, habe ich meine schlechten Erfahrungen mit einem Umstieg von Pascal zu Prolog sammeln können.

  6.  
  7. Die unterschiedlichen Vorleistungen der Schüler werden beim Programmieren durch den Beginn mit der Programmiersprache Prolog nivelliert. Wer hat schon vor Beginn des Grundkurses Informatik privat Prolog kennengelernt. Die Programmierkurse in diversen Zeitschriften beziehen sich ebenso stets auf imperative oder objektorientierte Programmiersprachen.

  8.  
  9. Rückgriffe auf das im Themengebiet "Einblick in das logikorientierte Programmieren" sind später möglich (z.B.: Rekursion, Turm von Hanoi, ...).

  10.  
  11. Eine gute Ankopplung an den Themenbereich "Kommunikation in Netzen" gelingt durch den dort zu behandelnden Punkt "Onlinedatenbanken" und die Möglichkeit in Prolog recht einfach eine Datenbank aufbauen zu können.


3. Analogien Prolog <--> Oberon

Aktion/Problem in Fix-Prolog Entsprechung in Oberon
Bedienung des Systems
  1. Input (Eingabefenster)
  2. Output (Ausgabefenster)
  3. Fenster mit dem Quelltext
Bedienung des Systems
  1. Eingabe ist in jedem beliebigen Fenster möglich
  2. Ausgabe im System-Log oder im Output-Fenster
  3. Fenster mit dem Quelltext
In Fix-Prolog sind nur ganze Zahlen möglich (LONGINT). Die Datentypen LONGINT oder INTEGER können bei Einstiegsproblemen genutzt werden.
Rechenoperationen (+ - * / mod) Rechenoperationen (+ - * DIV MOD)
Consultieren der Datenbasis Compilieren des Moduls
Reconsultieren der Datenbasis System.Free Modulname mit anschließendem
Compilieren
Was leistet ein Prädikat? Was leistet ein Unterprogramm oder ein Modul?
Kommentare /* ... */ Kommentare (* ... *)


Zurck