Das Erlernen einer Programmiersprache: Wissenserwerb aus Texten, Beispielen und komplexen Programmen
[chapter]
Ralph Bergmann, Stefan Boschert, Franz Schmalhofer
1992
Maschinelles Lernen
Bekanntlich können Menschen aus sehr unterschiedlichen Erfahrungen und Lernmaterialien gerade diejenigen Konzepte erwerben, die sich später für ihr weiteres Handeln als nützlich erweisen. Dies gilt auch für das Erlernen einer Programmiersprache. So können relevante Kenntnisse über eine Programmiersprache aus Lehrtexten, aus konkreten Beispielen der verfügbaren Programmkonstrukte und aus vollständigen Programmen mit komplexen Kontrollstrukturen erworben werden. Weitergehende Kenntnisse werden
more »
... durch die Interaktion mit einem Programmiertutor (Weber, 1992), durch das Explorieren einer Programmierumgebung oder beim Erstellen eines speziellen Programms erworben. Für das erfolgreiche Studium eines Lernmaterials weiden meist mehr oder weniger umfangreiche Kenntnisse vorausgesetzt Während sich in manchen Fällen so eine natürliche Sequenz der Lernmaterialien ergibt, können manchmal auch verschiedene Lernmaterialien zum Erwerb des gleichen Wissens eingesetzt werden. Die vorliegende Arbeit beschreibt kognitive Modellierungen des Wissenserwerbs aus drei verschiedenen Materialien: Texten, Beispielen von Programmkonstrukten und komplexen Programmen. Während die Texte und Beipiele alternativ oder zur gegenseitigen Ergänzung beim Erwerb des gleichen Wissens eingesetzt werden können, setzt das Studium von komplexen Programmen bereits solche Kenntnisse über Programmkonstrukte voraus. Wir beschäftigen uns in dieser Arbeit mit dem Erlernen einer Programmiersprache von Anfang an: Zuerst wird Erwerb von Programmierkonstrukten aus Text und Beispielen modelliert, was als die "erste Stunde" des Erlernens einer bezeichnet werden kann. Das darauf aufbauende Erlernen von zielorientiertem Problemlösewissen aus vollständigen Programmen bezeichnen wir als die "zweite Stunde". Modellierung des Erlernens elementarer LISP-Funktionen Jede elementare LISP-Funktion, wie FIRST, REST, EQUAL und LIST, läßt sich durch vier Attribute definieren. Durch die Angabe von Spezifikationen für die Attribute "NAME", "ANZAHL_DER_ARGUMENTE", "ARGUMENTAYP", und "I/0_ BEZIEHUNG" kann bei entsprechenden Vorkenntnissen jede dieser Funktionen als vollständig definiert betrachtet werden. Aus der Kombination der Attribute ergibt sich das folgende Funktionsschema mit vier Slots: Funktionsschema: NAME: ANZAHL_DER_ARGUMENTE: ARGUMENTTYP: I/0_BEZIEHUNG: Durch das Füllen der Slots ergibt sich ein instanziiertes Funktionsschema, wodurch eine LISP-Funktion definiert wird. Die Funktion FIRST ist somit bestimmt durch: NAME: first ANZAHL_DER_ARGUMENTE: eins ARGUMENTTYP: liste I/0_BEZIEHUNG: erstes-element-der-liste Personen, die bereits Kenntnisse der LISP-Syntax und über die elementaren Datenstrukturen in LISP (Atome und Listen) aufweisen und das oben spezifizierte Funktionsschema besitzen, sollten nun eine LISP-Funktion wie FIRST sowohl aus einem Text als auch aus einer geeigneten Menge von Beispielen erlernen können. Tabelle 1 zeigt einen Ausschnitt des Texts und eine Sequenz von Funktionseingaben in den LISP-Interpreter mit dem dazu korrespondieren Output
doi:10.1007/978-3-642-77623-6_8
fatcat:qaw32jjmergyrj2gc2hz2ttlxi