+ Vision eines explorativen Lehrsystems

(am Beispiel Prolog-Programmierung)

Die Studierenden entwickeln ihre Lösungen in einer web-basierten Entwicklungumgebung, bestehend aus Editor, Compiler/Interpreter und Laufzeitsystem, erhalten aber zusätzlich zu den üblichen syntaxbezogenen Systemmeldungen ein erweitertes Feedback (Fehlerbeschreibungen bzw. Korrekturhinweise) über problembezogene Unzulänglichkeiten ihrer Lösungsansätze. Durch sukzessives Beseitigen der identifizierten Mängel wird die Ableitung einer angemessenen Softwarelösung ermöglicht, die den Forderungen der Aufgabenstellung hinreichend Rechnung trägt. Das didaktische Konzept besteht im schrittweisen und interaktiven Heranführen der Studierenden an eine solche Lösung duch Hinweise und Korrekturvorschläge, ohne dass dabei die Lösung selbst bekannt gegeben wird.

Mit dem zu entwickelnden System soll das didaktische Potential des explorativen Lernens auch für den Bereich der Softwareentwicklung nutzbar gemacht werden. Über das aus den Diagnoseresultaten erzeugte Feedback lassen sich Anregungen zur Modifikation der bisher vorliegenden Lösung geben (what?-feedback).

1. Lösungsversuch:

    sum([Kopf|Rest],Summe) :-
      Summe is Kopf + Rest.

Verletzte Bedingungen:
  1. Kein rekursiver Aufruf von sum
  2. Rekursionsabschluss fehlt
  3. Zusicherungen fehlen

Feedback:
  1. Es findet keine rekursive Abarbeitung der Liste statt. Was soll mit der Restliste passieren?

2. Lösungsversuch:

    sum([Kopf|Rest],Summe) :-
       Summe is Kopf + SummeR,
       sum(Rest,SummeR).

Verletzte Bedingungen:
  1. SummeR ist uninstanziiert
  2. Rekursionsabschluss fehlt
  3. Zusicherungen fehlen

Feedback:
  1. Überprüfe die Reihenfolge der Teilziele im Körper der Klausel

3. Lösungsversuch

   sum([Kopf|Rest],Summe) :-
      sum(Rest,SummeR),
      Summe is Kopf + SummeR.

Verletzte Bedingungen:
  1. Rekursionsabschluss fehlt
  2. Zusicherungen fehlen

Feedback:
  1. Was berechnet sum/2, wenn die Liste leer ist? Füge einen Rekursionsabschluss hinzu.

4. Lösungsversuch:

    sum([],0).
    sum([Kopf|Rest],Summe) :-
      sum(Rest,SummeR),
      Summe is Kopf + SummeR.

Verletzte Bedingungen:
  1. Zusicherungen fehlen

Feedback:
  1. Welche Bedingungen müssen die Argumente erfüllen, damit das Prädikat sum/2 korrekt arbeitet? Gib geeignete Zusicherungen an!

Zusätzlich zu den hier dargestellten Feedback-Meldungen können insbesondere beim vollständigen Fehlen einer Lösungsidee konkrete Handlungsanleitungen erforderlich sein (how?-feedback, im Beispiel etwa beim ersten, zweiten und dritten Lösungsversuch). In Einzelfällen wird sich auch die Erläuterung von Begründungszusammenhängen anbieten (why?-feedback, z.B. im dritten Lösungsversuch). Hier wird jedoch stets abzuwägen sein, zwischen dem dafür auf Seiten des Autors erforderlichen Entwicklungsaufwandes und dem dadurch ermöglichten didaktischen Nutzen.

-- WolfgangMenzel - 30 May 2003
 
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback