ONLINE DIAGNOSE IN INTELLIGENTEN MATHEMATISCHEN

Werbung
Dissertation zur Erlangung
des akademischen Grades eines
Doktors der Naturwissenschaften
(Dr. rer. nat.)
ONLINE DIAGNOSE
IN INTELLIGENTEN MATHEMATISCHEN
LEHR-LERN-SYSTEMEN
von
Martin Hennecke
Institut für Mathematik und Angewandte Informatik
Fachbereich IV: Mathematik, Informatik, Naturwissenschaften
Universität Hildesheim
April 1999
Referent:
Koreferent:
Eingereicht am:
Tag der mündlichen Prüfung:
Prof. Dr. Kreutzkamp
Prof. Dr. Förster
30. April 1999
9. Juli 1999
II
VORBEMERKUNGEN
Diese Arbeit entstand während meiner Tätigkeit als wissenschaftlicher Mitarbeiter am Institut für
Mathematik und Angewandte Informatik (bis 31.10.1998: Institut für Mathematik) der Universität
Hildesheim. Das Institut verfolgt im Rahmen eines Projektes zur Softwareentwicklung für den Mathematikunterricht die Entwicklung eines intelligenten Lehr-Lern-Systems zur Bruchrechnung. Die
in dieser Arbeit vorgestellten Algorithmen zur Diagnose von korrekten und fehlerhaften Schülerrechnungen sind Kern des hierzu verwendeten Lernermodells. Auch wenn die vorgestellten Algorithmen unabhängig von der Domäne Bruchrechnung sind, beschränken sich alle Beispiele in dieser
Arbeit auf die Bruchrechnung. Hier ist diese Arbeit deutlich durch ihre Anwendung in dem Projekt
geprägt. Bruchrechnung ist durch die zahlreichen bekannten fehlerhaften Rechenstrategien und die
ständige Möglichkeit zum Wechsel des Repräsentanten eines Bruchs eine sehr komplexe Domäne
für die Diagnose.
Mein besonderer Dank gilt Herrn Professor Dr. Kreutzkamp und Herrn Prof. Dr. Förster für die
verständnisvolle Aufnahme und Diskussion meiner Vorstellungen, die kontinuierliche Förderung
und die vielfältige Unterstützung. Frau Professorin Dr. Habel verdanke ich zahlreiche wertvolle Anregungen zu den theoretischen Anteilen dieser Arbeit.
Im Rahmen der empirischen Untersuchung möchte ich mich herzlich bei Herrn Dr. Wolpers für
die organisatorische Unterstützung bedanken. Den hilfsbereiten Lehrern des Gymnasiums Andreanum, des Scharnhorst Gymnasiums, des Gymnasiums Himmelsthür, des Gymnasiums Michelsenschule, der Realschule Renataschule und der Real- und Hauptschule Don Bosco und ihren über 500
beteiligten Schülern verdanke ich die für die Entwicklung des Diagnosesystems wesentlichen Daten
in Form realer fehlerhafter Rechnung. Insbesondere möchte ich mich bei Herrn Dr. May (Scharnhorst Gymnasium) für die Beratung beim Entwurf der diagnostischen Übungsaufgaben und Herrn
Deumler (Gymnasium Andreanum) für die freundliche Kooperation beim Schulversuch zur Einführung der Bruchrechnung in Klassenstufe 5 und 6 bedanken. In diesem Zusammenhang gilt mein
freundschaftlicher Dank auch den (ehemaligen) wissenschaftlichen Hilfskräften Torsten Jacobs,
Mirko Strüßmann, Tjark Ommen und Christian Meyer sowie Frau Härtling für die Unterstützung
bei der Auswertung und Erfassung der empirischen Untersuchungen.
Schließlich noch eine Anmerkung: Wenn von Benutzern, Lernenden, Schülern, Lehrern und anderen Personengruppen die Rede ist, sind geschlechtsneutrale Termini gemeint. Ich möchte die Lesbarkeit dieser Arbeit nicht durch Dopplung von Begriffen oder Kombinationen männlicher und
weiblicher Endungen beeinträchtigen.
III
IV
INHALTSVERZEICHNIS
ABKÜRZUNGEN UND SYMBOLE
VIII
1 EINFÜHRUNG
1
1.1 LERNERMODELLE
1.1.1
Überlagerungsmodell
1.1.2
Fehlerdiagnosemodell
1.2 DIAGNOSTISCHE LERNSYSTEME
1.2.1
BUGGY
1.2.2
DEBUGGY
1.2.3
LMS/PIXIE
1.3 ÜBERBLICK
6
7
8
9
9
10
12
15
2 MODELLIERUNG VON RECHENSTRATEGIEN
18
2.1 GRUNDLEGENDE DEFINITIONEN
2.1.1
Terme
2.1.2
Termersetzung
2.2 DIAGNOSESYSTEME
2.2.1
Diagnoseregeln
2.2.2
Reduktionsrelation eines Diagnosesystems
2.2.3
Diagnosen
2.2.4
Beispiel
18
19
21
23
23
26
27
29
3 DIAGNOSE VON RECHENSTRATEGIEN
32
3.1 BERECHNUNG DER MENGE DER DIAGNOSEN
3.1.1
Bewertungsfunktionen
3.1.2
Berechnung der Diagnosen (Bestensuche)
3.2 DYNAMISCHE BERECHNUNG DER NACHFOLGERMENGEN
3.2.1
Dynamische Programmierung
3.2.2
Dynamischer Algorithmus zur Bestimmung der Diagnosen
3.3 VERGLEICH MIT DER TERMGRAPHERSETZUNG
3.4 INDIREKTE BERECHNUNG DER DIAGNOSEN
3.4.1
Speicherbedarf
3.4.2
Nachfolgermengen-Graphen
3.4.3
Aktualisierung der Bewertungs- und Tiefenfunktion für Terme
3.5 BERECHNUNG DER DIAGNOSEN FÜR EINE SCHÜLERANTWORT
3.5.1
Vorgängermengen
3.5.2
Permutierte Regelfolgen
3.5.3
Dynamische Berechnung in der zweiten Phase
3.6 KONTEXTKONDITION
3.7 PLÄNE
3.7.1
Einsatzbereiche
3.7.2
Beschreibung
3.7.3
Planbasierte Breitensuche
33
35
36
38
38
40
44
47
47
48
49
51
51
52
54
55
57
57
57
59
V
4 BUGFIX
62
4.1 SPEZIFIKATION DES DIAGNOSESYSTEMS (BFS)
4.1.1
Grundlegende Syntaxdiagramme
4.1.2
Signatur
4.1.3
Diagnoseregeln
4.1.4
Anwendungskondition
4.1.5
Kontextkondition
4.1.6
Gruppen
4.1.7
Pläne
4.1.8
Deaktivierung
4.2 DESIGN UND IMPLEMENTIERUNG
4.2.1
Signatur
4.2.2
Terme
4.2.3
Diagnoseregeln
4.2.4
Gruppen
4.2.5
Pläne
4.3 PHASE I
4.3.1
Design und Implementierung
4.3.2
Beispiel
4.4 PHASE II
4.4.1
Design und Implementierung
4.4.2
Beispiel
4.4.3
Filter
4.5 WIEDERAUFSETZEN
4.5.1
Wiederaufsetzen zur Qualitätsverbesserung
4.5.2
Wiederaufsetzen nach Zwischenergebnissen
4.5.3
Wiederaufsetzen bei neuer Aufgabenstellung
62
63
65
66
68
72
73
74
75
76
76
79
82
84
84
86
86
87
93
93
94
97
99
100
100
102
5 EMPIRISCHE UNTERSUCHUNGEN
103
5.1 7TE-KLASSEN-STUDIE
5.1.1
Diagnostischer Test 1
5.1.2
Diagnostischer Test 2
5.1.3
Diagnostischer Test 3
5.2 6TE-KLASSEN-STUDIE
103
104
107
109
111
6 ZUSAMMENFASSUNG UND AUSBLICK
114
VI
ANHANG A: DIAGNOSESYSTEM ZUR BRUCHRECHNUNG
117
A.1 GRUNDRECHENARTEN IN DEN NATÜRLICHEN ZAHLEN
A.2 ADDITION
A.2.1 Brüche
A.2.2 Hauptnennerbildung bei der Addition von Brüchen
A.2.3 Ganze Zahlen und Brüche
A.2.4 Gemischte Zahlen
A.2.5 Hauptnennerbildung bei der Addition von gemischten Zahlen
A.2.6 Gemischte und natürliche Zahlen
A.2.7 Kürzen
A.3 SUBTRAKTION
A.3.1 Brüche
A.3.2 Hauptnennerbildung bei der Subtraktion
A.3.3 Ganze Zahlen und Brüche
A.3.4 Gemischte Zahlen
A.3.5 Hauptnennerbildung bei der Subtraktion von gemischten Zahlen
A.3.6 Gemischte und natürliche Zahlen
A.3.7 Kürzen
A.4 MULTIPLIZIEREN
A.4.1 Brüche
A.4.2 Ganze Zahlen und Brüche
A.4.3 Gemischte Zahlen
A.4.4 Kürzen
A.5 DIVIDIEREN
A.5.1 Brüche
A.5.2 Ganze Zahlen und Brüche
A.5.3 Gemischte Zahlen
A.5.4 Kürzen
A.6 KÜRZEN
A.6.1 Bruch zu Bruch
A.6.2 Bruch zu Ganzzahl
A.7 UMWANDLUNG
118
119
119
120
122
123
124
128
129
130
130
131
133
134
135
138
139
140
140
141
142
143
144
144
146
147
148
149
149
150
151
ANHANG B: STATISTIKEN ZUR ERSTEN PHASE I
152
ANHANG C: RECHENGRAPHEN
161
C.1 VERZEICHNIS DER RECHENGRAPHEN
C.2 BRUCHRECHNUNG
C.2.1 Kürzen
C.2.2 Addition
C.2.3 Subtraktion
C.2.4 Addition und Subtraktion mit drei Operanden
C.2.5 Multiplikation
C.2.6 Division
162
163
163
170
173
185
187
194
LITERATURVERZEICHNIS
203
VII
ABKÜRZUNGEN UND SYMBOLE
Platzhaltervariable der Sorte s (Definition 7, S. 23)
s
⇒r
1-Schritt-Reduktionsrelation eines Diagnosesystems (Definition 11, S. 26)
⇒R
Reduktionsrelation eines Diagnosesystems (Definition 11, S. 26)
⇒
Kurzschreibweise für ⇒ R (Definition 11, S. 26)
Regelordnung (Definition 29, S. 84)
Länge einer Regelfolge (Definition 13, S. 27)
Länge einer Fehlerdiagnose (Definition 15, S. 28)
σ
Einsetzung (Definition 5, S. 21), Kurzschreibweise für σ ∗
σ∗
Substitution (Definition 5, S. 21)
Σ
Signatur (Definition 1, S. 19)
Σ( X )
Signatur mit Variablen (Definition 4, S. 20)
τ
Aritätsfunktion einer alt. Signatur-Definition (Bemerkung zu Definition 1, S. 19)
Ω
Mengenfamilie der Operatoren einer Signatur Σ (Definition 1, S. 19)
Ω(
)
Aritätenmenge eines Operators (Definition 2, S. 20)
Ω w, s
Menge der Operatoren der Arität w → s (Definition 1, S. 19)
Ξ
Menge aller Einsetzungen (Definition 5, S. 21)
A
dem Lernenden gestellte Aufgabe (Startterm)
aDiag
Bewertungsfunktion für Diagnose (Definition 16, S. 35)
aR
Bewertungsfunktion für Regeln (Definition 16, S. 35)
a Σ * ,i
Bewertungsfunktion für Terme im i-ten Iterationsschritt (Definition 16, S. 35)
Abl
Menge aller Ableitungen (Definition 13, S. 27)
Ac
Anwendungskonditionen (Definition 8, S. 24)
adr
Speicheradresse eines Terms (Definition 29, S. 84)
C
Menge aller Kontexte (Definition 7, S. 23)
C[ ]
Kontext (Definition 7, S. 23)
Cc
Kontextkondition (Definition 26, S. 55)
D
Diagnosesystem (Definition 10, S. 25)
VIII
Diag
Menge aller Diagnosen (Definition 15, S. 28)
Diag i
im i-ten Iterationsschritt bekannte Teilmenge von Diag (Abschnitt 3.1, S. 33)
dom
Domäne einer Substitution (Definition 5, S. 21)
fib
Fibonacci-Funktion (Abschnitt 3.2.1, 38)
Follow( w) Nachfolgermenge von w (Definition 14, S. 28, vgl. Abschnitt 3.2.2, S. 40)
ITS
Intelligentes tutorielles System
L(D)
von D erzeugte Sprache (Definition 12, S. 27)
Spanε
aufspannende Knotenmenge (Definition 24, S. 52)
p
Prioritätsfunktion eines Diagnosesystems (Definition 10, S. 25)
Previous w Vorgängermenge von w (Definition 23, S. 51)
R
Regelsystem eines Diagnosesystems (Definition 10, S. 25)
Rf
Menge aller Regelfolgen (Definition 13, S. 27)
S
Menge der Sorten einer Signatur Σ (Definition 1, S. 19)
TΣ
Terme über der Signatur Σ (Definition 3, S. 20)
TΣ , s
Terme der Sorte s über der Signatur Σ (Definition 3, S. 20)
TΣ ( X )
Terme über der Signatur Σ mit Variablen X (Definition 4, S. 20)
TΣ ( X ),s
Terme der Sorte s über der Signatur Σ mit Variablen X (Definition 4, S. 20)
tiefe
Tiefenfunktion für Terme (Definition 17, S. 37)
tiefei
Tiefenfunktion für Terme im i-ten Iterationsschritt (Definition 17, S. 37)
ToDoi
im i-ten Iterationsschritt bekannte Teilmenge von L( D) (Abschnitt 3.1, S. 33)
V
Sicht (Definition 27, S. 58)
var
Menge der Variablen eines Terms (Definition 4, S. 20)
X
Mengenfamilie der Variablen (Definition 4, S. 20)
Mengenfamilie der Variablen eines Diagnosesystems (Definition 10, S. 25)
X
Mengenfamilie der Variablen mit Platzhaltervariablen (Definition 7, S. 23)
IX
KURZFASSUNG
Die Fähigkeit eines Lehrers, die individuellen Fehlvorstellungen seiner Schüler zu erkennen und
seine Lehrmethoden daran anzupassen, ist notwendige Voraussetzung für gezielte Förder- bzw. Individualisierungsmaßnahmen. Aufgrund des hohen Zeitaufwandes ist dies in der Praxis jedoch
kaum möglich. In computergestützten mathematischen Lernsystemen konnten diagnostische Fähigkeiten bis heute nur bedingt eingesetzt werden, da bisherige Diagnosesysteme wie DEBUGGY
(Burton, 1982) oder LMS (Sleemann, 1982, 1983) nicht schnell oder flexibel genug sind.
In dieser Arbeit wird ein konzeptionell neuer Algorithmus zur Online-Diagnose in einem mathematischen Lernsystem vorgeschlagen, der auf Konzepten der Termersetzung und der dynamischen
Programmierung basiert. Mit dem Diagnoseprogramm BugFix („bug“ engl. für „Fehler“, „fix“ engl.
für „reparieren“) wird eine leistungsfähige Implementierung vorgestellt, die für vorgegebene Aufgabenstellungen mehrere Milliarden verschiedene Schülerrechnungen als mögliche Diagnosen berücksichtigt, ohne daß eine subjektiv wahrnehmbare Wartezeit für den Schüler entsteht. Die verwendeten Datentypen ermöglichen durch maximale Strukturteilung eine effiziente Speicherverwaltung.
Damit stellt BugFix eine leistungsfähige und leicht integrierbare diagnostische Komponente für den
Einsatz in intelligenten Lernsystemen dar. Die gewonnenen diagnostischen Informationen können
sowohl vom Lernsystem als auch vom menschlichen Lehrer über ein Lehrsystem zur Vermeidung
und Therapie von Fehlvorstellungen der Schüler verwendet werden.
X
ABSTRACT
The ability of human teachers to diagnose the misconceptions of students and to adapt the teaching
methods, is a necessary prerequisite for direct promotion or individualising measures. Due to the
high expenditure of time this is nearly impossible in practice. In computer-assisted mathematical
training systems this diagnostic abilities couldn’t be used until today, because existing diagnostic systems such as DEBUGGY (Burton, 1982) or LMS (Sleemann, 1982, 1983) are not fast or flexible
enough.
A new concept for an online-diagnosis-algorithm in mathematical training systems is proposed. It is
based on term rewriting and dynamic programming. For the diagnostic program BugFix an efficient
implementation is presented. As possible diagnoses BugFix considers several billions different student calculations for a given task, without a subjectively perceptible waiting period for the student.
The used data types enable an efficient memory management by maximum structure sharing.
Thus, BugFix represents an efficient and easily useable diagnostic component for the application in
intelligent training systems. The obtained diagnostic information can be used both by the training
system and by the human teacher to avoid and therapy of misconceptions of the student.
XI
XII
1 Einführung
In den verschiedensten Bereichen der schulischen wie auch der betrieblichen Aus- und Weiterbildung nimmt der Einsatz des Computers eine immer größere Bedeutung ein. Insbesondere sind multimediale Anwendungen, mit denen Schüler in Interaktion mit dem Rechner lernen, im Einsatz. Die
zahlreichen verschiedenen Ausprägungen dieser Programme (vgl. Schulmeister, 1997) werden üblicherweise unter dem Begriff „Lernsystem“ zusammengefaßt. Auf der anderen Seite existieren Anwendungen, sogenannte „Lehrsysteme“1, die Lehrer bei der Planung, Durchführung und Nachbereitung des Unterrichts unterstützen.
Von besonderem Interesse sind Systeme, in denen sowohl die Funktionen von Lehr- als auch von
Lernsystemen integriert sind. Als angemessene Bezeichnung wird hierfür im weiteren der Begriff
„Lehr-Lern-Systeme“ verwendet. Ihre Charakterisierung ist über die Rolle des Lehrers sinnvoll. So
kann die Planung von Lernzielen unterstützt werden, indem etwa die Inhalte des Lernsystems beschränkt werden und/oder der Schwierigkeitsgrad der Übungsaufgaben adaptiert wird (z.B. in „Mathe-Blaster“ von Davidson/Klett). Lehr-Lern-Systeme können auch die Durchführung des Unterrichts wesentlich unterstützen. So ermöglichen insbesondere Systeme für entferntes Lernen (z.B.
Virtueller Campus) die Kommunikation zwischen Lehrern und Lernenden oder die moderierte
Kommunikation entfernter Lernender untereinander. Auch Techniken wie White-Board-Sharing
oder Videokonferenzen werden in diesem Sinn verwendet. Im Bereich der Nachbereitung des Unterrichts können u.a. Systeme, die den Lehrer bei der Bewertung von Schülerleistungen unterstützen, eingeordnet werden.
Eine Sonderstellung unter den Lehr-Lern-Systemen nehmen die „diagnostischen Lehr-LernSysteme“ ein. Diese ermöglichen dem Lehrer die Diagnose des Wissens und der Fehlvorstellungen
seiner Schüler. Richtig eingesetzt dienen sie damit der Planung von Unterricht, insbesondere von
Förder- und Individualisierungsmaßnahmen. Die diagnostischen Informationen können aber auch
vom Lernsystem selbst genutzt werden – etwa indem gezielte Hilfen oder Gegenbeispiele gegeben
werden. Das Lernsystem kann so bereits der Bildung von Fehlvorstellungen entgegenwirken.
Das erste diagnostische Lehr-Lern-System wurde von Brown und Burton (1978) entworfen. Ihr
Programm BUGGY erlaubt die Simulation von korrekten und fehlerhaften Schülerrechnungen am
Beispiel der Subtraktion natürlicher Zahlen (vgl. Abschnitt 1.2). Die eigentliche Diagnose von
Fehlvorstellungen wird in der Erweiterung DEBUGGY (Burton, 1982) realisiert. DEBUGGY ge1
Der Begriff „Lehrsystem“ ist abzugrenzen von der gleichlautenden Übersetzung für tutorielle Systeme (vgl. Strube, 1996, S. 289) die
einige deutsche Autoren favorisieren.
1
neriert Hypothesen über die Vorstellungen eines Lernenden und testet sie mit Hilfe von BUGGY.
DEBUGGY ist als Offline-Diagnose konstruiert. Die eigentliche computergestützte Diagnose wird
hier vom Lehrsystem durchgeführt. So kann zwar der Lehrer, nicht aber das Lernsystem, die diagnostischen Informationen verwenden. Der Versuch, eine Online-Diagnose in das interaktives
Lernsystem IDEBUGGY („i“ für interaktiv) zu integrieren, war nicht zufriedenstellend realisierbar.
Dieser schwerwiegende Nachteil ist Ansatzpunkt der vorliegenden Arbeit. Sie hat die Entwicklung
eines Diagnosealgorithmus für intelligente mathematische Lehr-Lern-Systeme, deren diagnostische
Informationen sowohl vom Lehrer als auch vom Lernsystem genutzt werden können, zum Ziel.
Abbildung 1 verdeutlicht schematisch die Diagnoseaufgabe: Aus einer bekannten Aufgabenstellung
und den zugehörigen beobachtbaren Lösungen des Lernenden soll der Diagnosealgorithmus die
nicht beobachtbaren Rechenstrategien des Lernenden bestimmen. Das gezeigte Beispiel verdeutlicht
zudem anschaulich, wie komplex die Diagnose bereits für eine (scheinbar) einfache Additionsaufgabe sein kann. Abbildung 2 zeigt zwei der möglichen Diagnosen der Beispielaufgabe.
Aufgabe
Zwischenlösung(en)
15
2
7
1
2
Lösung
5 6
+
4 2
Diagnosealgorithmus
Abbildung 1: Abstraktes Schema der Diagnose
Wichtige Akzeptanzkriterien für die diagnostische Komponente des Lernsystems sind
•
Laufzeit,
•
Flexibilität und
•
Diagnosegüte.
Dabei ist die Laufzeit bezogen auf das subjektive Empfinden des Lernenden. Insbesondere Wartezeiten nach der Eingabe von Zwischenschritten oder Lösungen sind nicht akzeptabel. Auch dürfen
weder die Auswahl der Übungsaufgaben noch die Vielfalt der Rechenwege des Lernenden durch
den Diagnosealgorithmus eingeschränkt werden. Möglichst zuverlässige Diagnosen der Fehlvorstellungen sollten bereits nach wenigen, am besten nach einer Übungsaufgabe vorliegen.
2
1. Diagnose für Aufgabe
5
4
+
6
2
und Lösung
15
2
2. Diagnose für Aufgabe
5 6
+
4 2
5
6:2
Kürzen über Kreuz
+
4:2
2
5 3
+
2 x Division
2 2
Addition durch Multiplikation bei 5 ⋅ 3
gemeinsamen Nenner
2
15
Multiplikation
2
Aufgabenstellung
5
4
+
Aufgabenstellung
Addition durch Multiplikation
2 x Multiplikation
Kürzen mit Kürzungszahl im
Nenner
Division
6
2
und Lösung
15
2
5 6
+
4 2
5⋅6
4⋅2
30
8
30 : 2
2
15
2
Abbildung 2: Beispiele für mögliche Diagnosen
Die genannten Ziele lassen sich mit den in DEBUGGY verwendeten Konzepten jedoch nicht erreichen. Für den in dieser Arbeit vorgeschlagenen Diagnosealgorithmus wurde die Erfahrung genutzt, daß fehlerhafte Rechenstrategien häufig eine „ähnliche“ Regelstruktur besitzen. Psychologisch erklärbar ist dieses Phänomen durch die REPAIR-Theorie von VanLehn (1982, 1989).
Abbildung 3 demonstriert dies an drei fehlerhaften Rechenstrategien für die Addition von Brüchen.
So berechnen die erste und dritte Rechenstrategie den gleichen Nenner und die zweite und dritte
Rechenstrategie den gleichen Zähler.
z1 z2
z +z
+ → 1 2
n1 n2
n1 + n2
z1 z2
z ⋅z
+ → 1 2
n1 n2
n1 ⋅ n2
z1 z 2
z ⋅z
+ → 1 2
n1 n2
n1 + n2
Abbildung 3: „Ähnliche“ fehlerhafte Rechenstrategien für die Addition
Anstatt nun wie BUGGY einzelne Hypothesen zu überprüfen, berechnet der vorgeschlagene Diagnosealgorithmus alle modellierten Fehlvorstellungen quasi parallel. Das Ergebnis ist eine möglichst
umfangreiche Menge von möglichen Schülerlösungen und zugehörigen Rechenstrategien. Bei der
Berechnung treten jedoch zahlreiche Synergieeffekte auf. So müssen z.B. in obigem Beispiel die
möglichen Rechenstrategien für die Addition und die Multiplikation der dritten Rechenstrategie
nicht mehr berechnet werden, da sie bereits von der Simulation der ersten beiden Rechenstrategien
bekannt sind. Dem Diagnosealgorithmus liegt dabei ein Ansatz zugrunde, der in der Informatik als
„dynamische Programmierung“ bezeichnet wird – wobei es hier zahlreiche Parallelen zur Termgraphersetzung (vgl. Sleep, Plasmeijer, van Eekelen, 1993; Plasmeijer, van Eekelen, 1993;
Plump, 1998) gibt.
3
Entsprechend dem vorgeschlagenen Diagnosealgorithmus wurde das System BugFix implementiert.
Zur Demonstration wurde die Domäne der Bruchrechnung gewählt, die durch die zahlreichen bekannten fehlerhaften Rechenstrategien und der ständigen Möglichkeit des Kürzens und Erweiterns
besonders anspruchsvoll für die Diagnose ist. BugFix simuliert abhängig von der Aufgabenstellung
parallel zur Schülerrechnung bis zu mehreren Milliarden möglicher korrekter und fehlerhafter Rechenwege, ohne daß der Schüler eine subjektiv wahrnehmbare Verzögerung durch die Diagnose
bemerkt.
Diagnostische Systeme sind besonders aus dem Bereich der sogenannten intelligenten tutoriellen
Systeme (ITS) bekannt. Sie werden in der Literatur (Wenger, 1987; Schulmeister, 1997) auf das Programm SCHOLAR von Carbonell (1970a, 1970b) zurückgeführt. Der Bereich der intelligenten tutoriellen Systeme wird seitdem in den Bereich der künstlichen Intelligenz (KI) eingeordnet (Barr,
Feigenbaum, 1986). Neben BUGGY sind weitere beispielhafte Implementierungen für intelligente
tutorielle Systeme vor allem WHY (Steven, Collins, Goldin, 1978), SOPHIE (Brown, Burton, de
Kleer, 1982), WEST (Burton, Brown, 1979), WUMPUS (Carr, Goldstein, 1977; Goldstein, 1979)
und GUIDON (Clancey, 1979, 1982, 1983) zu nennen. Für eine Übersicht der genannten Systeme
sei etwa auf Barr und Feigenbaum (1986) verwiesen. Schulmeister (1997) skizziert zusätzlich aktuelle
intelligente tutorielle Systeme, die für diese Arbeit jedoch nur untergeordnete Bedeutung haben. Die
Anforderungen an ein ITS orientieren sich nach Gentner (1979) am menschlichen Lehrer:
„A tutor must be able to generate instructional material: to present the subject matter, ask questions of the
students, give examples, and give explanations to the student. A tutor must be able to answer free-form
questions from the student. The tutor must be able to evaluate the student’s responses or behavior. And as
one of the more difficult task, the tutor must be able to diagnose student errors, or ‘bugs’. It is relatively easy
to tell when a student is making an error; the more difficult task for the tutor is to determine the underling
misconceptions responsible for that error. And once the source of the error has been found, the tutor has to
figure out the most efficient way to correct the student’s misunderstanding. [...] the tutor must be aware of
the student’s progress or lack or progress, and adapt the instructional techniques to that particular student.”
Intelligente tutorielle Systeme versuchen die genannten Aufgaben durch die Bildung von vier Modellen zu bewältigen. Hierzu gehören eine Modellierung des Wissensgebietes (domain model), eine
Modellierung des Lernenden (student model), eine Modellierung pädagogischer Strategien (tutor
model) und eine Modellierung der Kommunikation des Programms mit dem Lernenden (interface).
Die einzelnen angesprochenen Modelle und ihr Zusammenwirken sind ausführlich bei Burton und
Brown (1976), Self (1974), Sleemann und Brown (1982) und Spada und Opwis (1985) beschrieben.
4
Bis heute haben intelligente tutorielle Systeme jedoch den Charakter von Prototypen nicht verloren
(Schulmeister, 1997). Als Grund hierfür wird u.a. der hohe Entwicklungsaufwand von 200-300
Stunden pro Unterrichtsstunde (Lippert, 1989) genannt. Die enge Bindung an die Domäne erschwert zudem die Wiederverwendung bereits existierender Komponenten. Die historische Entwicklung der computergestützten Fehlerdiagnose im Kontext der intelligenten tutoriellen Systeme
muß ihre heutigen Anwendungsgebiete jedoch nicht auf diese beschränken. Natürlich enthalten alle
Lernsysteme, die ihren Lernenden Aufgaben stellen, sinnvolle Einsatzfelder für diagnostische
Komponenten.
Der folgende Abschnitt 1.1 dieser Einführung gibt einen Einblick in die verschiedenen Arten der
Lernermodelle – und damit auch in mögliche Reaktionen eines Lernsystems auf Übungsaufgaben.
Danach werden die diagnostischen Lernsysteme DEBUGGY und LMS/PIXIE als für diese Arbeit
relevante Vergleichssysteme vorgestellt. Abschließend folgt in Abschnitt 1.3 ein Überblick über die
Gliederung der vorliegenden Arbeit.
5
1.1 Lernermodelle
Auf dem kommerziellen Markt sind derzeit zahlreiche mathematische Lernsysteme erhältlich, z.B.
„Alice“ (Cornelson), „Addy“ (Cendant/Sierra Coktel), „Alfons“ (Lernverlag/Systhema) und „Mathe-Blaster“ (Davidson/Klett), um nur Produkte der wichtigsten deutschen Hersteller bzw. Vertreiber zu nennen. Diesen Programmen ist gemein, daß sie Schülerübungen bewerten, indem sie die
Schülerlösungen mit einem gespeicherten oder durch das Lernsystem berechneten korrekten Wert
vergleichen. Existieren für eine Aufgabe mehrere korrekte Formen der Lösungen bzw. Zwischenlösungen, müssen alle Alternativen vom Programm vorhergesehen werden. Hierbei spricht man von
Mehrdeutigkeitstoleranz. Da die meisten Lernsysteme den Schüler bei den Aufgaben in ein festes
Schema zwingen, fällt die geringe Mehrdeutigkeitstoleranz nur selten auf. Sollen feste Schemata
vermieden werden, ist der Einsatz von Computeralgebra-Systemen eine mögliche Lösung. Aufsetzend auf dem Computeralgebra-System MuPAD (Fuchssteiner et. al., 1993) befindet sich derzeit
beim Verlag Cornelsen ein entsprechendes System in Vorbereitung.
Dennoch bleibt das Ergebnis dieser Bewertung beschränkt auf „richtig“ oder „falsch“. Nach der
Bearbeitung mehrerer Aufgaben drückt sich diese Bewertung in einer durchschnittlichen Fehlerrate
aus. Diese rein quantitativen Aussagen geben jedoch keinen Hinweis über die Leistungen und/oder
die Ursachen einer Lernschwierigkeit bzw. die Gründe für das Ausbleiben einer angestrebten Leistung (Radatz, 1979). Sie erlauben damit dem Lehrer nicht die Einleitung von gezielten Förder- oder
Individualisierungsmaßnahmen und verführen eventuell zu einer nicht sachgerechten Leistungsbewertung. Beantworten z.B. zwei Schüler die Aufgabe
3
2
+ 74 mit
5
3
bzw. mit
7
2
, so ist die übliche
Bewertung für beide Schüler gleich: falsch! Diese Bewertung spiegelt jedoch nicht den unterschiedlichen Leistungsstand der beiden Schüler wider, wie ein Blick auf die Rechenwege zwei fiktiver
Schüler zeigt:
Schüler 1:
3 7 3 + 7 10 5
+ =
=
=
2 4 2+4 6 3
Schüler 2:
3 7 6 7 14 7
+ = + =
=
2 4 4 4 4 2
Während der erste Schüler die Addition von Brüchen anscheinend nicht verstanden hat, ist dem
zweiten Schüler lediglich ein Flüchtigkeitsfehler bei der Addition in den natürlichen Zahlen unterlaufen. Die eigentliche Addition der Brüche hingegen erfolgte beim zweiten Schüler korrekt.
Ein möglicher Ansatz, solche Flüchtigkeitsfehler zu behandeln, ist von probabilistischer Natur: Falls
ein Schüler einen Fehler macht, stellt das Lernsystem eine Reihe weiterer „ähnlicher“ Fragen. Beantwortet der Schüler diese korrekt, so stuft das Lernsystem den Fehler als Flüchtigkeitsfehler ein,
andernfalls als systematisch. Diese Annahme kann jedoch fehlerhaft sein. Angenommen, der Schü6
ler rechnet
1
6
+ 32 = 1 und als weitere Übungsaufgaben folgen
1
4
+ 32 =
7
4
und
3
5
+ 14 =
17
20
, dann
schließt das Lernsystem, daß es sich bei dem ersten Fehler um einen Flüchtigkeitsfehler handelt. Ein
Blick auf den fiktiven fehlerhaften Rechenweg bei der ersten Aufgabe zeigt, daß diese Schülerbewertung falsch ist:
1 3 1 1
+ = + =1
6 2 2 2
Fehlerhaftes Kürzen mit 3
Der Schüler hat fehlerhaft gekürzt. Dieser Fehler war bei den beiden Testaufgaben jedoch nicht
möglich. Das Problem ist hier offensichtlich die Spezifikation des Begriffs der „ähnlichen“ Aufgaben. Damit eine Aufgabe für diese probabilistische Vorgehensweise hinreichend „ähnlich“ ist, muß
der vom Schüler gemachte Fehler (oder die gemachte Kombination mehrerer Fehler) auch bei den
weiteren Aufgaben möglich sein. Hiermit wird die Problematik bzw. innere Widersprüchlichkeit der
geschilderten Vorgehensweise klar: Wie kann diese Forderung erfüllt werden, wenn nicht einmal
bekannt ist, welchen Fehler der Schüler gemacht hat?
1.1.1 Überlagerungsmodell
Das Überlagerungsmodell (engl. „overlay model“ oder auch „subset model“) geht auf Carr und
Goldstein (1977) zurück, wobei bereits der Prototyp SCHOLAR (Carbonell, 1970a, 1970b) diese
Technik verwendete. Dem Überlagerungsmodell liegt die Annahme zugrunde, daß Schülerwissen
immer ein Bestandteil des korrekten Bereichswissen des Lernsystems ist. Das Wissen des Schülers
wird also immer als Teilmenge (engl. „subset“) des Expertenwissens betrachtet (siehe Abbildung 4).
Als klassisches Beispiel für ein Überlagerungsmodell kann Carr und Goldsteins Implementierung
des Tutors in dem Spiel „Hunt the Wumpus“ in WUSOR-II bezeichnet werden. Weiterentwickelte
Überlagerungsmodelle (z.B. Murray, 1991) erweitern das Konzept, indem sie auch Aussagen zulassen, wie gut der Schüler den bekannten Teil des Expertenwissens beherrscht.
Wissen des
Schülers
Wissen des
Experten
Abbildung 4: Überlagerungsmodell
7
Dem Vorteil der leichten Realisierbarkeit des Überlagerungsmodells steht der entscheidende Nachteil entgegen, daß nicht zwischen fehlendem und fehlerhaftem Wissen des Schülers unterschieden
werden kann. Auch kann das Überlagerungsmodell nicht alternatives korrektes Wissen bewerten.
1.1.2 Fehlerdiagnosemodell
Beim Fehlerdiagnosemodell sollen auch alternativ-korrektes und fehlerhaftes Wissen der Lernenden
modelliert werden. Hierzu wird das Expertenwissen um eine Bibliothek mit relevanten korrektem
Alternativwissen und fehlerhaftem Wissen erweitert (siehe Abbildung 5). Die ersten Realisierungen
von Fehlerdiagnosemodellen gehen auf Brown, Burton und VanLehn (Brown & Burton, 1978; Burton, 1982; Brown & VanLehn, 1980), Sleeman und Smith (1981) und Young und O’Shea (1981)
zurück.
Wissen des
Experten
Wissen des
Schülers
Mögliches
Wissen
des
Schülers
Abbildung 5: Fehlerdiagnose-Modell
Soll der Diagnosealgorithmus beliebige Fehlerkombinationen erkennen, führen große Fehlerbibliotheken schnell zu komplexen Suchproblemen, die nicht mehr in angemessener Zeit gelöst werden
können. Man beschränkt sich daher meist auf eine kleine Anzahl der wichtigsten Fehlervorstellungen (z.B. Stern, Beck, Woolf, 1996) oder kleine Domänen (z.B. nur Subtraktion natürlicher Zahlen
bei Burton, 1982) und/oder führt die Fehlerdiagnose erst später auf Forschungsrechnern durch.
Das wesentliche Problem der Fehlerdiagnose-Modelle ist die sehr zeitaufwendige und damit kostenintensive Aufstellung der domänenabhängigen Fehlerbibliothek. In der letzten Zeit wurden daher
einige Systeme entwickelt, die in gewissen Grenzen in der Lage sind, Fehlvorstellungen selbständig
zu erkennen. Mit Erweiterungen zu LMS (vgl. Abschnitt 1.2.3) entwarfen Sleeman et. al. (1990) ein
System, das ausgehend von einer gegebenen Fehlerbibliothek durch deren Manipulation neue Fehlervorstellungen erzeugt. Dies ist eine Technik, die auch in BugFix sehr leicht integriert werden
könnte. Systeme wie ACM (Langley & Ohlsson, 1984; Langley et. al, 1990) und ASSERT (Baffes,
1994; Baffes & Mooney, 1996) konstruieren eine Fehlerbibliothek durch logische Schlüsse.
8
1.2 Diagnostische Lernsysteme
1.2.1 BUGGY
Die Grundlagen von BUGGY gehen auf eine empirische Untersuchung von Schülerrechnungen
bezüglich grundlegender algebraischer Umformungen zurück (Brown et. al., 1975). Das Ergebnis
dieser Studie ist die Beobachtung, daß alle Teilfertigkeiten der Schüler unabhängig voneinander
durch fehlerhafte Verhaltensweisen ersetzt werden können. Für die folgenden Arbeiten beschränkten sie sich mit der Arithmetik, speziell der Subtraktion natürlicher Zahlen, auf eine einfachere Domäne. Zur Modellierung des Schülerverhaltens entwickelten Brown et. al. (1977b) ein sogenanntes
prozedurales Netzwerk, das die Zerlegung einer Fertigkeit in ihre Teilverfahren im Sinne eines Aufrufdiagramms darstellt. Abbildung 6 (S. 9) zeigt das prozedurale Netzwerk für die Subtraktion.
subtract
set up
write
top
column
sequence
transform
write
bottom
bottom
> top
new
problem
compare
invert
done
subtract
column
borrow
needed
do
borrow
change
answer sign
add
ten
complete
column
borrow
ten
find next
column
get top
number
borrow
one
subtract
one
zero
compare
digits
addition
fact table
get
nine
scratch
get top
digit
get bottom
digit
subtraction
fact table
write down
Abbildung 6: Das „prozedurale Netzwerk“ für die Subtraktion (nach
Brown und Burton, 1978)
Mit Hilfe von BUGGY widerlegten Burton und Brown die Annahme, daß Schüler kaum Rechenstrategien befolgen. Die hohe Fehleranfälligkeit von Schülern ist vielmehr häufig auf sehr konsequentes Befolgen von fehlerhaften Rechenstrategien zurückzuführen (vgl. auch VanLehn, 1982,
1989). Die Integration von BUGGY in ein intelligentes tutorielles System für Studierende des Lehramts zeigte zudem, daß sich die Fähigkeiten der Studierenden bei der Erkennung von Fehlerstrate-
9
gien verbesserten (Brown et. al., 1977a). Abbildung 7 zeigt einen Ausschnitt aus dem Dialog dieses
Lernsystems mit einer Gruppe von Studierenden.
BUGGY: Welcome to Buggy. I have chosen a bug.
Here is an example of the bug.
17
+ 5
13
Now you can give me problems to determine the bug.
Team: 18 43
+ 6 +79
BUGGY: 15 23
Team: Got the bug! Student adds the number to be carried in
the last column worked in.
BUGGY: Here are some problems to test your theory about the
bug. What is:
21
+39
Team: 51
BUGGY: That’s not the bug I have. Using my bug:
21
+39
15
Try giving me more examples ...
51 99 68
Team:
+1707 +99 + 9
21 36 23
BUGGY:
Team: Got the bug! The student is adding all the digits
together.
BUGGY: Here are some problems to test your theory about the
bug. What are:
33 1091
8 28 90
+99 + 60 +34 +70 + 6
17 15 17 15
Team: 24
BUGGY: Very good. My description of the bug is: The student
always sums up all the digits, with no regard to
columns.
Abbildung 7: Beispiel für ein BUGGY-Spiel mit Lehramtsstudenten (nach
Brown und Burton, 1978)
1.2.2 DEBUGGY
Fünf Jahre später stellte Burton (1982) diagnostische Erweiterungen zu BUGGY vor. Anders als
BUGGY, das durch ein künstliches prozedurales Netzwerk Schülerrechnungen simuliert, war das
Ziel dieser Entwicklungen, aus realen Schülerrechnungen ein individuelles prozedurales Netzwerk
zu erzeugen. Dieses stellt dann eine Diagnose der Kenntnisse bzw. Fehlvorstellungen des Schülers
dar. Burton unterscheidet hierbei mit DEBUGGY und IDEBUGGY zwei verschiedene Versionen.
DEBUGGY ist auf die Diagnose von bereits vollständig vorliegenden Sammlungen von Schülerrechnungen ausgelegt, wie sie z.B. nach Tests vorliegen. Burton spricht bei diesem Einsatzgebiet
10
vom Offline-Betrieb. Im Gegensatz dazu ist die Online-Version IDEBUGGY für den interaktiven
Diagnoseeinsatz in einem Lernsystem konzeptioniert.
Die naheliegende Idee ist es, systematisch individuelle prozedurale Netzwerke zu erzeugen und
dann zu überprüfen, ob diese die vorliegenden Schülerrechnungen erklären. Viele Schülerrechnungen sind nur durch das gleichzeitige Auftreten verschiedener fehlerhafter Strategien zu erklären. So
zeigte VanLehn (1982) für das Gebiet der in DEBUGGY behandelten Subtraktion natürlicher Zahlen, daß sich bei 37% der von ihm untersuchten Schüler mehrere Fehlerstrategien diagnostizieren
lassen. Die Möglichkeiten der Diagnose sind daher i.A. zu komplex, um durch eine vollständige Suche realisiert werden zu können.
Für die Diagnose von mehreren fehlerhaften Strategien wurde beim Entwurf von DEBUGGY daher unterstellt, daß sich jede einzelne fehlerhafte Strategie auch als einzelner Fehler in mindestens
einer Rechnung diagnostizieren läßt. Durch die Kombination dieser einzelnen Strategien kann DEBUGGY entsprechende mehrfach fehlerhafte Strategien diagnostizieren. Sofern die Fehlerstrategien
der Schüler innerhalb eines Tests konsistent bleiben, kann DEBUGGY etwa zwei Drittel der auftretenden fehlerhaften Rechnungen diagnostizieren.
Das skizzierte Verfahren ist für den gewünschten Einsatz in einem interaktiven Lernsystem nicht
verwendbar, da eine Menge von fehlerhaften Rechnungen zunächst vorliegen muß, aber in einem
Lernsystem die Schülerlösungen der Übungsaufgaben einzeln nacheinander eintreffen. Für die interaktive Version IDEBUGGY wurde daher von Burton ein anderes, aber verwandtes Konzept
gewählt. IDEBUGGY erzeugt zuerst eine Menge von Hypothesen über die Fehlerstrategien des
Schülers und testet sie anschließend an der Durchführung einer Aufgabe. Läßt sich mit keiner Hypothese das Schülerverhalten diagnostizieren, wählt IDEBUGGY eine der folgenden Aktionen:
•
Erzeugen einer Aufgabe, die die Fehler in der aktuellen Hypothesenmenge trennt,
•
Hinzunahme sehr seltener Fehler in die Hypothesenmenge,
•
Erzeugen neuer Hypothesen durch Verbindung von aktuellen Hypothesen,
•
Wiederaufnahme ausgeschlossener Hypothesen,
•
Aufgeben.
IDEBUGGY ist jedoch nie in einem interaktiven Lernsystem eingesetzt worden. Burton wollte mit
IDEBUGGY vielmehr die unterschiedlichen Techniken zur Diagnose zwischen Online- und Offline-Betrieb verdeutlichen. Aufsetzend auf DEBUGGY entstanden eine Reihe von Arbeiten aus dem
11
kognitionswissenschaftlichem Bereich, insbesondere die bekannte „Repair-Theory“ von VanLehn
(1982, 1989), die versucht, die Gründe für Fehler zu erklären.
1.2.3 LMS/PIXIE
Mit LMS (Leeds Modeling System) stellten Sleemann und Smith (1981) einen anderen Ansatz zur
Diagnose von Rechenstrategien im Bereich der Algebra vor. Ähnlich wie BUGGY, arbeitet auch
LMS mit einer Zerlegung in Teilfertigkeiten, die durch alternative oder fehlerhafte Varianten ersetzt
werden können. Hierbei dient jedoch nicht ein prozedurales Netzwerk sondern eine Menge von
Regeln als Repräsentationsform (Abbildung 8a, S. 14). Dabei bilden „condition-set“ die linke und
„action“ die rechte Seite der Regel. Eine Ordnung (level) dient zur Spezifikation der verschiedenen
Prioritäten der Operatoren. Fehlerhafte Rechenstrategien werden durch entsprechende alternative
Regeln (mal-rules) modelliert und durch vorangestelltes „M“ gekennzeichnet (Abbildung 8b). Zwei
Paare von typischen korrekten und fehlerhaften Rechnungen sind in Abbildung 8c gezeigt. Dabei
wird beim ersten Paar der Fehler durch die Ordnung der Regeln und beim zweiten durch den Einsatz einer fehlerhaften Regel repräsentiert.
Durch die Kombination der verschiedenen Regeln ergibt sich bei LMS ebenfalls ein Diagnoseproblem, das nur durch vollständige Suche gelöst werden könnte. Anfängliche Ansätze in Sleemann und
Smith (1981), einmal als korrekt erkannte Fertigkeiten auch in Zukunft als korrekt anzunehmen,
scheiterten. Es stellte sich heraus, daß bei komplexeren Aufgaben auch bereits bekannte korrekte
Teilfertigkeiten wieder durch fehlerhafte Strategien ersetzt werden. Um dennoch eine Diagnose in
einem interaktiven Lernsystem realisieren zu können, verfolgte Sleeman (1982, 1983) daher später
einen anderen Ansatz: Er berechnete und speicherte für eine feste Menge von korrekten und fehlerhaften Regeln und eine vorgegebene Menge von Aufgaben verschiedene mögliche Schülerrechnungen. In der Online-Diagnose braucht die Schülerantwort dann nur noch mit den gespeicherten
Lösungen verglichen zu werden.
Im Vergleich zu BUGGY zeichnet sich LMS im wesentlichem durch zwei Unterschiede aus: Zum
einem durch die Darstellung der korrekten und fehlerhaften Rechenstrategien durch Regeln und
zum anderem durch die Aufteilung der Diagnose auf zwei Phasen. Je nach Lernsystem kann dieser
Ansatz jedoch wesentliche Nachteile haben. So ist das Lernsystem bei der Auswahl der Übungsaufgaben an die vorgegebenen Aufgabenmengen gebunden, was insbesondere in Lehr-Lern-Systemen
verhindert, daß Lehrer die gestellten Aufgaben adaptieren können. Das Lernsystem verliert zudem
erheblich an Flexibilität: Verläßt ein Schüler bei einem Zwischenergebnis den vorhergesehenen Bereich, so können alle weiteren Rechenschritte nicht mehr diagnostiziert werden. Auch kann bei der
Berechnung der Diagnosen im Lernsystem verfügbares Wissen über die Leistungen des Schülers
12
nicht verwendet werden – die Vergrößerung der Suchtiefe für vom Schüler bekannte individuelle
Rechenstrategien ist somit nicht möglich. Zudem ist für die Speicherung der Diagnosen eine erhebliche Datenmenge zu reservieren.
a. Rules for the algebra domain (evaluate form and slightly stylized)
RULE NAME
LEVEL
CONDITION-SET
ACTION
FIN2
1
(SHD X = M/N)
(SHD (M/N)) or (SHD [evaluated])
SOLVE
2
(SHD M*X = N)
(SHD (X = N/M) or (SHD INFINITY)
ADDSUB
3
(lhs M +|– N rhs)
(lhs [evaluated] rhs)
MULT
4
(lhs M*N rhs)
(lhs [evaluated] rhs)
XADDSUB
5
(lhs M*X +|– N*X rhs)
(lhs (M +|– N)*X rhs)
NtoRHS
6
(lhs +|– M = rhs)
(lhs = rhs –|+ M)
REARRANGE
7
(lhs +|– M +|– N*X rhs)
(lhs +|– N*X +|– M rhs)
XtoLHS
8
(lhs = +|– M*X rhs)
(lhs –|+ M*X = rhs)
M,N and P are integers; lhs, rhs are general patterns (which may be null); +|– means either + or – may occur; SHD indicates the String Head
b. Some mal-rules for the algebra domain (using the same conventions as above)
RULE NAME
LEVEL
CONDITION-SET
ACTION
M.SOLVE
2
(SHD M*X=N)
(SHD X = M/N) or (SHD INFINITY)
M1.NtoRHS
6
(lhs +|– M = rhs)
(lhs = rhs +|– M)
M2.NtoRHS
6
(lhs1 +|– M lhs2 = rhs)
(lhs1 +|– lhs2 = rhs +|– M)
M.XtoLHS
8
(lhs = +|– M*X rhs)
(lhs +|– M*X rhs)
M1.BRA
10
(lhs M * <N*X +|– P> rhs>
(lhs M*N*X +|– P rhs)
M2.BRA
10
(lhs M * <N*X +|– P> rhs>
(lhs M*N*X +|– M +|– P rhs)
c. Pairs of correct and “buggy” models executing typical task (The first line gives the
initial state and all subsequent lines give the rule that fires, and the resulting state.)
2*X=3*4+5
2*X =3*4+5
MULT
2 * X = 12 + 5
ADDSUB
2*X=3*9
ADDSUB
2 * X = 17
MULT
2 * X = 27
SOLVE
X = 17/2
SOLVE
X = 27/2
FIN2
(17/2)
FIN2
(27/2)
i) Shows (MULT ADDSUB SOVLE FIN2) and (ADDSUB MULT SOLVE FIN2) solving 2 * X = 3 * 4 + 5.
2*X+5=9
2*X+5=9
NtoRHS
2*X=9–5
M.NtoRHS
2*X=9+5
ADDSUB
2*X=4
ADDSUB
2 * X = 14
SOLVE
X = 2/1
SOLVE
X = 7/1
FIN2
(2)
FIN2
(7)
ii) Shows (NtoRHS ADDSUB SOLVE FIN2) and (M.NtoRHS ADDSUB SOLVE FIN2) solving 2 * X + 5 = 9.
13
Abbildung 8: Korrekte und fehlerhafte Regeln in LMS für die Algebra
(nach Sleeman, 1983)
14
LMS wurde von Sleeman (1987) später unter dem Namen PIXIE weiterentwickelt. PIXIE zeichnet
sich insbesondere dadurch aus, daß bedingt Regeln auch entgegen ihrer eigentlichen Richtung angewendet werden können, so daß die Diagnose zusätzlich von der Schülerantwort ausgehen kann.
Dieser Ansatz ist insbesondere dann wichtig, wenn das System selbständig Regeln erschließen und
lernen soll.
1.3 Überblick
In dieser Einführung wurde zu Gunsten einer Einordnung in das interdisziplinäre Arbeitsgebiet auf
eine Einordnung in jede der beteiligten Einzeldisziplinen – Informatik, Fachdidaktik Mathematik,
Psychologie und Kognitionswissenschaft – bewußt verzichtet. In diesem Kontext sei insbesondere
auf die noch nicht erwähnten Monographien von Anderson (1976, 1983) und Hoppe (1987) verwiesen.
In Kapitel 2 werden die für den vorgestellten Diagnosealgorithmus zentralen Begriffe eingeführt.
Der hierdurch neu entwickelte formale Rahmen zur Darstellung der von den Schülern verwendeten
korrekten und fehlerhaften Rechenstrategien orientiert sich zunächst an Konzepten der Termersetzung. Entsprechend führt Abschnitt 2.1 zuerst in grundlegende Begriffe der Termersetzung (vgl.
Dershowitz, Jouannaud, 1990, Klop, 1992) ein. Die bekannten Definitionen werden bereits hier um
die sogenannte Überladung von Operatoren, Variablen und Konstanten erweitert. Abschnitt 2.2
erweitert das Konzept der Termersetzung zu dem neuen Konzept des hier vorgeschlagenen Diagnosesystems. Es werden sowohl bereits bekannte Erweiterungen der Termersetzung (Prioritätsfunktion) wie auch das neue spezifische Konzept der Anwendungskondition verwendet. Das Kapitel
schließt in Abschnitt 2.2.4 mit einem ausführlichem Beispiel, in dem alle eingeführten Konzepte
noch einmal ausführlich dargestellt werden.
Da der vorgestellte Diagnosealgorithmus insbesondere von dem Einsatz in einem Lernsystem geprägt ist, stellt die verfügbare Rechenzeit eine wesentliche kritische Größe dar. Kapitel 3 beginnt
daher mit einer Analyse der zur Verfügung stehenden Zeit. Durch die Aufteilung der Diagnose in
zwei Phasen, deren erste parallel zur Rechnung des Schülers ausführbar ist, kann wertvolle Rechenzeit gewonnen werden. Somit können bis zu mehreren Milliarden Diagnosen berücksichtigt werden.
Nach der vollständigen Eingabe der Schülerlösung benötigt dann die zweite Phase i.A. weniger als
200 Millisekunden zur abschließenden Auswahl möglicher Diagnosen. Abschnitt 3.1 stellt die erste
Phase des Diagnosealgorithmus vor. Zur Verdeutlichung der Entwurfsentscheidungen wird der Algorithmus schrittweise entwickelt. Dabei wird Wert auf didaktisch oder psychologisch motivierte
Steuerungs- und Beschränkungsmechanismen gelegt.
15
Im Vergleich zu den bisher bekannten Programmen wird der vorgeschlagene Diagnosealgorithmus
durch die Anwendungen der Prinzipien der dynamischen Programmierung (Abschnitt 3.2) und der
komprimierten Speicherung (maximale Strukturteilung) der berechneten Diagnosen (Abschnitt 3.4)
entscheidend beschleunigt. Abschnitt 3.5 beschreibt die Algorithmen für die zweite Phase der Diagnose. Auch in der zweiten Phase werden dynamische Konzepte zur Beschleunigung eingesetzt. Die
Abschnitte 3.6 und 3.7 stellen mit der „Kontextkondition“ und den „Plänen“ weitere Steuerungsmechanismen zur Effizienzsteigerung vor.
Dem vorgeschlagenen Algorithmus entsprechend wurde das Diagnoseprogramm BugFix entwickelt. Sein Design und seine Implementierung werden in Kapitel 4 vorgestellt. BugFix ist eine Diagnosekomponente mit Entwicklungs- und Testumgebung. Ein multimediales Lernprogramm basierend auf BugFix steht am Institut für Mathematik und Angewandte Informatik der Universität Hildesheim kurz vor der Fertigstellung. Domänenspezifisches Wissen für korrekte und fehlerhafte Rechenstrategien, z.B. Arithmetik, Bruchrechnung, Termumformung oder Differentialrechnung kann
ebenfalls mit der Entwicklungsumgebung von BugFix konstruiert werden. Hierzu stellt BugFix die
Sprache „BugFix Spezifikation“ (BFS), die in Abschnitt 4.1 vorgestellt wird, zur Verfügung. Abschnitt 4.2 bzw. Abschnitt 4.5 beschreiben das Design und die Implementierung der ersten bzw.
zweiten Phase des Diagnosealgorithmus von BugFix.
Kapitel 5 beschreibt zwei empirische Untersuchungen mit Schülern, die im Rahmen dieser Arbeit
durchgeführt wurden. Zur Demonstration von BugFix wurde eine beispielhafte BugFix Spezifikation für die Bruchrechnung entwickelt. Bei der Modellierung der grundlegenden Diagnoseregeln
wurde auf didaktische Untersuchungen von Hart (1981), Lörcher (1982), Daubert und Gerster
(1983), Gerster und Grevsmühl (1983), Tappe u.a. (1984), Hasemann (1985), Payne (1986) und
Padberg (1986, 1995, 1996) zurückgegriffen. Ergänzend wurde eine dreiteilige empirische Untersuchung mit über 500 Schülern der siebten Klassenstufe durchgeführt. Das Ergebnis sind über 6000
fehlerhafte oder unvollständige Rechnungen, die als umfangreiches Testmaterial für den Diagnosealgorithmus dienten (Abschnitt 5.1 und Anhang C).
Zur Bestimmung der in der ersten Phase der Fehlerdiagnose zur Verfügung stehenden Zeit wurde
zusätzlich eine Testreihe mit 30 Schülern einer sechsten Klasse aufgenommen. Die von den Schülern für die Rechnung und die anschließende Eingabe in den Rechner benötigten Zeiten wurde gestoppt und anschließend ausgewertet (Abschnitt 5.2).
16
Im Kapitel 6 werden die Ergebnisse der Arbeit in Hinblick auf sich anschließende Forschungsarbeiten diskutiert. Die aus der genannten empirischen Untersuchung sich ergebenden didaktischen und
methodischen Konsequenzen für einen zukünftigen Mathematikunterricht liegen außerhalb des Informatik-Rahmens der vorliegenden Arbeit.
Als Anhang A ist das vorgeschlagene Diagnosesystem mit allen korrekten und fehlerhaften Rechenstrategien, die für die Bruchrechnung relevant sind, beigefügt. Anhang B enthält Darstellungen der
Entwicklung der berechneten Diagnosen, des Speicherbedarfs usw. im Zeitverlauf. Die in der genannten empirischen Untersuchung erfaßten Rechenstrategien sind in Rechengraphen, einer kompakten graphischen Darstellung der Rechenwege einer größeren Gruppe von Schülern, dokumentiert (Anhang C). Zu jedem Rechengraphen gehört eine Tabelle der von BugFix generierten Diagnosen der von den Schülern verwendeten Rechenstrategien.
17
2 Modellierung von Rechenstrategien
In diesem Kapitel sollen die Grundlagen der vorgeschlagenen computergestützten Fehlerdiagnose
beschrieben werden. Dazu wird zuerst ein formaler Rahmen zur Darstellung der von den Schülern
verwendeten korrekten und fehlerhaften Rechenstrategien geschaffen. Die Grundidee ist, die Rechenstrategien ähnlich wie Ersetzungsregeln eines Termersetzungssystems zu modellieren. Viele der
zu diesem Zweck eingeführten grundlegenden Definitionen stützen sich dabei auf entsprechende
Definitionen aus dem Bereich der Termersetzung (vgl. Dershowitz, Jouannaud, 1990; Klop, 1992;
Avenhaus, 1995). Im Unterschied zu diesen Quellen erlauben die folgenden Definitionen jedoch die
sogenannte Überladung von Operatoren, wie man sie etwa bei der algebraischen Spezifikation findet (vgl. Ehrich, Gogolla, Lipeck, 1989, Loeckx, Ehrich, Wolf, 1996 oder mit anderer Notation: Ehrig, Mahr, 1985).
Aufbauend auf diesen Definitionen wird dann anstelle der Ersetzungsregel der neue Begriff der Diagnoseregel eingeführt, deren Anwendungskondition weit über die Funktion eines „Wächters“ hinausgeht. So ermöglicht die Anwendungskondition die Erweiterung der Einsetzung vor der Substitution der Variablen der rechten Regelseite und somit z.B. direkte Rechenoperationen in der Form
a + b → c , wobei c das Ergebnis der Addition ist. In Verbindung mit einer Prioritätsfunktion
(Friš, 1968, vgl. auch Salomaa, 1973/78) bilden die Diagnoseregeln ein Diagnosesystem, das Rechenstrategien von Schülern modelliert.
Die Definitionen werden jeweils anhand fortlaufender Beispiele erläutert. Ergänzend sei auf Abschnitt 2.2.4 (S. 29f) verwiesen, in dem das Zusammenspiel der eingeführten Begriffe an einem größeren Beispiel verdeutlicht wird.
2.1 Grundlegende Definitionen
Eine endliche, nicht-leere Menge von Symbolen A wird als Alphabet bezeichnet. Mit A* sei die
Menge aller endlichen Folgen von Symbolen aus A gekennzeichnet. Diese beinhaltet insbesondere
das leere Wort ε . Es ist A+ := A* − {ε } .
Ist für eine Menge von Mengen B eine Indexmenge I und eine Abbildung gegeben, die jedem
Index i ∈ I eine Menge Bi ∈ B zuordnet, so wird B = {Bi }i∈I als I -indizierte Mengenfamilie bezeichnet. Ist die Indexmenge I = I 1 × … × I n so schreibt man vereinfacht B = {Bi1 ,…,in }i1∈I1 ,..,in ∈I n .
Es ist ∪ B := ∪ Bi und ∩ B := ∩ Bi .
i∈ I
i∈ I
18
2.1.1 Terme
Wie bereits in der Einleitung zu diesem Kapitel erwähnt, sollen die Rechenstrategien der Schüler
ähnlich wie Ersetzungsregeln eines Termersetzungssystems modelliert werden. Als Grundlage hierfür muß eine Darstellung für Terme vereinbart werden. Die Signatur gibt dabei u.a. an, welche
Symbole als Operatoren bzw. Konstanten der Terme verwendet werden sollen. Die folgenden Definitionen werden dabei die Syntax festlegen. In allen Beispielen wird jedoch zur besseren Verständlichkeit die mit den Bezeichner der Operatoren leicht zu assoziierende Semantik unterstellt.
Definition 1 (Signatur)
Eine Signatur ist eine Tupel Σ = ( S , Ω) . Die Elemente der Menge S werden als Sorten bezeichnet. Ω = {Ω w,s }w∈S * ,s∈S ist eine S * × S -indizierte Mengenfamilie. Die Elemente aus Ω w,s
werden als Operatoren bezeichnet.
Ist f ∈ Ω w, s mit w = s1 … sn , so werden s1 bis sn als Argumentsorten und s als Ergebnissorte bezeichnet. Alternativ schreibt man auch f : s1 × … × sn → s . Die leere Liste der Argumentsorten wird mit ε bezeichnet. Man schreibt entsprechend Ωε , s oder verkürzt Ω s bzw. alternativ f :→ s . Gilt f :→ s , so heißt f Konstante der Sorte s ∈ S .
Bemerkung: Häufig findet sich für die Signatur eine Definition als Tripel Σ = ( S , Ω,τ ) . Dabei ist
S eine Menge von Sorten und Ω eine Menge von Operatoren. Die Funktion
τ : Ω → S + heißt Aritätsfunktion und ordnet jedem Operator Argumentsorten und
eine Ergebnissorte zu, z.B. τ (add ) → nat nat nat für die Addition auf der Menge
der natürlichen Zahlen. Für die Addition von Brüchen müßte ein anderer Operator
verwendet werden. Obige Definition 1 erlaubt im Unterschied dazu das sogenannte
„Überladen“ von Operatoren. So kann der Operator add sowohl für die Addition
auf der Menge der natürlichen Zahlen als auch für die Addition auf der Menge der
Brüche verwendet werden.
Beispiel:
Für ein fortlaufendes Beispiel wird die Signatur Σ Bsp = ( S , Ω) eingeführt. Dabei sei
die Menge der Sorten mit S = {nat , frac} und die Menge der Operatoren
Ω = {{0,1,2,3,4}nat ,{add }nat nat , nat ,{add } frac frac , frac ,{bruch}nat nat , frac } gegeben.
19
Definition 2 (Arität)
Sei Σ = ( S , Ω) eine Signatur und f ∈ Ω w, s das Symbol eines Operators für w ∈ S ∗ , s ∈ S .
Dann
heißt
( w, s )
Arität
{
Ω( f ) := (w′, s ′) ∀w′ ∈ S ∗ , s ′ ∈ S : f ∈ Ω w′, s′
von
}
f
und
die
Menge
Aritätenmenge von f . Ist (ε , s ) ∈ Ω( f )
schreibt man verkürzt ( s ) ∈ Ω( f ) .
Gilt Ω( f ) > 1 , so heißt der Operator f überladen.
Beispiel:
Sei Σ Bsp wie oben. Es ist Ω(add ) = {(nat nat , nat ), ( frac frac, frac )} = 2 , d.h. der
Operator add ist überladen.
Definition 3 (Terme)
Sei Σ = ( S , Ω) eine Signatur. Die Menge der Terme der Sorte s ∈ S über Σ wird als TΣ , s bezeichnet und ist induktiv definiert:
i) Wenn f :→ s , so ist f ∈ TΣ , s
ii) Wenn f : s1 × … × sn → s und ∀1 ≤ i ≤ n : ti ∈ TΣ , si , so ist f (t1 ,…, tn ) ∈ TΣ , s
iii) Es gibt keine weiteren Terme der Sorte s in TΣ , s .
TΣ = {TΣ , s }s∈S bezeichnet die S -indizierte Mengenfamilie aller Terme über Σ .
Beispiel:
Die folgenden Beispiele sind Terme über der Signatur Σ Bsp = ( S , Ω) :
add (1,3) ist der Term der Sorte nat
add (bruch(1,2), bruch(3,4)) ist Term der Sorte frac
Die Definition der Terme führt eine Präfix-Notation für Terme ein. In einigen Beispielen wird zur
besseren Darstellung jedoch auch die übliche Infix-Notation verwendet: z.B. 3 + 5 statt add (3,5) .
Definition 4 (Variable)
Sei Σ = ( S , Ω) eine Signatur und X = {X s }s∈S
eine S -indizierte Mengenfamilie mit
∪ X ∩ ∪Ω = ∅ . Die Elemente x ∈ X s mit s ∈ S heißen Variablen der Sorte s . Die Signatur
Σ( X ) := ( S , Ω ∪ X ) mit (Ω ∪ X )ε , s = Ωε , s ∪ X s und (Ω ∪ X )w, s = Ω w, s für alle s ∈ S und
alle w ∈ S + heißt Signatur mit Variablen.
20
Definition 4 (Variable, Fortsetzung)
Die Terme TΣ ( X ) über Σ( X ) sind die Terme mit Variablen, die sich entsprechend Definition
3 aus den Operatoren aus Σ und den Variablen aus X bilden lassen. Ist t ∈ TΣ ( X ) eine Term, so
bezeichnet var (t ) die Menge der Variablen, die in t vorkommt.
Beispiel:
Für die Signatur Σ Bsp = ( S , Ω) seien die Variablen X = {{x, y, z}nat ,{x, b} frac } gegeben. Die Signatur Σ Bsp ( X ) = ( S , Ω ∪ X ) ist mit der vereinigten Menge Ω ∪ X =
{{0,1,2,3,4, x, y, z}nat ,{x, b} frac ,{add }nat nat , nat ,{add } frac frac , frac ,{bruch}nat nat , frac } gegeben. Der Term t1 = add (b, bruch( x,1)) ist aus TΣ ( X ) mit var (t1 ) = {x, b} .
2.1.2 Termersetzung
Anders als bei algebraischen Spezifikation üblich (vgl. z.B. Loeckx, Ehrich, Wolf, 1996) dürfen nach
diesen Definitionen auch Variablen überladen werden (z.B. die Variable x im obigen Beispiel). Für
x ∈ ∪ X ist durch Ω(x) die entsprechende Aritätenmengen von x gegeben. Für die Signatur
Σ Bsp ( X ) ist z.B. Ω( x) = {(nat ), ( frac )}. Die Überladung von Variablen ist jedoch nicht unproblematisch, wenn eine Variable durch einen anderer Term substituiert werden soll. So existiert keine
gültige Substitution für x in den Term add ( x, bruch( x,1)) . Bei dem in den folgenden Definitionen
eingeführten Konzept zur Einsetzung und Substitution von Variablen sind derartige Unterschiede
in der Arität der zu ersetzenden Variablen zu berücksichtigen.
Definition 5 (Einsetzung)
Sei Σ = ( S , Ω) eine Signatur mit Variablen X . Eine Funktion σ : ∪ X → TΣ ( X ) heißt Einsetzung, falls
i) σ ( x) ∈ TΣ ( x ), s für ( s) ∈ Ω( x) (Erhaltung einer definierten Arität)
ii) σ ( x) ≡ x für fast alle x ∈ ∪ X
Die Menge alle Einsetzungen wird mit Ξ(Σ, X ) oder kurz Ξ bezeichnet.
Die endliche Menge dom(σ ) ist definiert durch dom(σ ) := {x ∀x ∈ X :σ ( x) ≡
/ x} . Falls
dom(σ ) = {x1 ,…, xn } und σ ( xi ) = ti schreibt man vereinfacht σ = {x1 ← t1 ,…, xn ← tn } .
21
Beispiel:
Sei Σ Bsp ( X ) wie im letzten Beispiel. Sei σ eine Einsetzung mit
falls v = x
⎧1
⎪
σ (v) = ⎨bruch(2,3) falls v = b
⎪v
sonst
⎩
Dann ist dom(σ ) = {x, b} und man schreibt verkürzt σ = {x ← 1, b ← bruch(2,3)} .
Definition 6 (Substitution, Instanz)
Sei Σ = ( S , Ω) eine Signatur mit Variablen X und σ eine Einsetzung. Die Funktion
σ ∗ : TΣ ( X ) → TΣ ( X ) heißt Substitution mit Einsetzung σ , falls gilt:
i) σ * ( x) = σ ( x) , falls x ∈ ∪ X (Einsetzung fortsetzen)
ii) σ * ( f ) = f , falls f :→ s und f ∉ ∪ X (Erhaltung von Konstanten)
(
)
iii) σ ∗ ( f (t1 ,…, tn )) = f σ ∗ (t1 ),…,σ ∗ (tn ) , falls n > 0
Sei t ∈ TΣ ( X ) ein Term, dann heißt σ ∗ (t ) Instanz von t und man schreibt verkürzt σ (t ) . Ist
σ ∗ (t ) ∈ TΣ ( X ) so nennt man die Instanz gültig.
Beispiel:
Sei σ ∗ die Substitution mit Einsetzung σ aus dem letzten Beispiel. Für den Term
t1 = add (b, bruch( x,1)) ist σ (t1 ) = add (bruch(2,3), bruch(1,1)) eine gültige Instanz.
Für t2 = add ( x, bruch( x,1)) existiert keine Einsetzung σ 2 mit x ∈ dom(σ 2 ) , so daß
σ 2 (t2 ) eine gültige Instanz wäre.
Die Existenz einer gültigen Instanz ist abhängig von der Signatur. Wäre
Ω(add ) = {(nat nat , frac ), ( frac frac, frac ), (nat frac, frac ), ( frac nat , frac )} , so
wäre σ (t2 ) = add (1, bruch(1,1)) eine gültige Instanz von t2 .
Eine Ersetzungsregel im Sinn der Termersetzung ist ein Paar (l , r ) von Termen, kurz l → r , mit
var (r ) ⊆ var (l ) . Sie ist auf einen Term u anwendbar (man sagt auch u wäre mit der Ersetzungsregel reduzierbar), falls ein Teilterm von u mit der Instanz einer linken Regelseite übereinstimmt. In
diesem Fall kann der Teilterm durch die rechte Regelseite ersetzt werden.
22
Definition 7 (Kontext)
Sei Σ = ( S , Ω) eine Signatur mit Variablen X . Sei
{ }
able, d.h. ∉ ∪ X . Es sei X = X s
Vorkommen der Platzhaltervariablen
Die Menge alle Kontexte aus TΣ ( X
)
s∈S
eine neue, ausgezeichnete Platzhaltervari-
:= {X s ∪ { }}s∈S . Jeder Term aus TΣ ( X ) , der genau ein
enthält, heißt Kontext und wird durch C[ ] bezeichnet.
wird mit C bezeichnet.
Sei C[ ] ein Kontext, t ∈ TΣ ( X ) ein Term und σ eine Einsetzung mit σ = { ← t} . Dann
schreibt man statt σ (C[ ]) kurz C[t ] . Ist C[t ] eine gültige Instanz, so heißt C[ ] gültiger
Kontext für t und t Teilterm von C[t ] .
Beispiel:
Sei Σ Bsp ( X ) wie in den letzten Beispielen. C[ ] = add ( , bruch( x,2)) ist gültiger
Kontext für bruch(1,2) und es ist C[bruch(1,2)] = add (bruch(1,2), bruch( x,2)) .
C[ ] ist jedoch kein gültiger Kontext für 1 , da (nat frac, frac) ∉ Ω(add ) .
Die Reduktion eines Terms u beinhaltet die Suche nach einem Teilterm t mit u = C[t ] , einer Ersetzungsregel l → r in R und einer Einsetzung σ mit σ (l ) = t und gültigen Kontext C[σ (r )] .
2.2 Diagnosesysteme
Aufbauend auf der Termersetzung soll in den nächsten Abschnitten ein Ersetzungssystem zur Fehlerdiagnose entwickelt werden, das als Diagnosesystem bezeichnet werden soll. Das Diagnosesystem
unterscheidet sich von einem Termersetzungssystem in erster Linie in der Reduktionsrelation, die
beim Diagnosesystem noch durch eine zusätzliche Anwendungskondition bedingt wird.
2.2.1 Diagnoseregeln
Wenn Kinder beginnen arithmetische Fertigkeiten, etwa die Addition, zu erlernen, beginnen sie in
der Regel mit einfachen Abzählstrategien, häufig mit Hilfe der Finger. Viele dieser Strategien ließen
sich durch Ersetzungsregeln modellieren. Im Laufe der Zeit verändern sich die Rechenstrategien
der Schüler (vgl. Siegler, Jenkins, 1989, Siegler 1996), z.B. bei der Addition über Strategien mit minimaler Anzahl von Zählschritten zu Erinnerungsstrategien. Letztere müßten durch Ersetzungsregeln der Form a + b → c beschrieben werden, wobei c das Ergebnis der korrekten Addition von
a und b sein müßte. Derartige Ersetzungsregeln sind jedoch in den Konzepten der Termersetzung
nicht möglich. Auch müssen Rechenstrategien wie
a
b
→
a :k
b:k
, wobei k einer der gemeinsamen Teiler
von a und b ist, realisierbar sein. In einem derartigen Fall muß eine Regel mehrere verschiedene
Reduktionsmöglichkeiten beschreiben können. Das Regelkonzept muß auch berücksichtigen, daß
23
eine Rechenstrategie nicht immer anwendbar ist, so darf a : b → c mit c als Ergebnis der Division
nur anwendbar sein, wenn b ≠ 0 ist (Wächter-Konzept). Für die Fehlerdiagnose wird die Ersetzungsregel um eine Anwendungskondition erweitert:
Definition 8 (Anwendungskondition)
Sei Σ = ( S , Ω) eine Signatur mit Variablen X und σ eine Einsetzung. Eine Funktion Ac , die
die Einsetzung σ auf eine Familie von Einsetzungen Ac(σ ) abbildet, d.h. Ac : Ξ → {Ξ i }i∈I Ac ,
I Ac endlich, heißt Anwendungskondition, wenn für alle σ i ∈ Ξ, i ∈ I Ac gilt:
i) σ i ist eine Einsetzung
ii) σ ( x) = σ i ( x) für alle x ∈ dom(σ ) (Bestehende Einsetzung bleibt erhalten)
iii) dom(σ i ) = dom(σ j ) für alle j ∈ I Ac ( dom ist für alle Einsetzungen konstant)
Ist Eigenschaft ii) für alle i ∈ I Ac erfüllt, schreibt man kurz σ ⊆ Ac(σ ) .
Bemerkung: Mit Definition 8 ist zunächst nur die Bedeutung der Anwendungskondition definiert.
Die Darstellung der Anwendungskondition in einem Diagnoseprogramm ist abhängig
von der gewählten Implementierung. In den folgenden Beispielen wird die Darstellung des Diagnosesystems BugFix verwendet. BugFix stellt Anwendungskonditionen
als Terme dar (siehe auch Abschnitt 4.1.4, S. 68).
Beispiel:
Sei Σ = ({nat , frac}, {{1,2,4,8, a, b, t}nat , {div}nat nat , nat , {bruch}nat nat , frac }) eine Signatur
mit Variablen {a, b, t}nat . Sei r1 die Ersetzungsregel div(a, b) → t . So läßt sich mit
Hilfe der Anwendungskondition die „ div “ genannte Operation durchführen. Sei etwa div(8,4) gegeben, dann wird die Einsetzung σ = {a ← 8, b ← 4} durch die Anwendungskondition erweitert zu σ 1 = {a ← 8, b ← 4, t ← 2} . div(8,4) → 2 ist eine
Instanz der Ersetzungsregel r1 .
Sei in einem weiteren Beispiel die Signatur Σ wie gehabt und r2 eine Ersetzungsregel
mit bruch(a, b) → bruch(div(a, t ), div(b, t )) und ein Term bruch(4,8) gegeben.
Für die Einsetzung σ = {a ← 4, b ← 8} könnte eine Anwendungskondition lauten:
{{a ← 4, b ← 8, t ← 2}1 , {a ← 4, b ← 8, t ← 4}2 } . Zusammen mit der Anwendungskondition realisiert die Ersetzungsregel so das Kürzen eines Bruchs durch die gemeinsamen echten Teiler von Zähler und Nenner.
24
Durch die Erweiterung der klassischen Ersetzungsregel mit der so definierten Anwendungskondition sind die oben beschriebenen Anforderungen realisierbar. Zur besseren Unterscheidung der verschiedene Konzepte wird der Begriff Diagnoseregel eingeführt.
Definition 9 (Diagnoseregel)
Sei Σ = ( S , Ω) eine Signatur mit Variablen X und Ac eine Anwendungskondition. Ein Tripel
(l , r , Ac ) heißt Diagnoseregel (kurz Regel) über Σ( X ) , falls gilt
i)
l ∈ TΣ ( X ), sl , s l ∈ S , l ∉ ∪ X ,
ii)
r ∈ TΣ ( X ),sr , s r ∈ S und
iii) für alle Einsetzungen, σ ∈ Ξ deren Instanz σ (l ) ∈ TΣ ( x ), sl gültig ist, gilt
entweder Ac(σ ) = ∅
oder var (r ) ⊆ dom(σ i ) für alle σ i ∈ Ac(σ ) .
Die Diagnoseregel (l , r , Ac ) wird auch als l → r Ac oder als name : l → r Ac geschrieben,
falls eine Benennung sinnvoll ist. Ist Ac(σ ) = {σ }, schreibt man kurz l → r . Benannte Diagnoseregeln können auch kurz als name geschrieben werden.
Entsprechend zum Termersetzungssystem kann nun ein Diagnosesystem definiert werden. Wie
man es auch in anderen Erweiterungen von Ersetzungssystemen findet, verfügt auch ein Diagnosesystem über eine Prioritätsfunktion (Friš, 1968, vgl. auch Salomaa, 1973/78), die steuert, welche Regeln angewendet werden dürfen. Bei einem Diagnosesystem kann die Wahl der Prioritätsfunktion
didaktisch motiviert werden (siehe Abschnitt 2.2.2).
Definition 10 (Diagnosesystem)
Ein Diagnosesystem ist ein Tupel D = (Σ, X , R, p) . Σ = ( S , Ω) ist eine Signatur mit Variablen X . R ist eine endliche Menge von Diagnoseregeln über Σ( X ) . Mit p : R → IN sei eine
Prioritätsfunktion gegeben.
Bemerkung: Die klassische Definition eines Termersetzungssystems ist als Spezialfall in der Definition des Diagnosesystems enthalten.
25
2.2.2 Reduktionsrelation eines Diagnosesystems
Aufbauend auf den Definitionen der Anwendungskonditionen und der Diagnoseregel wird mit der
folgenden Definition die Reduktionsrelation für Diagnosesysteme neu gefaßt:
Definition 11 (Reduktionsrelation)
Sei D = (Σ, X , R, p) ein Diagnosesystem, r : u → v Ac eine Diagnoseregel aus R , σ eine
Einsetzung und σ i ∈ Ac(σ ) mit i ∈ I Ac . Sind σ (u ) und σ i (v) gültige Substitutionen, so nennt
man (σ (u ),σ i (v)) Instanz der Regel r und schreibt auch kurz σ (u ) → σ i (v) . Die linke Seite
σ (u ) der Instanz heißt Redex, deren rechte Seite σ i (v) das zugehörige Kontraktum.
Sei C[] ein gültiger Kontext für σ (u ) und σ i (v) . Dann bezeichnet man die Ersetzung des Redexes σ (u ) durch das Kontraktum σ i (v) innerhalb des Kontextes C[] als Reduktionsschritt.
Die Relation → r ⊆ TΣ ( X ) × TΣ ( X ) ist entsprechend für alle i ∈ I K mit C[σ (u )] → r C[σ i (v)]
gegeben. → r definiert die 1-Schritt-Reduktionsrelation ⇒ r ⊆ TΣ ( X ) × TΣ ( X ) , falls C[σ (u )]
mit keiner Regel r ′ ∈ R mit höherer Priorität reduzierbar ist, d.h.:
⎧→
⇒ r := ⎨ r
⎩∅
falls ∀t ∈ TΣ ( X ) ∀r ′ ∈ R : (C[σ (u )] → r ′ t ) ⇒ ( p(r ) ≥ p(r ′) )
sonst
Die Relation ⇒ R ⊆ TΣ ( X ) × TΣ ( X ) mit ⇒ R = ∪ ⇒ r nennt man Reduktionsrelation und
r∈R
schreibt auch kurz ⇒ wenn keine Verwechslungsgefahr besteht.
Bemerkung: Kann ein Term durch mehr als eine Diagnoseregel reduziert werden, beschränkt die
Prioritätsfunktion die Anwendung auf eine oder einige Regeln gleicher Priorität.
Die Grundidee der Prioritätsfunktion ist die Beschränkung des Suchraums. Die Prioritätsfunktion
sollte hierzu die von Schüler tatsächlich verwendeten Prioritäten beim Auswerten von Rechenschritten berücksichtigen. Für das in dieser Arbeit als Beispiel vorgestellte Diagnosesystem zur Bruchrechnung wurde davon ausgegangen, daß Schüler Teilaufgaben in den natürlichen Zahlen mit höherer Priorität lösen, als Teilaufgaben im Bereich der Bruchrechnung. Beispielsweise bedeutet dies,
daß zwar
3 3 3⋅ 2 3 6 3 9
3 3 3⋅ 2 3 3⋅ 2 + 3 9
+ =
+ = + = nicht aber + =
+ =
=
2 4 2⋅2 4 4 4 4
2 4 2⋅2 4
4
4
als realistische Schülerrechnung angenommen wird. Prioritätsfunktionen sind optional. Ist die Prioritätsfunktion konstant, wird der Suchraum nicht eingeschränkt.
26
Definition 12 (Sprache)
∗
Sei D = (Σ, X , R, p) ein Diagnosesystem und ⇒ die reflexive und transitive Hülle von ⇒ .
Dann ist die von D mit Aufgabenstellung A ∈ TΣ ( X ) erzeugte Sprache
∗
⎧
⎫
L(D, A) := ⎨w ∈ TΣ ( X ) A ⇒ w⎬ .
⎩
⎭
Die Sprache L( D, A) enthält alle Ergebnisse, die unter Verwendung der durch die Regeln beschriebenen Rechenstrategien aus der gegebenen Aufgabenstellung A errechnet werden können.
Berechnet ein Schüler ein Ergebnis w ∉ L( D, A) , so kann mit dem Diagnosesystem die Rechnung
nicht diagnostiziert werden. Technisch gesehen konnte die vom Schüler verwendeten Rechenstrategien nicht durch das Diagnosesystem simuliert werden, z.B. weil die verwendete Rechenstrategie
nicht in R enthalten ist oder der Schüler andere Prioritäten beim Rechnen verfolgt hat als durch p
beschrieben. In der Praxis zeigt sich zudem häufig, daß es sich bei nicht diagnostizierbaren Schülerrechnungen um nicht simulierte Flüchtigkeitsfehler, etwa falsch abgeschriebene Zahlen, handelt oder der Schüler geraten hat.
2.2.3 Diagnosen
Ausgehend von der Relation ⇒ wird nun der Begriff der Ableitung definiert. Hinzu kommt der
Begriff der Regelfolge. Eine Regelfolge beschreibt, welche Regeln angewendet werden müssen, um
eine Ableitung zu erzeugen.
Definition 13 (Ableitung, Regelfolge)
Sei D = (Σ, X , R, p) ein Diagnosesystem. Seien w0 , w1 ,…, wn ∈ TΣ ( X ) Terme über Σ( X ) und
r1 , r2 ,…, rn ∈ R Regeln, n > 0 und w0 ⇒ r1 w1 ⇒ r2 … ⇒ rn wn . Dann heißt (w0 , w1 , … , wn )
Ableitung von w0 nach wn und (r1 , r2 , … , rn ) Regelfolge der Ableitung (w0 , w1 , … , wn ) .
Bemerkung: Zu einer Ableitung können mehrere Regelfolgen existieren. Dies ist der Fall, wenn
zwei verschiedene Regeln nach Substitution der Variablen identisch sind. Auch können zu einer Regelfolge mehrere Ableitungen existieren, wenn eine Regel auf verschiedene Teilterme anwendbar ist.
27
Definition 14 (Nachfolgermenge)
Sei D = (Σ, X , R, p) ein Diagnosesystem und w ∈ TΣ ( X ) ein Term über Σ( X ) . Dann heißt
Follow( w) := {(r , v ) ∀r ∈ R : ∀v ∈TΣ ( X ) : w ⇒ r v} Nachfolgermenge von w .
Oben wurden die Begriffe der Ableitung und der Regelfolge eingeführt. Mit dem Begriff der Diagnose wird nun ein eng verwandter Begriff eingeführt. Die Diagnose stellt einen Zusammenhang
zwischen einer Regelfolge und ihrer Ableitung her.
Definition 15 (Diagnose)
Sei D = (Σ, X , R, p) ein Diagnosesystem. Seien w0 , w1 ,…, wn ∈ TΣ ( X ) Terme über Σ(X ) und
r1 , r2 ,…, rn ∈ R
Diagnoseregeln,
n>0
((r1 ,…, rn ), (w0 ,…, wn )) Diagnose von
und
w0 nach wn .
w0 ⇒ r1 w1 ⇒ r2 … ⇒ rn wn .
Dann
((r1 ,…, rn ), (w0 ,…, wn )) := n
heißt
bezeichnet
die Länge der Diagnose ((r1 ,…, rn ), (w0 ,…, wn )) .
Die Menge aller Diagnosen von w0 nach wn ist gegeben durch Diag ( w0 , wn ) :=
{((r ,…, r ), (w ,…, w )) w
1
n
0
n
0
}
⇒ r1 … ⇒ rn wn . Sei A ∈ TΣ ( X ) die gestellte Aufgabe. Dann schreibt
man verkürzt Diag ( w) := Diag ( A, w) für w ∈ TΣ ( X ) und Diag :=
∪ Diag (w) .
w∈TΣ ( X )
Formal läßt sich das Problem der Fehlerdiagnose für Aufgabenstellung A und korrekter oder fehlerhafter Schülerantwort w also durch die „Berechnung“ von Diag ( w) für ein geeignetes Diagnosesystem D mit Startterm A beschreiben. Bei allgemeinen Diagnosesystemen ist Diag ( w) jedoch
nicht notwendigerweise endlich, so daß die „Berechnung“ nicht vollständig möglich ist.
28
2.2.4 Beispiel
Die eingeführten Konzepte zur Fehlerdiagnose sollen nun an einem größeren Beispiel verdeutlicht
werden. Dazu sei eine Signatur Σ = ( S , Ω) mit S = {nat , bruch, gem} und
Ω = {{0,1,2,3,…}nat ,
{bruch}nat nat ,bruch ,
{gem}nat bruch, gem ,
{add , mul , div}nat nat , nat ,
{add }bruch bruch,bruch ,
{add }nat bruch, gem ,
{add }bruch nat , gem }
sowie eine Variablenmenge X = {{a, b, c, k , z1 , z2 , n1 , n2 , e1 , e2 }nat } gegeben.
a
b
wird dabei als Kurz-
schreibweise von bruch(a, b) und g ba als Kurzschreibweise für gem( g , bruch(a, b)) verwendet.
Gültige Terme über Σ( X ) sind z.B.:
1 3
⎛1 3⎞
add (bruch(1,2), bruch(3,4)) oder kürzer: add ⎜ , ⎟ oder in Infix-Notation: +
2 4
⎝ 2 4⎠
add (bruch(3, add (3,4)), bruch(mul (3,2),5)) oder kürzer in Infix-Notation:
3
3⋅ 2
+
3+ 4
5
Tabelle 1 (S. 30) zeigt ein Diagnosesystem mit einigen ausgewählten Diagnoseregeln für die
Addition von Brüchen. Jede Spalte der Tabelle enthält dabei eine Diagnoseregel, bestehend aus einem Regelnamen, der eigentlichen Diagnoseregel mit Anwendungskondition und einer Beschreibung der modellierten Rechenstrategien. In diesem Beispiel soll mit der Syntax und der Semantik
der Anwendungskonditionen noch etwas formlos umgegangen werden. So soll etwa die Anwendungskondition c := a + b der Diagnoseregel anok die Einsetzung σ derart erweitern, daß für c
das Ergebnis der Addition eingesetzt wird. Analog ist die Anwendungskondition der Diagnoseregel
dnok zu verstehen, wenn die Bedingungen b ≠ 0 und b a ( b teilt a ) erfüllt sind. Andernfalls erzeugt die Anwendungskondition keine Einsetzungen (Wächterfunktion der Anwendungskondition).
Die Diagnoseregeln abhok und abh0 zeigen weitere Beispiele für Anwendungskonditionen, die die
Einsetzung erweitern. Dabei berechnet „kgv“ das kleinstes gemeinsames Vielfache der Argumente.
Die Anwendungskondition der Diagnoseregel abh0 hat zudem Wächterfunktion. Die Anwendungskondition der Diagnoseregeln kok liefert für alle echten gemeinsamen Teiler von a und b eine entsprechende Einsetzung mit k als echten gemeinsamen Teiler.
29
Tabelle 1: Auswahl von korrekten und fehlerhaften Rechenstrategien bei
der Bruchrechnung
Name Regel
anok
add (a, b ) → c
mnok
mul (a, b ) → c
dnok
div (a, b ) → c
c := a + b
c := a ⋅ b
Beschreibung
Korrekte Addition in den natürlichen Zahlen
Korrekte Multiplikation in den natürlichen Zahlen
Korrekte Division in den natürlichen Zahlen
b ≠ 0, b a, c := a : b
abok
abhok
add ( z1 , z2 )
⎛z z ⎞
add ⎜ 1 , 2 ⎟ →
n
⎝n n⎠
⎛z z ⎞
add ⎜⎜ 1 , 2 ⎟⎟ →
⎝ n1 n2 ⎠
Korrekte Addition von Brüchen
Korrekte Bildung des Hauptnenners bei Addition
mit korrekter Erweiterung beider Zähler
⎛ mul ( z1 , e1 ) mul ( z 2 , e2 ) ⎞
,
add ⎜
⎟
n
n
⎠
⎝
n := kgv(n1 , n2 ),
e1 := n : n1 , e2 := n : n2
abh0
Bildung des Hauptnenners als Produkt der Nen⎛z z ⎞
add ⎜⎜ 1 , 2 ⎟⎟ →
ner der Summanden (kein Fehler) bei Addition
⎝ n1 n2 ⎠
mit korrekter Erweiterung beider Zähler
⎛ mul ( z1 , n2 ) mul ( z 2 , n1 ) ⎞
add ⎜
,
⎟
n
n
⎝
⎠
n := n1 ⋅ n2 , n ≠ kgv(n1 , n2 )
ab0
⎛z z ⎞
add ( z1 , z 2 )
add ⎜⎜ 1 , 2 ⎟⎟ →
add ( n1 , n2 )
⎝ n1 n2 ⎠
Falsche additive Technik bei der Addition von
Brüchen
anok
z
⎛ z⎞
add ⎜ a, ⎟ → a
n
⎝ n⎠
z
⎛z ⎞
add ⎜ , a ⎟ → a
n
⎝n ⎠
a
div(a, k )
→
∀k ∈ gt (a, b)
b
div(b, k )
Korrekte Addition einer natürlichen Zahl und
einem Bruch
kok
Korrektes Kürzen eines Bruchs durch einen gemeinsamen Teiler
30
Zur Verdeutlichung der Reduktionsrelation seien drei beispielhafte Nachfolgermengen gegeben:
1 ⋅ 2 3 ⋅1 ⎞ ⎛
1⋅ 4 3 ⋅ 2 ⎞ ⎛
1 + 3 ⎞⎫
⎛ 1 3 ⎞ ⎧⎛
+
+
Follow⎜ + ⎟ = ⎨⎜ abhok ,
⎟ , ⎜ abh0,
⎟ , ⎜ ab0,
⎟⎬
4
4 ⎠ ⎝
8
8 ⎠ ⎝
2 + 4 ⎠⎭
⎝ 2 4 ⎠ ⎩⎝
1
2
+
3
4
ist mit den Diagnoseregeln abhok, abh0 und ab0 reduzierbar. Bei der Diagnoseregel abhok er-
weitert die Anwendungskondition
n := kgv(n1 , n2 ) ∧ e1 := n : n1 ∧ e2 := n : n2
die Einsetzung
{z1 ← 1, n1 ← 2, z2 ← 3, n2 ← 4} zu {{z1 ← 1, n1 ← 2, z2 ← 3, n2 ← 4, n ← 4, e1 ← 2, e2 ← 1}} .
Analog wirkt die Anwendungskondition bei der Diagnoseregel abh0. Im Unterschied dazu:
1⋅ 9 3 ⋅ 3 ⎞ ⎛
1+ 3 ⎞ ⎛
1 3 : 3 ⎞⎫
⎛ 1 3 ⎞ ⎧⎛
+
Follow⎜ + ⎟ = ⎨⎜ abhok ,
⎟ , ⎜ ab0,
⎟ , ⎜ kok , +
⎟⎬
18 18 ⎠ ⎝
2+9⎠ ⎝
2 9 : 3 ⎠⎭
⎝ 2 9 ⎠ ⎩⎝
Hier ist die Diagnoseregel abh0 nicht anwendbar, da der „Wächter“ n := n1 ⋅ n2 ∧ n ≠ kgv(n1 , n2 )
nicht erfüllt. Dafür ist
1
2
+ 93 mit der Diagnoseregel kok reduzierbar. Ein anderes Beispiel für die
Diagnoseregel kok:
6 : 6 ⎞⎫
6:2 ⎞ ⎛
6:3 ⎞ ⎛
⎛ 6 ⎞ ⎧⎛
Follow⎜ ⎟ = ⎨⎜ kok ,
⎟⎬
⎟ , ⎜ kok ,
⎟ , ⎜ kok ,
18 : 2 ⎠ ⎝
18 : 3 ⎠ ⎝
18 : 6 ⎠⎭
⎝ 18 ⎠ ⎩⎝
Bei der Reduktion von
6
18
erweitert die Anwendungskondition nicht nur die Einsetzung, sondern
auch die Anzahl der möglichen Einsetzungen. So ist in diesem Beispiel Ac({a ← 6, b ← 18}) =
{{a ← 6, b ← 18, k ← 2}1 ,{a ← 6, b ← 18, k ← 3}2 ,{a ← 6, b ← 18, k ← 6}3} .
Angenommen A = 12 +
ist
1
2
+ 34 ⇒ abhok
1⋅2
4
3
4
sei eine dem Schüler gestellte Aufgabe und w =
+ 34⋅1 ⇒ anok
2
4
+ 34⋅1 ⇒ anok
2
4
+ 34 ⇒ abok
2+ 3
4
⇒ anok
5
4
5
4
seine Antwort. Dann
eine mögliche Ableitung. Der
Schüler muß jedoch nicht zwingend so gerechnet haben. Denn u.a. auch die Ableitung
1
2
+ 34 ⇒ abh 0
1⋅4
8
+ 38⋅2 ⇒ anok
4
8
+ 38⋅2 ⇒ anok
4
8
+ 86 ⇒ abok
die Rechnung des Schülers erklären.
31
4+6
8
⇒ anok
10
8
⇒ kok
10:2
8:2
⇒ knok
5
8:2
⇒ knok
5
4
kann
3 Diagnose von Rechenstrategien
Für die computergestützte Fehlerdiagnose sind zwei verschiedene Einsatzfelder zu unterscheiden,
die völlig unterschiedliche Anforderungen an den Algorithmus stellen. Der eher klassische Fall ist
die Diagnose von bereits im Vorfeld erfaßten Schülerrechnungen zum Zweck der Erforschung
kognitiver Prozesse (Offline-Diagnose). Bei Implementierungen für dieses Einsatzfeld stellen Laufzeit und Speicherbedarf nur untergeordnete Kriterien dar. Beim Einsatz in intelligenten mathematischen Lernsystemen (Online-Diagnose) mit dem Ziel der sofortigen Diagnose und Therapie der
Schülerfehler hingegen stellen sowohl Laufzeit als auch Speicherbedarf kritische Größen dar. Insbesondere darf zwischen der Eingabe der Schüler und der Antwort des Lernsystems keine für den
Anwender subjektiv wahrnehmbare Zeit verstreichen. Dabei ist zu berücksichtigen, daß auf den
Anwendungsrechnern häufig nur geringe Rechenleistung und wenig Speicher verfügbar sind.
Neben verfügbarer Rechenleistung und Speicherkapazität unterscheiden sich die beiden Anwendungsfelder in einem weiteren wichtigen Punkt: dem Zeitablauf. Bei der Offline-Diagnose liegt eine
Menge von Aufgabenstellungen und Schülerantworten zu Beginn der Diagnose vor. Im Unterschied dazu liegt bei der Online-Diagnose in einem Lernsystem die Aufgabenstellung zeitlich deutlich vor der Schülerantwort vor, da der Schüler sowohl für die Berechnung als auch die für Eingabe
seiner Lösung einige Zeit benötigt. Die folgenden Tabelle zeigt einen Ausschnitt aus Tabelle 9 die
den Zusammenhang zwischen Aufgabenstellung und der durchschnittliche Bearbeitungszeit verdeutlicht (vgl. auch Abschnitt 5.2, S. 111).
Tabelle 2: Zeitspanne zwischen Aufgabenstellung und erster Schülerantwort (vgl. Erläuterungen und vollständige Tabelle in Abschnitt 5.2, S. 111)
Aufgabe
Anzahl
Minimum Mittel
[s]
[s]
Maximum Mittel [s] Mittel [s]
[s]
70%
30%
schnellste schnellste
36
=
12
32
5,6
27
71
18
11
1 3
+ =
2 4
33
6,2
47
144
27
13
2
5
1 +4 =
3
6
46
6,2
65
183
39
23
32
Wie die Spalte mit den Meßwerten der 30% schnellsten Bearbeitungszeiten zeigt, liegt zwischen
Aufgabenstellung und erster Schülerantwort eine Zeitspanne von bis zu 20 Sekunden bei minimalen
Bearbeitungszeiten von mehr als 5 Sekunden. Im weiteren soll daher von einer Zeitspanne von 5 bis
10 Sekunden zwischen Aufgabenstellung und Schülerantwort ausgegangen werden.
Der in dieser Arbeit vorgestellte Algorithmus zur Fehlerdiagnose in einem mathematischen Lernsystem nutzt diese Zeit bereits für die Diagnose. Daraus erfolgt eine Einteilung der Fehlerdiagnose
in zwei Phasen. Die erste Phase beginnt mit der Festlegung der als nächstes durch den Schüler zu
berechnenden Aufgabe A und endet mit der Eingabe der Schülerlösung w . In dieser Zeit beginnt
die Berechnung der Menge der Diagnosen Diag . Nach Eingabe der Schülerlösung w wird aus der
Menge der bisher berechneten Diagnosen die Teilmenge Diag (w) selektiert, die als Diagnosen für
die Eingabe des Schülers verwendet werden. Abbildung 9 zeigt ein Zeitdiagramm der beiden Phasen.
Phase I
Phase II
Diag
Diag (w)
5 - 10 s
<1 s
Zeit
D
Sc
ia
(w
g
ia
D
e
w
os
rt
g n wo
t
en
an
er
ab
l
hü
fg
Au
e
st
llu
ng
)
A
Abbildung 9: Phaseneinteilung bei der Diagnose
3.1 Berechnung der Menge der Diagnosen
In den nächsten Abschnitten wird ein Algorithmus zur Berechnung der Menge der Fehlerdiagnosen
Diag vorgestellt. Der Algorithmus wird sukzessive erweitert, um Entwurfsentscheidungen zu verdeutlichen. So stellt die folgende erste Fassung einen äußerst einfachen, i.A. nicht terminierenden
Algorithmus zur Berechnung von Diag dar, der in einer zweiten Fassung um künstliche Abbruchkriterien erweitert wird. Da Diag i.A. nicht vollständig berechnet werden kann, ist ein effizientes
Auswahlkriterium so zu entwerfen, daß möglichst viele Diagnosen aus Diag (w) in der berechneten Teilmenge von Diag enthalten sind. Zur Beschleunigung des Verfahrens wird schließlich eine
dynamische Fassung des Algorithmus vorgestellt.
33
Die folgenden Algorithmen arbeiten iterativ. Dabei wird i als Iterationsvariable verwendet. Entsprechend bezeichnet Diagi die im i -ten Iterationsschritt bekannte Teilmenge der Diagnosen
Diag , Li die im i -ten Iterationsschritt bekannte Teilmenge von L( D, A) und ToDoi die Menge
der Terme aus Li , deren Nachfolgerelemente noch unbekannt sind. Diese Bezeichnungen erlauben
eine erste formale Beschreibung eines Algorithmus zur Berechnung von Diag (sofern Diag überhaupt berechenbar ist):
1:
Diag 0 = {(( ), ( A))}, L0 = { A} , ToDo0 = {A} , i = 0
2:
Wiederhole
3:
Wähle wi ∈ ToDoi beliebig
4:
Bestimme Follow( wi )
5:
ToDoi +1 := (ToDoi ∪ {v (r , v ) ∈ Follow( wi )}) \ {wi }
6:
Diag i +1 := Diag i ∪ {((r1 ,…, rn −1 , rn ), (v0 ,…, vn − 2 , wi , v ))
((r1,…, rn −1 ), (v0 ,…, vn − 2 , wi )) ∈ Diagi ∧ (rn , v ) ∈ Follow( wi )}
7:
Li +1 := Li ∪ Follow( wi )
8:
i → i +1
9:
bis ToDoi = ∅
10: Diag := Diag i −1
Algorithmus 1: Algorithmus zur Berechnung der Diagnosen
Abhängig von dem zugrundeliegenden Diagnosesystem terminiert dieser Algorithmus nicht. Sei z.B.
add (a, b) → add (add (a, b),1) eine Diagnoseregel, dann läßt sich allein mit dieser Diagnoseregel
mit add (1,2) ⇒ add (add (1,2),1) ⇒ add (add (add (1,2),1),1) ⇒ … eine unendliche Anzahl von
verschiedenen Diagnosen erzeugen. In der Praxis wird man sich daher damit zufriedengeben müssen, daß eine „künstliche“ Terminierung erzwungen wird. Dies bedeutet, daß eine Berechnung der
Diagnosen Diag vorzeitig abgebrochen wird. Aus diesem Grund ist es sinnvoll die Reihenfolge der
Berechnung so zu steuern, daß zumindest die berechnete Teilmenge Diag i −1 ⊆ Diag so gewählt
ist, daß ihre Elemente die Schülerrechnung mit möglichst hoher Wahrscheinlichkeit erklären können, sofern der Fehler überhaupt durch das Diagnosesystem erklärt werden kann. Für die Generierung dieser Reihenfolge ist die Wahl von wi ∈ ToDoi in Zeile 3 ausschlaggebend.
34
3.1.1 Bewertungsfunktionen
Bei der Diagnose der Rechenstrategien ist zu berücksichtigen, daß die überwiegende Anzahl der von
Schülern durchgeführten Rechenschritte fehlerfrei ist. Auch treten die verschiedenen Fehlerstrategien in unterschiedlicher Häufigkeit auf. Auf der Basis statistischer Betrachtungen (vgl. Gerster
Grevsmühl, 1983, Padberg, 1995 und insbesondere Lörcher, 1982) lassen sich für korrekte und fehlerhafte Rechenstrategien Bewertungen finden. Diese können bei der Fehlerdiagnose an verschiedenen Stellen als Entscheidungskriterium genutzt werden, z.B. zur Verbesserung der Suchreihenfolge,
als Abbruchkriterium oder bei verschiedenen Diagnosen für eine Schülerantwort (Mehrdeutigkeit).
Definition 16 (Bewertungsfunktionen)
Sei D = (Σ, X , R, p) ein Diagnosesystem. Eine Funktion a R : R → ] 0,1[ heißt Bewertungsfunktion für Regeln2. Aus a R berechnet sich die Bewertungsfunktion für Diagnosen
n
a Diag : Diag → ] 0,1[ mit a Diag (((r1 , r2 ,… rn ), w)) = ∏ a R (ri ) .
i =1
Die
Funktion
aTΣ ( X ) : TΣ ( X ) →]0,1]
mit
aTΣ ( X ) (w) = max{aDiag (d ) d ∈ Diag ( w)}
und
max ∅ := 1 heißt Bewertungsfunktion für Terme. Während der iterativen Berechnung von
Diag ist aTΣ ( X ) ,i : TΣ ( X ) →]0,1] mit aTΣ ( X ) ,i (w) = max{aDiag (d ) d ∈ Diagi ( w)} und max ∅ := 1
Bewertungsfunktion für Terme beim Iterationsschritt i .
Auf der Bewertungsfunktion für Regeln a R basieren Steuerungsheuristiken. Im Idealfall wird a R
aufgrund statistischer Untersuchen über Häufigkeiten von Rechenstrategien gewonnen und stellt
eine Wahrscheinlichkeitsfunktion dar. Derartige hohe Anforderungen an a R sind jedoch nur sehr
aufwendig zu realisieren. Eine Anpassung von a R an den jeweiligen Schüler bedürfte zudem aufwendiger statistischer Funktionen. Aus beiden Gründen seien daher an a R niedrigere Anforderungen gestellt. Insbesondere darf
∑
r∈R
a R (r ) > 1 gelten und aus a R (r1 ) > a R (r2 ) muß nicht immer
folgen, daß Regel r1 häufiger verwendet wird als Regel r2 . Lediglich sollen hohe Funktionswerte
häufiges, niedrige Funktionswerte seltenes Verwenden einer Regel durch den Schüler andeuten.
2
Die Werte von aR werden durch statistische Untersuchungen gewonnen und in einer Tabelle abgelegt. Es ist sinnvoll diese Werte
kontinuierlich an den zu diagnostizierenden Schüler anzupassen, so daß eine Adaption an schülerspezifische Verwendungshäufigkeiten realisiert werden kann (vgl. Hennecke, 1997a). Aus Gründen der Übersichtlichkeit wurde auf das Mitführen eines Zeitindexes
verzichtet.
35
In diesem Sinne kann auch aDiag einfach als Produkt der Bewertungen der einzelnen Regeln und
aTΣ ( X ) als maximale Bewertung einer Regelfolge berechnet werden, ohne auf Abhängigkeiten zwi-
schen den Regelanwendungen durch Schüler Rücksicht zu nehmen. Zumal letztere ohnehin
schlecht erforscht sind, wird diese Annahme auch in der Fachdidaktik genutzt (vgl. Lörcher, 1982).
Wichtig ist im weiteren, daß die Definitionen folgendes triviales, aber für Terminierung wichtiges,
Lemma erfüllen:
Lemma 1 (Monotonie der Bewertungsfunktion für Diagnosen)
Sei Diag eine Menge von Diagnosen und aDiag eine Bewertungsfunktion für Diagnosen. Dann
gilt für jede Diagnose ((r1 , r2 ,…, rn ), w) ∈ Diag :
aDiag ((r1 )) > aDiag ((r1 , r2 )) > … > aDiag ((r1 , r2 ,…, rn )) .
Beweis: Wegen a R (r ) < 1 für r ∈ R gilt für alle i = 1,…, n − 1 :
aDiag ((r1 ,…, ri )) > aDiag ((r1 ,…, ri )) ⋅ aR (ri +1 ) = aDiag ((r1 ,…, ri , ri +1 ))
<1
3.1.2 Berechnung der Diagnosen (Bestensuche)
Mit „Wähle wi mit aTΣ ( X ) ,i (wi ) = max aTΣ ( X ) ,i (v ) “ ist ein Auswahlkriterium für wi ∈ ToDoi und
v∈ToDoi
mit max aTΣ ( X ) ,i (v) < ε STOP ein Abbruchkriterium gegeben, das eine vorgegebene Qualität und
v∈ToDoi +1
wegen Lemma 1 auch die Terminierung sicherstellt.
1:
Diag 0 = {(( ), ( A))}, L0 = { A} , ToDo0 = {A} , i = 0
2:
Wiederhole
3:
Wähle wi ∈ ToDoi mit aTΣ ( X ) ,i (wi ) = max aTΣ ( X ) ,i (v )
4:
Bestimme Follow( wi )
5:
ToDoi +1 := (ToDoi ∪ {v (r , v ) ∈ Follow( wi )}) \ {wi }
6:
v∈ToDoi
Diag i +1 := Diag i ∪ {((r1 ,…, rn −1 , rn ), (v0 ,…, vn − 2 , wi , v ))
((r1,…, rn −1 ), (v0 ,…, vn − 2 , wi )) ∈ Diagi ∧ (rn , v ) ∈ Follow( wi )}
7:
Li +1 := Li ∪ Follow( wi )
8:
i → i +1
9:
bis ToDoi = ∅ oder max aTΣ ( X ) ,i (v) < ε STOP oder Schülerantwort liegt vor
v∈ToDoi +1
Algorithmus 2: Bestensuche zur Berechnung der Diagnosen
36
Bei geeigneter Realisierung der Menge ToDo , z.B. durch eine Prioritätswarteschlange, ist die Bestimmung der Auswahl- und Abbruchkriterien effizient durchführbar. Bei Implementierung der
Prioritätswarteschlange als sortierte Liste ist max aTΣ ( X ) ,i (v) gerade durch die Bewertung des ersv∈ToDoi +1
ten Listenelements gegeben.
Der eigentliche Aufwand fällt dann beim Einfügen von neuen Elementen in die Menge ToDo an.
Werden Terme mit einer schlechteren Bewertung als ε STOP gar nicht erst in die Liste aufgenommen,
reduziert sich der Aufwand weiter. Ferner fällt das Abbruchkriterium max aTΣ ( X ) ,i (v) < ε STOP mit
v∈ToDoi +1
ToDoi = ∅ zusammen. Die alternative Berechnung von ToDo lautet dann
(
{
ToDoi +1 := ToDoi ∪ v (r , v ) ∈ Follow( wi ) ∧ aTΣ ( X ) ,i +1 (v) ≥ ε STOP
}) \ {w } .
i
Mit Hinblick auf eine leichte Berechnung wurden an die Bewertungsfunktionen nur geringe Anforderungen gestellt. In Extremfällen kann dies zu einer sehr ungünstigen Reihenfolge der Berechnung
der Nachfolgermengen führen. Existiert z.B. eine fortwährend zyklenfrei anwendbare Diagnoserer
r
r
gel w0 ⎯
⎯→
w1 ⎯
⎯→
w2 ⎯
⎯→
… mit einer Bewertung nahe eins, so berechnet der Algorithmus
extrem lange Regelfolgen mit dieser Diagnoseregel, während andere Diagnoseregeln kaum berücksichtigt werden. Um derartigen, auch aus fachdidaktischem Geschichtspunkt extrem unrealistischen,
Diagnosen entgegenzuwirken, ist die Beschränkung der maximalen Länge einer Diagnose sinnvoll.
Definition 17 (Tiefenfunktion für Terme)
Sei
D = (Σ, X , R, p)
ein
Diagnosesystem.
Die
Funktion
tiefe : TΣ ( X ) → IN
mit
tiefe(w) = min{ d d ∈ Diag ( w)} heißt Tiefenfunktion für Terme. Während der Iteration ist
tiefei : TΣ ( X ) → IN mit tiefei (w) = min{ d d ∈ Diag i ( w)} Tiefenfunktion für Terme beim Iterationsschritt i .
Mit dieser Definition läßt sich die Berechnung der Menge ToDo dann weiter einschränken zu:
(
{
ToDoi +1 := ToDoi ∪ v (r , v ) ∈ Follow( wi ) ∧ aTΣ ( X ) ,i +1 (v) ≥ ε STOP ∧tiefei +1 (v) < tiefemax
}) \ {w } .
i
Zur Beschreibung der Ergebnismengen nach Abbruch von Algorithmus 2 bzw. später Algorithmus
5 sei die entsprechende Menge in Zukunft mit
ε
berechnete Teilmenge der Diagnosen.
37
gekennzeichnet. So bezeichnet z.B. Diag ε die
3.2 Dynamische Berechnung der Nachfolgermengen
Die aufwendigste Teilaufgabe von Algorithmus 2 ist die Berechnung der Nachfolgermenge
Follow(w) . Nach Definition 14 ist Follow(w) definiert als
Follow( w) := {(r , v ) ∀r ∈ R : ∀v ∈TΣ ( X ) : w ⇒ r v}
Zur Berechnung von Follow(w) muß für jede Diagnoseregel überprüft werden, ob eine oder mehrere Instanzen der Diagnoseregel auf einen Teilterm von w anwendbar sind. In diesem Abschnitt
soll ein Verfahren nach dem Prinzip der dynamischen Programmierung vorgestellt werden, das den
Aufwand der Berechnung der Nachfolgermengen reduziert.
3.2.1 Dynamische Programmierung
Viele Algorithmen der Informatik basieren auf dem Prinzip „Teile und Herrsche“, das auch unter
der englischen Bezeichnung „divide and conquer“ bekannt ist. Dabei wird ein Problem in immer
kleinere Teilprobleme zerlegt, die dann unabhängig voneinander gelöst werden. In der dynamischen
Programmierung wird dieses Prinzip weiterentwickelt. Dazu werden alle Ergebnisse bereits gelöster
Teilprobleme gespeichert, um sie bei der Lösung anderer Teilprobleme wieder zu verwenden. Die
Unterschiede zwischen dem Prinzip „Teile und Herrsche“ und dem der dynamischen Programmierung sollen anhand folgenden Beispiels verdeutlicht werden.
Gegeben sei die Fibonacci-Funktion fib : IN → IN mit
falls n = 0 ∨ n = 1
⎧1
fib(n) = ⎨
⎩ fib(n − 1) + fib(n − 2) sonst
Ein einfacher Algorithmus nach dem Prinzip „Teile und Herrsche“ könnte dann wie in
Algorithmus 3 implementiert werden. Die Implementierung hat jedoch ein Laufzeitverhalten der
Komplexität O(e n ) - vgl. Abbildung 10, S. 39. Ein dynamischer Algorithmus hingegen merkt sich
die Ergebnisse der bereits gelösten Teilprobleme, so daß fib(n) jeweils nur einmal berechnet werden muß. Der Algorithmus könnte wie in Algorithmus 4 lauten. Diese Fassung benötigt zwar mehr
Speicher als Algorithmus 3 hat jedoch die Laufzeitkomplexität O(n) . Das Aufrufdiagramm in
Abbildung 11 zeigt die Einsparung gegenüber dem Prinzip „Teile und Herrsche“.
38
function fib(n: Integer): Integer;
var fibs: Array[1..nmax] of Inte-
begin
ger;
function fib(n: Integer): Integer;
if n <= 1 then
begin
Result := 1
else
if fibs[n] = 0 then
Result := fib(n-1) + fib(n-2);
fibs[n] := fib(n-1) + fib(n-2);
Result := fibs[n];
end;
end;
Algorithmus 3: Berechnung der Fibonacci-Zahlen
nach dem Prinzip „Teile und Herrsche“
Algorithmus 4: Berechnung der Fibonacci-Zahlen
nach dem Prinzip der dynamischen Programmierung
fib(6)
fib(6)
fib(4)
fib(5)
fib(4)
fib(3)
fib(2)
fib(1)
fib(3)
fib(2)
fib(1) fib(1)
fib(2)
fib(0) fib(1)
fib(3)
fib(1)
fib(0)
fib(2)
fib(1)
fib(5)
fib( 2)
fib(1) fib(1)
fib(4)
fib(0)
fib(3)
fib(0)
fib(2)
fib(0)
fib(1)
Abbildung 10: Aufrufdiagramm für Algorithmus 3
fib(4)
fib(3)
fib(2)
fib(1)
fib(0)
Abbildung 11: Aufrufdiagramm für Algorithmus 4
Gegenüber dem Prinzip „Teile und Herrsche“ hat die dynamische Programmierung immer dann
Vorteile, wenn die Teilprobleme nicht unabhängig voneinander sind, d.h. wenn die Teilprobleme
der Zerlegung des Problems wiederum gemeinsame Teilprobleme enthalten. Die dynamische Programmierung ist besonders im Gebiet des Operation Research eine weit verbreitete Lösungsmethode für verschiedene Optimierungsprobleme. In diesem Zusammenhang spricht man auch von dynamischer Optimierung.
Bemerkung: Für die Berechnung der Fibonacci-Zahlen existieren bessere Algorithmen, die in diesem Zusammenhang jedoch nicht betrachtet werden sollen.
39
3.2.2 Dynamischer Algorithmus zur Bestimmung der Diagnosen
Die Vorteile der dynamischen Berechnung können ebenso bei der Berechnung der Nachfolgermengen m -stelliger Terme der Form f (t1 ,…, t m ) genutzt werden. Hierzu sollen die berechneten
Nachfolgermengen der Teilterme t1 bis t m verwendet werden.
Definition 18 (Nachfolgermenge der Argumente)
Sei D = (Σ, X , R, p) ein Diagnosesystem und f (t1 ,…, t m ) ∈ TΣ ( X ) ein m -stelliger Term. Dann
heißt FollowArg i ( f (t1 ,…, t m )) = {(r , f (t1 ,…, t i −1 , t i′, t i +1 ,…, t m )) ∈ R × TΣ ( X ) (r , t i′ ) ∈ Follow(t i )}
Nachfolgermenge des Arguments i von f (t1 ,…, t m ) .
Beispiel:
Für das in Abschnitt 2.2.4 vorgestellte Diagnosesystem war die Nachfolgermenge
Follow( 12 + 93 ) = {(abhok , 118⋅9 + 318⋅3 ), (ab0, 12++39 ), (kok , 12 + 93::33 )}. Die Nachfolgermenge
des zweiten Arguments ist FollowArg 2 ( 12 + 34 ) = {(kok , 12 + 93::33 )} . Die Nachfolgermenge des ersten Arguments ist leer.
Lemma 2
Sei D = (Σ, X , R, p) ein Diagnosesystem mit konstanter Prioritätsfunktion und f (t1 ,…, t m ) ein
m -stelliger Term über TΣ ( X ) . Sei FollowArg i ( f (t1 ,…, t m )) die Nachfolgermenge des Argu-
ments i von f (t1 ,…, t m ) . Dann gilt: FollowArg i ( f (t1 ,…, t m )) ⊆ Follow( f (t1 ,…, t m )) für alle
1≤ i ≤ m.
Beweis:
Follow(t i ) enthält alle Nachfolgerelemente des Terms t i . Jedes Element (r , t i′ ) der
Nachfolgermenge stellt eine Reduktion der Form t i ⇒ r t i′ dar. Aus der Definition
von FollowArg i ( f (t1 ,…, t m )) folgt, daß f (t1 ,…t i −1 , , t i +1 ,…, t m ) ein gültiger Kontext für t i′ ist. Bei konstanter Prioritätsfunktion ist somit auch die Reduktion
f (t1 ,…, t i −1 , t i , t i +1 ,…, t m ) ⇒ r f (t1 ,…, t i −1 , t i′, t i +1 ,…, t m ) möglich. Die Nachfolgermenge Follow( f (t1 ,…, t m )) enthält also das Element (r , f (t1 ,…, t i −1 , t i′, t i +1 ,…, t m )) .
Wie das Beispiel zu Definition 18 bereits zeigt, reichen die Nachfolgermengen der Argumente für
die Berechnung der Nachfolgermenge eines Terms noch nicht aus. Es fehlen noch die Reduktionen, deren Kontext
ist.
40
Definition 19 (Nachfolgermenge des Operators)
Sei D = (Σ, X , R, p) ein Diagnosesystem und f (t1 ,…, t m ) ∈ TΣ ( X ) ein m -stelliger Term, dann
heißt FollowOp ( f (t1 ,…, t m )) = {(r , v ) ∀r ∈ R : f (t1 ,…, t m ) → r v} Nachfolgermenge des
Operators von f (t1 ,…, t m ) .
Beispiel:
Entsprechend dem Beispiel zu Definition 18 ist die Nachfolgermenge des Operators
Follow( 12 + 93 ) = {(abhok , 118⋅9 + 318⋅3 ), (ab0, 12++39 )} .
Lemma 3
Sei D = (Σ, X , R, p) ein Diagnosesystem mit konstanter Prioritätsfunktion und f (t1 ,…, t m ) ein
m -stelliger Term über TΣ ( X ) . Sei FollowOp( f (t1 ,…, t m )) die Nachfolgermenge des Operators
von f (t1 ,…, t m ) . Dann gilt FollowOp( f (t1 ,…, t m ))⊆ Follow( f (t1 ,…, t m )) .
Beweis:
Wird der Term f (t1 ,…, t m ) mit der Regel r ∈ R reduziert, d.h. f (t1 ,…, t m ) → r v ,
so ist wegen der konstanten Prioritätsfunktion auch f (t1 ,…, t m ) ⇒ r v , d.h. die
Nachfolgermenge Follow( f (t1 ,…, t m )) enthält das Element (r, v ) .
Definition 20 (dynamisch berechnete Nachfolgermenge)
Sei D = (Σ, X , R, p) ein Diagnosesystem und f (t1 ,…, t m ) ein m -stelliger Term über TΣ ( X ) .
Seien FollowArg i ( f (t1 ,…, t m )) die Nachfolgermengen der Argumente von f (t1 ,…, t m ) und
sei FollowOp( f (t1 ,…, t m )) die Nachfolgermenge des Operators von f (t1 ,…, t m ) . Dann wird
Followdyn ( f (t1 ,…, t m )) := FollowOp( f (t1 ,…, t m )) ∪
∪ FollowArg ( f (t ,…, t ))
i
1
m
als dyna-
1≤i ≤ m
misch berechnete Nachfolgermenge von f (t1 ,…, t m ) bezeichnet. Für Konstanten und Variablen v ist Followdyn (v) := Follow(v) .
Beispiel:
Entsprechend dem Beispiel zu Definition 18 ist die dynamisch berechnete Nachfolgermenge Followdyn ( 12 + 93 ) = {(abhok , 118⋅9 + 318⋅3 ), (ab0, 12++39 ), (kok , 12 + 93::33 )} .
41
Wie sich in dem Beispiel schon andeutet, läßt sich so die Berechnung der Nachfolgermenge eines
Terms dynamisch durchführen. Es folgt entsprechend Satz 1:
Satz 1 (Dynamische Berechnung der Nachfolgermenge bei konstanter Prioritätsfunktion)
Sei D = (Σ, X , R, p) ein Diagnosesystem mit konstanter Prioritätsfunktion und t ein Term über
TΣ ( X ) . Sei Followdyn (t ) die dynamisch berechnete Nachfolgermenge von t .
Dann gilt Follow(t ) = Followdyn (t ) .
Beweis:
Ist t Konstante oder Variable, so folgt Satz 1 trivial aus der Definition. Sei im folgenden t der m -stellige Term f (t1 ,…, t m ) . Da sich Followdyn ( f (t1 ,…, t m )) in diesem Fall aus den Nachfolgermengen der Argumente und der Nachfolgermenge des
Operators berechnet, ist
Followdyn ( f (t1 ,…, t m )) ⊆ Follow( f (t1 ,…, t m ))
nach
Lemma 2 und Lemma 3.
Eine weitere Reduktion t ⇒ t ′ , die nicht durch Followdyn ( f (t1 ,…, t m )) dargestellt
wird, kann nicht existieren, da Reduktionen innerhalb des Kontextes
durch die
Nachfolgermenge des Operators und Reduktionen innerhalb von Kontexten der
Form f (t1 ,…, t i −1 , C[], t i +1 ,…, t m ) mit 1 ≤ i ≤ m durch die Nachfolgermengen der
Argumente dargestellt werden.
Die Beschränkung von Satz 1 auf Diagnosesysteme mit konstanter Prioritätsfunktion ist nicht wesentlich und kann leicht behoben werden:
Definition 21 (Prioritätsauswahl)
Sei D = (Σ, X , R, p) ein Diagnosesystem und w ein Term über TΣ ( X ) . Sei Followdyn (w) die
dynamisch berechnete Nachfolgermenge von w . Dann ist die dynamisch berechnete Nachfolgermenge von w mit Prioritätsauswahl definiert durch
{
}
prio
Followdyn
( w) := (r , v ) ∈ Followdyn ( w) p (r ) = max{p (r ′) (r ′, v) ∈ Followdyn ( w)}
prio
Es folgt unmittelbar, daß entsprechend Satz 1, Followdyn
( w) = Follow( w) auch für Diagnosesys-
teme mit nicht konstanter Prioritätsfunktion gilt. Dies bedeutet, daß die Nachfolgermenge eines
Terms aus den Nachfolgermengen seiner Argumente und aus der Nachfolgermenge des Operators
berechnet werden kann. Insbesondere entfällt die Bestimmung von Kontexten bei der Reduktion.
42
Aus diesen Vorüberlegungen ergibt sich der rekursive Algorithmus mit dynamischer Berechnung
der Nachfolgermengen:
Methode Expandiere w , toplevel
1:
w = f (t1 ,…, t m )
2:
Für 1 ≤ j ≤ m
3:
Falls Follow(t j ) unbekannt, Expandiere t j , false
4:
prio
Berechne Followdyn
( wi )
5:
Falls TopLevel = true
6:
(
{
ToDoi +1 := ToDoi ∪ v (r , v ) ∈ Follow( wi ) ∧ aTΣ ( X ) ,i +1 (v) ≥ ε STOP
tiefei +1 (v) < tiefemax }) \ {wi }
7:
Diag i +1 := Diag i ∪ {((r1 ,…, rn −1 , rn ), (v0 ,…, vn − 2 , wi , v ))
((r1,…, rn −1 ), (v0 ,…, vn − 2 , wi )) ∈ Diag i ∧ (rn , v ) ∈ Follow( wi )}
8:
Li +1 := Li ∪ Follow( wi )
9:
i → i +1
Hauptprogramm:
10: Diag 0 = {(( ), ( A))}, L0 = { A} , ToDo0 = {A}, i = 0
11: Wiederhole
12:
Wähle wi ∈ ToDoi mit a Σ*,i (wi ) = max a Σ*,i (v )
13:
Expandiere wi , true
v∈Ti
14: bis ToDoi = ∅ oder Schülerlösung liegt vor
Algorithmus 5: Dynamischer Algorithmus zur Berechnung der Diagnosen
43
3.3 Vergleich mit der Termgraphersetzung
In diesem Abschnitt soll der vorgeschlagene Diagnosealgorithmus kurz mit der Termgraphersetzung verglichen werden (vgl. Sleep, Plasmeijer, van Eekelen, 1993; Plasmeijer; van Eekelen, 1993;
Plump, 1998). Beiden Verfahren liegt die gleiche Idee zugrunde, einmal berechnete Reduktionsschritte für einen mehrfach auftretenden Teilterm auch mehrfach zu nutzen. Abbildung 12 zeigt als
fortlaufendes Beispiel den Termgraphen für
1
2⋅4
+ 24⋅4 in einer, im Bereich der Termgraphersetzung
üblichen, Notation. Hierbei handelt es sich um einen Hypergraphen, dessen Kanten die Operatoren
bzw. Konstanten bilden.
add
bruch
1
bruch
mul
2
mul
4
2
4
4
Abbildung 12: Beispiel eines Termgraphen
Sowohl für den vorgeschlagenen Diagnosealgorithmus als auch für viele Anwendungen im Bereich
der Termgraphersetzung ist es sinnvoll, mehrfach auftretende Teilterme nur einmal zu repräsentieren. Man spricht dann von kollabierten Graphen. Abbildung 13 zeigt den bereits aus Abbildung 12
bekannten Termgraphen in kollabierter Form.
add
bruch
bruch
1
mul
2
4
Abbildung 13: Beispiel eines (vollständig) kollabierten Termgraphen
44
Wird nun eine Ersetzungsregel, wie mul (a, b) → c , wobei c die Summe von a und b ist, auf den
kollabierten Termgraphen angewendet, erfolgt die Ersetzung parallel, d.h. beide Teilterme werden
gleichzeitig ersetzt (vgl. Abbildung 14). Ziel dieses Konzeptes ist es identische Reduktionsschritte
einzusparen.
add
add
bruch
bruch
1
bruch
mul
2
bruch
1
8
4
4
Abbildung 14: Beispiel eines Reduktionsschrittes bei der Termgraphersetzung
Im Sinne der Fehlerdiagnose ist diese Ersetzung nicht sinnvoll, da zum einem die Folge der Reduktionsschritte und nicht deren Ergebnis gesucht ist und zum anderem der Schüler nicht bei jedem
Auftreten des gleichen Teilterms auch dieselbe Rechenstrategie verwendet haben muß. Der dynamische Diagnosealgorithmus verfährt daher anders: Anstatt alle Instanzen des gleichen Teilterms zu
ersetzten, wird nur eine Instanz reduziert. Alle weiteren Instanzen erhalten lediglich einen „Vermerk“ auf das mögliche Ergebnis der Ersetzung. Abbildung 15 entspricht Abbildung 14 bei der dynamischen Berechnung. Die zusätzliche „dicke“ Kante symbolisiert diesen „Vermerk“. In der Regel
werden vom Diagnosealgorithmus mehrere Vermerke auf mögliche Lösungen an einem Knoten
angebracht. Hier liegt ein entscheidender Unterschied zur Termgraphersetzung.
add
add
bruch
bruch
1
bruch
mul
2
1
bruch
8
4
mul
2
Abbildung 15: Abstrakte Darstellung der dynamischen Ersetzung als
Termgraphersetzung
45
4
Durch den dynamischen Algorithmus wird anders als bei der Termgraphersetzung zunächst kein
Reduktionsschritt eingespart. Folgende Reduktionsschritte werden jedoch erheblich beschleunigt, da
die aufwendige Überprüfung, welche Diagnoseregeln angewendet werden können, entfällt.
Als größerer Unterschied ist daher die Arbeitsweise der beiden Algorithmen zu sehen. Während die
Termgraphersetzung eine der möglichen Ersetzungsregeln anwendet bis ein irreduzibler Termgraph
erreicht ist, führt die Fehlerdiagnose eine Bestensuche durch, d.h. es werden in jedem Schritt alle
möglichen Diagnoseregeln angewendet. Im Sinne der Termgraphersetzung entsteht so ein Wald
von Termgraphen, die untereinander vollständig kollabiert sind. Entsprechend kann bei den folgenden Ersetzungsschritten für die weiteren Termgraphen auf die bereits vermerkten Ersetzungsschritte zurückgegriffen werden, was in diesem Kontext einen wesentlichen Vorteil gegenüber der klassischen Termgraphersetzung darstellt.
46
3.4 Indirekte Berechnung der Diagnosen
3.4.1 Speicherbedarf
Viele dynamische Algorithmen sind für den hohen Speicherbedarf der bereits berechneten Zwischenergebnisse bekannt. Für das in Algorithmus 5 vorgestellte dynamische Verfahren stellt die
Speicherung der bereits bekannten Nachfolgermengen jedoch nur ein untergeordnetes Problem
dar, da ihr Umfang klein gegenüber der Menge der möglichen Diagnosen in Diag ε ist. Abbildung
16 verdeutlicht dies am Beispiel der Aufgabe
6
8
+ 86 , indem sie die Anzahl der berechneten Elemente
von Nachfolgermengen im Verhältnis zur Anzahl der berechneten Diagnosen zeigt.
Nachfolger/Diagnosen
3.000.000.000
2.500.000.000
Diagnosen
2.000.000.000
1.500.000.000
1.000.000.000
500.000.000
0
0
2000
4000
6000
8000
10000
12000
14000
16000
18000
Nachfolger
Abbildung 16: Verhältnis der Anzahl der Diagnosen zu der Anzahl der berechneten Elemente von Nachfolgermengen
Weitere Diagramme dieser Art befinden sich im Anhang B. Sie zeigen deutlich, daß die Anzahl der
Diagnosen in Abhängigkeit von der gestellten Aufgabe stark variiert. In Extremfällen werden
durchaus mehrere Milliarden Diagnosen berechnet. Selbst bei einer sehr kompakten Speicherung
von Diag ε würde hierfür zuviel Speicher und zuviel Rechenzeit für die Belegung benötigt.
Algorithmus 5 stellt daher in dieser Form keine praktikable Lösung für die erste Phase der Fehlerdiagnose dar.
47
Innerhalb der beiden Phasen der Fehlerdiagnose findet Diag ε bei der Berechnung der Bewertungsfunktion aTΣ ( X ) ( w) und der Tiefenfunktion tiefe(w) sowie in der zweiten Phase bei der Bestimmung von Diag ε (w) ⊆ Diag ε Verwendung. Ziel der nächsten Abschnitte wird es daher sein,
diese drei Berechnungen auch ohne Kenntnis von Diag ε aus den Nachfolgermengen berechnen
zu können.
3.4.2 Nachfolgermengen-Graphen
Für die folgenden Ausführungen soll die bei der Berechnung der Nachfolgermengen entstehende
Struktur anschaulich durch einen gerichteten Graphen beschrieben werden. Im Speicher werden die
Kanten dieses Graphen später durch entsprechende Zeiger realisiert.
Definition 22 (Nachfolgermengen-Graph)
Sei D = (Σ, X , R, p) ein Diagnosesystem und A ein Startterm. Sei E ⊆ L( D, A) × L( D, A) mit
∀(r , v) ∈ Follow( w) : ( w, v) ∈ E gegeben. Dann heißt FollowGraph( D, A) = ( L( D, A), E )
Nachfolgermengen-Graph von A .
Anschaulich kann FollowGraph( D, A) als gerichteter Graph verstanden werden, an dessen „Wurzel“ die Aufgabenstellung A steht. Von jedem Knoten gehen gerichtete Kanten aus, die auf die Elemente der Nachfolgermenge des Knoten zeigen. Ein Beispiel für einen derartigen Nachfolgermengen-Graph zeigt Abbildung 17. Leere Kreise symbolisieren dabei Terme, die für das jeweilige
konkrete Beispiel ohne Bedeutung sind.
1 3
+
2 4
1+ 3
2+4
1+ 3
6
4
2+4
4
6
Abbildung 17: Beispiel für einen Nachfolgermengen-Graph (Ausschnitt)
48
Anhand eines Nachfolgermengen-Graphen wird leicht deutlich, daß alle bereits berechneten Diagnosen auch durch die Nachfolgermengen repräsentiert werden. Diag ε berechnet sich aus der
Menge aller Kantenzüge von der Aufgabenstellung zu jedem der Knoten. Die explizite Speicherung
von Diag ε kann entfallen, wenn sich die Bewertungsfunktion, die Tiefenfunktion und in der zweiten Phase Diag ε (w) ohne Kenntnis von Diag ε berechnen lassen.
3.4.3 Aktualisierung der Bewertungs- und Tiefenfunktion für Terme
Um aTΣ ( X ) ,i und tiefei ohne Kenntnis von Diag i berechnen zu können, bietet sich deren laufende
Aktualisierung beim Einfügen neuer Kanten in den Nachfolgermengen-Graphen an. Die Vorgehensweise soll im folgenden an den in Abbildung 18 gezeigten Nachfolgermengen-Graphen veranschaulicht werden. Die Rechtecke geben dabei die Bewertungen der Regeln und die Beschriftungen
neben den Kreisen die Bewertungen der Terme an.
a∑* ,i = 1
aR = 0,95
aR = 0,8
a∑* ,i = 0,95
a∑* ,i = 0,8
aR = 0,01
a∑* ,i = 0,08
aR = 0,2
a∑* ,i = 0,016
...
...
...
Abbildung 18: Nachfolgermengen-Graph mit Bewertungen der Diagnoseregeln und Termen
Beim Einfügen einer neuen Kante (Diagnoseregel) ist eine Aktualisierung vorzunehmen, falls
aTΣ ( X ) ,i −1 (v) = 1 oder aTΣ ( X ) ,i −1 ( w) ⋅ a R (r ) > aTΣ ( X ) ,i −1 (v) gilt. Im ersten Fall war v bisher nicht als
Term aus L( D, A) bekannt – im zweiten Fall ist über die neue Kante eine bessere Bewertung möglich (vgl. Abbildung 19).
49
a∑* ,i = 1
aR = 0,95
aR = 0,8
a∑* ,i = 0,95
a∑* ,i = 0,8
aR = 0,8
aR = 0,01
a∑* ,i = 0,76
aR = 0,2
a∑* ,i = 0,016
...
...
...
Abbildung 19: Aktualisierung der Bewertungen beim Einfügen einer neuen
Kante in den Nachfolgermengen-Graphen
Erfolgte für einen Knoten v die Aktualisierung der Bewertung, müssen ggf. rekursiv die Elemente
von Follow(v) aktualisiert werden (vgl. Abbildung 20).
a∑* ,i = 1
aR = 0,95
aR = 0,8
a∑* ,i = 0,95
a∑* ,i = 0,8
aR = 0,8
aR = 0,01
a∑* ,i = 0,76
aR = 0,2
a∑* ,i = 0,152
...
...
...
Abbildung 20: Rekursive Aktualisierung beim Einfügen einer neuen Kante
in den Nachfolgermengen-Graphen
Entsprechend ist die Aktualisierung der Tiefenfunktion vorzunehmen, falls es durch Einfügen der
Kante einen kürzeren Weg gibt, d.h. tiefei −1 (v) < tiefei −1 ( w) + 1 ist. Somit ergibt sich nach der
Initialisierung mit ∀w ∈ TΣ ( X ) : aTΣ ( X ) , 0 ( w) = 1 und tiefe0 ( w) = ∞ folgender Algorithmus:
50
Methode Aktualisiere Bewertung w, (r , v)
1:
if aTΣ ( X ) ,i −1 (v) = 1 or aTΣ ( X ) ,i −1 ( w) ⋅ a R (r ) > aTΣ ( X ) ,i −1 (v) or tiefei −1 (v) < tiefei −1 ( w) + 1 then
2:
aTΣ ( X ) ,i (v) := min(max(aTΣ ( X ) ,i (v), aTΣ ( X ) ,i −1 ( w) ⋅ a R (r )),1)
3:
tiefei (v) := min(tiefei −1 (v), tiefei −1 ( w) + 1)
4:
∀(r ' , v' ) ∈ Follow(v) : Aktualisiere Bewertung v, (r ' , v' )
Algorithmus 6: Aktualisierung der Bewertung für Terme
3.5 Berechnung der Diagnosen für eine Schülerantwort
Die Berechnung von Diag ε (w) für die Schülerantwort w in der zweiten Phase ist aus dem Nachfolgermengen-Graphen durchzuführen. Dabei repräsentiert die Menge aller Kantenzüge des Nachfolgermengen-Graphen, die von der Aufgabenstellung zur Schülerantwort verlaufen, die gesuchte
Menge.
3.5.1 Vorgängermengen
Bei der Bestimmung der Diagnosen für die Schülerantwort stellen Verfahren, die ausgehend von
der Aufgabenstellung den Nachfolgermengen-Graphen traversieren, keine geeignete Lösung dar, da
bei ihnen der gesamte Nachfolgermengen-Graph bearbeitet werden muß. Statt dessen sind Verfahren vorzuziehen, die von der Schülerlösung ausgehen und den Nachfolgermengen-Graphen entgegen der Richtung seiner Kanten traversieren. Entsprechend wird für jeden Term das Analog zur
Nachfolgermenge benötigt:
Definition 23 (Vorgängermenge)
Sei D = (Σ, X , R, p) ein Diagnosesystem und w ∈ TΣ ( X ) ein Term über Σ( X ) . Dann heißt
{
}
Previous( w) := v ∀v ∈ TΣ ( X ) ∃r ∈ R : (r , w) ∈ Follow(v) Vorgängermenge von w .
Vorgängermengen lassen sich bei der Aktualisierung der Bewertung für Terme (siehe Algorithmus
6) berechnen. Dazu sei Previousi (w) die im i-ten Iterationsschritt bekannte Teilmenge von
Previous(w) . Dann berechnet der wie folgt modifizierte Algorithmus Previous ε , d.h. die bei Stop
der erste Phase der Fehlerdiagnose bekannten Vorgängermengen.
51
Methode Aktualisiere Bewertung w, (r , v)
1:
if aTΣ ( X ) ,i −1 (v) = 1 or aTΣ ( X ) ,i −1 ( w) ⋅ a R (r ) > aTΣ ( X ) ,i −1 (v) or tiefei −1 (v) < tiefei −1 ( w) + 1 then
2:
aTΣ ( X ) ,i (v) := min(max(aTΣ ( X ) ,i (v), aTΣ ( X ) ,i −1 ( w) ⋅ a R (r )),1)
3:
tiefei (v) := min(tiefei −1 (v), tiefei −1 ( w) + 1)
4:
Previousi (v) := Previousi −1 (v) ∪ {w}
5:
∀(r ' , v' ) ∈ Follow(v) : Aktualisiere Bewertung v, (r ' , v' )
Algorithmus 7: Aktualisierung der Bewertung für Terme bei gleichzeitiger
Berechnung der Vorgängermengen
Um den, durch eine von der Schülerlösung ausgehende Traversierung des NachfolgermengenGraphen, durchlaufenden Teilgraphen formal fassen zu können, beschreibt die folgende Definition
24 die Knoten dieses Teilgraphen.
Definition 24 (aufspannende Knotenmenge)
Sei D = (Σ, X , R, p) ein Diagnosesystem, A ein Startterm und w ∈ TΣ ( X ) eine Schülerantwort.
Dann heißt Spanε ( w) ⊆ L( D, A) die Diag ε (w) aufspannende Knotenmenge und ist definiert durch:
Span0ε ( w) = {w}
{
}
Spaniε ( w) = u v ∈ Spaniε−1 ( w) ∧ u ∈Previous ε (v) − ∪ Span εj ( w)
j <i
Span ( w) = ∪ Spani ( w)
ε
ε
i
Bemerkung: Die Teilmengen Spaniε ⊆ Spanε enthalten genau die Terme, die durch eine Ableitung der Länge i in die Schülerlösung überführt werden können. Die aufspannende
Knotenmenge ist endlich, da durch den Diagnosealgorithmus in der ersten Phase der
Fehlerdiagnose nur eine endliche Menge von Termen berechnet wurde.
3.5.2 Permutierte Regelfolgen
Die Anzahl der Diagnosen einer Schülerrechnung ist abhängig vom Diagnosesystem und der Schülerlösung. Für das in dieser Arbeit beispielhaft vorgestellte Diagnosesystem treten bei einigen Extremfällen mehr als 1000 Diagnosen für eine Schülerantwort auf. Diese Vielzahl ist insbesondere
durch Diagnosen bedingt, die sich nur in der Reihenfolge der Regelanwendungen unterscheiden. So
sind die folgenden vier Diagnosen zwar verschieden – unter fachdidaktischen Geschichtspunkten
52
ist eine Unterscheidbarkeit jedoch nicht wesentlich, da alle vier Diagnosen durch die gleiche, falsche
additive Fehlerstrategie zu erklären sind.
1 3 a 0 1 + 3 anok
4
4 kok 4 : 2 dnok
2
2
anok
dnok
+ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→
2 4
2+4
2+4
6
6:2
6:2
3
1 3 a 0 1 + 3 anok
4
4 kok 4 : 2 dnok 4 : 2 dnok 2
anok
+ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→
2 4
2+4
2+4
6
6:2
3
3
1 3 a 0 1 + 3 anok 1 + 3 anok 4 kok 4 : 2 dnok
2
2
dnok
+ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→
2 4
2+4
6
6
6:2
6:2
3
1 3 a 0 1 + 3 anok 1 + 3 anok 4 kok 4 : 2 dnok 4 : 2 dnok 2
+ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→ ⎯⎯→
⎯⎯
⎯→
⎯⎯
⎯→
2 4
2+4
6
6
6:2
3
3
Es ist sinnvoll, derartig permutierte Diagnosen zu Klassen zusammenfassen und lediglich einen Repräsentanten dieser Klasse als Ergebnis der Fehlerdiagnose zu generieren. Unter dieser Prämisse ist
jedoch die Erzeugung aller Diagnosen und anschließender Reduktion der erzeugten Menge auf
Klassenrepräsentanten ein unnötiger Aufwand. Statt dessen sollte ein Algorithmus für die zweite
Phase ausschließlich die gesuchten Repräsentanten erzeugen.
Definition 25 (Permutierte Diagnosen)
Sei D = (Σ, X , R, p) ein Diagnosesystem und ((r1 ,…, rn ), (w0 ,…, wn )) eine Diagnose. Dann ist
((r1 ,…, rn ), (w0 ,…, wn ))ε
ein Bezeichner der Menge aller Diagnosen, die durch Permutation der
Regelfolge (r1 ,…, rn ) entstehen, d.h.
((r1 ,…, rn ), (w0 ,…, wn ))ε := {(( p1 ,…, p n ), (v0 ,…, vn ))
(( p1 ,…, p n ), (v0 ,…, vn )) ∈ Diag ε (w0 , wn )
∧( p1 , … , p n ) Permutation von (r1 , … , rn )
∧ w0 = v0 ∧ wn = v n }
Die
Mengen
((r1 ,…, rn ), (w0 ,…, wn ))ε
bilden
eine
Klasseneinteilung
der
Menge
Diag ε (w0 , wn ) . Es sei ferner Diag ε (s, e ) die Teilmenge von Diag ε (s, e ) , die aus jeder Klasse
von Diag ε (s, e ) genau einen Repräsentanten enthält. Analog: Diag ε (s ) und Diag ε .
53
3.5.3 Dynamische Berechnung in der zweiten Phase
Nach einer pragmatischen Beschränkung der maximalen Länge von Diagnosen auf max Diag läßt
sich der Algorithmus für die zweite Phase der Fehlerdiagnose somit wie folgt angeben. Dabei wird
die Speicherung von permutierten oder nicht zyklenfreien Diagnosen vermieden.
Methode Diagnose Diag ε (w) :
1:
Span0ε ( w) = {w}
2:
∀0 ≤ i ≤ max Diag
3:
∀u ∈ Span( w)εi :
Diagiε (u, w) = { ((r , r1 ,…, ri −1 ), ( x, w0 ,…, wi − 2 , w))
(r , x ) ∈ Followε (u ) ∧ x ∈ Spaniε−1 ( w)
4:
∧ ((r1 ,…, ri −1 ), (w0 ,…, wi − 2 , w)) ∈ Diagiε−1 ( x, w)
∧ x ≠ w ∧ ∀0 ≤ j ≤ i − 2 : x ≠ w j }
5:
Beschränke Diag iε (u, w) auf Diag iε (u, w) .
{
Spaniε ( w) = u u ∈Previous ε (v) ∧ v ∈ Spaniε−1 ( w) ∧ tiefe ε (u ) + i ≤ max Diag
6:
}
− ∪ Span εj ( w)
j <i
Algorithmus 8: Dynamischer Algorithmus für die zweiten Phase
In einer praktischen Realisierung lassen sich die Zeilen 4 und 5 zusammenfassen, so daß nicht unnötig Diagnosen erzeugt werden.
54
3.6 Kontextkondition
Die Beschränkung des Suchraums der ersten Phase der Fehlerdiagnose ist trotz des leistungsfähigen
dynamischen Algorithmus einer der wichtigsten Ansatzpunkte für eine effiziente Suche. Anwendungskonditionen und Prioritätsfunktionen stellen hier bereits zwei wichtige Mechanismen dar. Mit
der Kontextkondition soll in diesem Abschnitt ein weiterer Ansatz zur Beschränkung des Suchraums eingeführt werden. Für das folgende einführende Beispiel sei noch einmal auf das im Abschnitt 2.2.4 vorgestellte Diagnosesystem zurückgegriffen. Die beiden folgenden möglichen Schülerrechnung sind durch das Diagnosesystem darstellbar.
4
4:4
1
1
→ kok
→ dnok
→ dnok
8
8: 4
8:4
2
1 1
1 ⋅ 4 1 ⋅1
4 1
4:4 1
1 1
+ → abhok
+
→ mnok … → mnok + → kok
+ → dnok … → dnok +
2 8
8
8
8 8
8: 4 8
2 8
Während im ersten Fall das Kürzen von
Kürzen von
4
8
4
8
eine wahrscheinliche Schülerrechnung darstellt, ist das
im zweiten Fall jedoch als sehr unwahrscheinlich anzunehmen. Ein Schüler der bei
einer Additionsaufgabe zuerst einen gemeinsamen Hauptnenner bildet, zerstört ihn i.d.R. nicht anschließend durch Kürzen. Wünschenswert wäre also, die Anwendbarkeit einer Diagnoseregel an
den bisherigen diagnostizierten Rechenweg koppeln zu können. Bei dem vorgestellten dynamischen
Algorithmus mit indirekter Darstellung der Diagnosen durch die Nachfolgermengen ist dies jedoch
nur mit sehr hohem Aufwand möglich. Vergleichsweise einfach läßt sich die Anwendbarkeit einer
Diagnoseregel jedoch an den Kontext koppeln, in dem sie angewendet werden soll. So könnte man
z.B. die Diagnoseregeln im Kontext
erlauben und im Kontext + 81 verbieten. Allgemein wäre es
erforderlich, Kontexte der Form + nz zu verbieten.
Definition 26 (Kontextkondition)
Sei D = (Σ, X , R, p) ein Diagnosesystem und r : u → v Ac eine Diagnoseregel aus R . Eine
Funktion Ccr , die eine Einsetzung σ auf eine Teilmenge von C abbildet, d.h. Ccr : Ξ → {C},
heißt Kontextkondition der Diagnoseregel r , wenn außer
Cc r (σ ) die Form f (t1 , …, t i −1 , , t i +1 ,…, t m ) haben.
55
∈ Cc r (σ )
alle Elemente von
Die angesprochene Beschränkung des Suchraums läßt sich mit Hilfe der Kontextkondition erreichen, indem die Berechnung der Nachfolgermengen der Argument verändert wird. Hier verwendet
man statt FollowArg i folgende Berechnung:
FollowArg i′ ( f (t1 , …, t m )) = {(r : u → v Ac, f (t1 ,… , t i −1 , t i′, t i +1 ,…, t m )) ∈ R × TΣ ( X )
(r : u → v
Ac, t i′ ) ∈ Follow(t i )
∧ ∃σ ∈ Ξ : t i = σ (u ) ⇒ r t i′ ∧ f (t1 ,…, t i −1 , , t i +1 , …, t m ) ∈ Cc r (σ )}
Bemerkung: In Satz 1 (S. 42) gilt bei Berücksichtigung der Kontextkondition i.A. nicht mehr die
Gleichheit.
Die in Abschnitt 2.2.4 vorgestellte Diagnoseregel zum mathematisch korrekten Kürzen eines Bruches kok:
a
div(a, k )
→
b
div(b, k )
∀k ∈ gt (a, b) könnte entsprechend um folgende Kontextkondition
erweitert werden:
⎛⎧
⎫
⎛ z⎞
Cckok = C − ⎜⎜ ⎨add ⎜ , ⎟ b = n ⎬
⎝ n⎠
⎭
⎝⎩
⎧
⎫⎞
⎛z ⎞
∪ ⎨add ⎜ , ⎟ b = n⎬ ⎟⎟
⎝n ⎠
⎩
⎭⎠
56
3.7 Pläne
Der vorgestellte Algorithmus 5 (S. 43) zur dynamischen Berechnung des NachfolgermengenGraphen arbeitet nach dem Prinzip der Bestensuche. Die in Abschnitt 3.1.1 (S. 35) vorgeschlagenen
Bewertungsfunktionen für Regeln, Diagnosen bzw. Terme stellen leider nur einfache Heuristiken
dar. Für einige Problemstellungen kann es daher sinnvoll sein, beschränkte Teilgraphen gezielt vorab, d.h. vor der umfangreicheren Bestensuche, zu durchsuchen. Mit dem in diesem Abschnitt vorgestellten Konzept der Pläne kann eine derart beschränkte Suche nach dem Prinzip der Breitensuche realisiert werden. Der Ansatz ist dabei mit den bereit in Salomaa (1970) vorgeschlagenen „zeitvariierten“ Grammatiken durchaus vergleichbar (vgl. auch Salomaa, 1973/78).
3.7.1 Einsatzbereiche
Ein wichtiges Einsatzgebiet einer derartigen Vorabsuche kann die Bestimmung des durch mathematisch korrekte Rechenstrategien aufgespannten Teilgraphen sein. Dies ist insbesondere dann nötig,
wenn man mit Hilfe des Diagnosesystems auch Aussagen über die Korrektheit einer Schülerlösung
treffen möchte. Durch die Beschränkung auf korrekte Rechenstrategien kann viel schneller eine hohe Suchtiefe aufgebaut werden, als dies bei der umfangreichen Bestensuche mit allen Rechenstrategien möglich wäre.
Eine andere Motivation kann der Ausgleich von bekannten Fehlern in den Bewertungsfunktionen
sein, die z.B. durch fehlerhafte Unabhängigkeitsannahmen bei der Bewertungsfunktion für Diagnosen entstehen. Soll z.B. ein Schüler die Aufgabe
te Rechenstrategie
5
3
+ 109 ⇒ abk1
5:5
3
+ 109:5 ⇒ dnok
5
3
1
3
+ 109 berechnen, dann ist eine mögliche fehlerhaf-
+ 109:5 ⇒ dnok
1
3
+ 92 (Kürzen über „Kreuz“). Diese
Fehlerstrategie ist vergleichsweise selten (vgl. Padberg, 1995), d.h. die Bewertungsfunktion a R liefert für die Diagnoseregel abk1 einen sehr kleinen Wert. Wenn ein Schüler diese Fehlerstrategie
verwendet, so tut er dies jedoch häufig konsequent, d.h. die weiteren Rechenschritte könnten z.B.
1
3
+ 92 ⇒ abk1
1
3:3
+ 92:3 ⇒ dnok 11 + 92:3 ⇒ dnok 11 + 32 sein. Beispiele für diese Konsequenz finden sich ins-
besondere in der 7-Klassen-Studie (siehe Kapitel 5 und Anhang C). Da die Wahrscheinlichkeit der
Anwendung der Fehlerstrategie abk1 somit abhängig von der bisherigen Rechnung des Schülers ist,
ist die Unabhängigkeitsannahme hier nicht berechtigt. Die tatsächliche Wahrscheinlichkeit ist höher
als durch die Bewertungsheuristik berechnet. Bei entsprechend beschränkter Zeit unterbleibt somit
im Extremfall die Berechnung der Nachfolgermengen in der ersten Phase.
3.7.2 Beschreibung
Für die Beschreibung des zu durchsuchenden Teilgraphen können viele verschiedene Konzepte
zum Einsatz kommen. In dem hier vorgestellten Konzept wird in Abhängigkeit von der Suchtiefe
57
das Diagnosesystem auf wenige Diagnoseregeln beschränkt. Die Diagnoseregeln einer Stufe können
dabei als verpflichtend oder als optional eingestuft werden. Sind die Diagnoseregeln verpflichtend,
so wird die Breitensuche ausschließlich mit den Nachfolgermengen fortgesetzt. Die Breitensuche
stoppt entsprechend, wenn nicht mindestens eine Diagnoseregel angewendet werden konnte. Dies
ist bei optionalen Diagnoseregeln nicht der Fall. Abbildung 21 zeigt eine graphische Darstellung
eines Plans zur Addition von Brüchen. Die Bezeichnungen der Diagnoseregeln beziehen sich dabei
auf Anhang A.
z1 z 2
⋅
n1 n2
mb2
mnok
mbok
m
ok
mn
mnok
mn
ok
k
no
Suchtiefe
Diagnoseregeln
Status
0
mbok, mb2
1
mnok
2
mnok
3
mnok
optional
4
mnok
optional
5
kok
6
dnok
7
dnok
ok
mn
kok
Bemerkung: Jeder Kantenzug zwischen
Start- und Zielknoten entspricht einer
dnok
möglichen Diagnose, die durch den
dnok
Plan beschrieben ist.
Abbildung 21: Beispiel einer graphischen Darstellung eines Plans
In den nächsten Definitionen sollen derartige Pläne formal gefaßt werden. Die Grundlage hierfür ist
die Beschränkung der Menge der Diagnoseregeln mit einer „Sicht“ auf das Diagnosesystem:
Definition 27 (Sicht)
Sei D = (Σ, X , R, p) ein Diagnosesystem. Eine Teilmenge V der Menge der Diagnoseregeln R
heißt Sicht auf R . Das Diagnosesystem (Σ, X , V , p) wird auf die Sicht V reduziertes Diagnosesystem bezeichnet.
58
Mit einem reduzierten Diagnosesystem kann durch Bestensuche ein beschränkter Teilgraph berechnet werden. Entsprechend des oben skizzierten Konzeptes ist die dauerhafte Beschränkung des Diagnosesystems auf eine feste Teilmenge von Diagnoseregeln nicht ausreichend. Die Beschränkung
des Diagnosesystems soll vielmehr abhängig von der Suchtiefe erfolgen.
Definition 28 (Plan)
Sei D = (Σ, X , R, p) ein Diagnosesystem und V = {V1 ,…,Vn } eine endliche Menge von Sichten auf R . Ein Plan ist ein Tupel P = (initial ,V , optional ) . Dabei ist initial ein Term über
Σ( X ) und optional : {1,…, n} → {true, false}. Eine endliche Menge von Plänen heißt Plansystem.
Bemerkung: Der Term initial soll die Ausführbarkeit eines Plans einschränken. So kann ein Plansystem Pläne für verschiedene Aufgabentypen (z.B. Addition oder Subtraktion) enthalten.
3.7.3 Planbasierte Breitensuche
Aufbauend auf obigen Definitionen läßt sich nun eine Methode zur Breitensuche, wie in
Algorithmus 9 gezeigt, implementieren. Die Menge leveli speichert dabei alle Terme im Iterationsschritt i .
Methode Pläne w
1:
2:
Für alle Pläne (initial ,{V1 ,…,Vn }, optional ) des Plansystems
Falls w Instanz von initial
3:
level0 = {w}
4:
Für 0 < i ≤ n
5:
Beschränke D auf (Σ, X , Vi , p)
6:
Für alle w j ∈ leveli −1
7:
8:
Expandiere w j , true (Algorithmus 5, S. 43)
Falls optional (i ) dann leveli := leveli −1 ∪
∪ {v (r , v) ∈ Follow(w )}
j
w j ∈leveli −1
9:
sonst leveli :=
∪ {v (r , v) ∈ Follow(w )}
j
w j ∈leveli −1
Algorithmus 9: Breitensuche nach Plänen
59
Die Berechnung von leveli in den Zeilen 8 bzw. 9 läßt sich in praktischen Implementierungen
leicht in die Berechnung der Nachfolgermengen (Zeile 7) integrieren.
Der Plan aus Abbildung 21 (S. 58) soll nun noch einmal aufgegriffen werden und am Beispiel der
Aufgabe
1
2
⋅ 34 die Breitensuche demonstriert werden. Da
Plan angewendet werden. Die Menge level0 wird mit
1
2
⋅ 34 eine Instanz von
z1
n1
⋅ nz22 ist, kann der
{12 ⋅ 34 } initialisiert. Zur Berechnung der ersten
Suchebene wird das Diagnosesystem auf die Sicht V1 = {mbok , mb2} reduziert. Es ist dann
⎛ 1 3 ⎞ ⎧ 1 ⋅ 3 (1 ⋅ 4) ⋅ (3 ⋅ 2) ⎫
,
level1 = Follow⎜ ⋅ ⎟ = ⎨
⎬
8⋅8
⎝ 2 4 ⎠ ⎩2 ⋅ 4
⎭
Für die nächsten beiden Suchebenen wird das Diagnosesystem auf die Sicht V2 = V3 = {mnok} reduziert. Es errechnen sich dann
⎛ 1⋅ 3 ⎞
⎛ (1 ⋅ 4) ⋅ (3 ⋅ 2) ⎞
level2 = Follow⎜
⎟
⎟ ∪ Follow⎜
8⋅8
⎝ 2⋅4⎠
⎝
⎠
⎧ 3 1 ⋅ 3 ⎫ ⎧ 4 ⋅ (3 ⋅ 2) (1 ⋅ 4) ⋅ 6 (1 ⋅ 4) ⋅ (3 ⋅ 2) ⎫
=⎨
,
,
,
⎬∪⎨
⎬
8⋅8
64
⎩2 ⋅ 4 8 ⎭ ⎩ 8⋅8
⎭
und
⎛ 3 ⎞
⎛ 1⋅ 3 ⎞
level3 = Follow⎜
⎟ ∪ Follow⎜
⎟
⎝ 2⋅4⎠
⎝ 8 ⎠
⎛ (1 ⋅ 4) ⋅ (3 ⋅ 2) ⎞
⎛ (1 ⋅ 4) ⋅ 6 ⎞
⎛ 4 ⋅ (3 ⋅ 2) ⎞
∪ Follow⎜
⎟
⎟ ∪ Follow⎜
⎟ ∪ Follow⎜
64
⎠
⎝
⎝ 8⋅8 ⎠
⎝ 8⋅8 ⎠
⎧ 3 ⎫ ⎧ 3 ⎫ ⎧ 4 ⋅ 6 4 ⋅ (3 ⋅ 2) ⎫ ⎧ 4 ⋅ 6 (1 ⋅ 4) ⋅ 6 ⎫ ⎧ 4 ⋅ (3 ⋅ 2) (1 ⋅ 4) ⋅ 6 ⎫
,
,
.
= ⎨ ⎬∪⎨ ⎬∪⎨
⎬
⎬∪⎨
⎬∪⎨
64 ⎭
64 ⎭ ⎩ 64
64 ⎭ ⎩ 8 ⋅ 8
⎩8 ⎭ ⎩8 ⎭ ⎩ 8 ⋅ 8
⎧ 3 4 ⋅ 6 4 ⋅ (3 ⋅ 2) (1 ⋅ 4) ⋅ 6 ⎫
,
,
=⎨ ,
⎬
64 ⎭
64
⎩8 8 ⋅ 8
60
Für die nächsten beiden Suchebenen bleibt das Diagnosesystem auf die Sicht V4 = V5 = {mnok}
reduziert. Wegen optional (4) = optional (5) = true wird jedoch die jeweils vorige Suchebene beibehalten:
⎛ 3⎞
⎛ 4⋅6⎞
⎛ 4 ⋅ (3 ⋅ 2) ⎞
⎛ (1 ⋅ 4) ⋅ 6 ⎞
level4 = level3 ∪ Follow⎜ ⎟ ∪ Follow⎜
⎟ ∪ Follow⎜
⎟ ∪ Follow⎜
⎟
⎝8⎠
⎝ 8⋅8 ⎠
⎝ 64 ⎠
⎝ 64 ⎠
⎧ 24 4 ⋅ 6 ⎫ ⎧ 4 ⋅ 6 ⎫ ⎧ 4 ⋅ 6 ⎫
= level3 ∪ ∅ ∪ ⎨
,
⎬∪⎨
⎬∪⎨
⎬
⎩ 8 ⋅ 8 64 ⎭ ⎩ 64 ⎭ ⎩ 64 ⎭
⎧ 3 4 ⋅ 6 4 ⋅ (3 ⋅ 2) (1 ⋅ 4) ⋅ 6 24 4 ⋅ 6 ⎫
,
,
,
,
=⎨ ,
⎬
64
64
8 ⋅ 8 64 ⎭
⎩8 8 ⋅ 8
und
⎛ 24 ⎞
⎛ 4⋅6⎞
level5 = level4 ∪ … ∪ Follow⎜
⎟ ∪ Follow⎜
⎟
⎝ 8⋅8 ⎠
⎝ 64 ⎠
⎧ 24 ⎫ ⎧ 24 ⎫
= level4 ∪ … ∪ ⎨ ⎬ ∪ ⎨ ⎬
⎩ 64 ⎭ ⎩ 64 ⎭
⎧ 3 4 ⋅ 6 4 ⋅ (3 ⋅ 2) (1 ⋅ 4) ⋅ 6 24 4 ⋅ 6 24 ⎫
,
,
,
,
, ⎬
=⎨ ,
64
64
8 ⋅ 8 64 64 ⎭
⎩8 8 ⋅ 8
Für die restlichen drei Suchebenen wird das Diagnosesystem auf die Sicht V6 = {kok} bzw. auf die
Sichten V7 = V8 = {dnok} reduziert. Es ergeben sich
⎛ 3⎞
⎛ 24 ⎞
level6 = Follow⎜ ⎟ ∪ … ∪ Follow⎜ ⎟
⎝ 64 ⎠
⎝8⎠
⎧ 24 : 2 24 : 4 24 : 8 ⎫ ⎧ 24 : 2 24 : 4 24 : 8 ⎫
,
,
,
,
= ∅ ∪… ∪ ∅ ∪ ⎨
⎬=⎨
⎬
⎩ 64 : 2 64 : 4 64 : 8 ⎭ ⎩ 64 : 2 64 : 4 64 : 8 ⎭
⎛ 24 : 2 ⎞
⎛ 24 : 4 ⎞
⎛ 24 : 8 ⎞
level7 = Follow⎜
⎟ ∪ Follow⎜
⎟ ∪ Follow⎜
⎟
⎝ 64 : 2 ⎠
⎝ 64 : 4 ⎠
⎝ 64 : 8 ⎠
⎧ 12 24 : 2 ⎫ ⎧ 6 24 : 4 ⎫ ⎧ 3 24 : 8 ⎫
,
,
,
=⎨
⎬∪⎨
⎬∪⎨
⎬
⎩ 64 : 2 32 ⎭ ⎩ 64 : 4 16 ⎭ ⎩ 64 : 8 8 ⎭
⎧ 12 24 : 2 6 24 : 4 3 24 : 8 ⎫
,
,
,
,
,
=⎨
⎬
⎩ 64 : 2 32 64 : 4 16 64 : 8 8 ⎭
und
⎛ 12 ⎞
⎛ 24 : 8 ⎞
level8 = Follow⎜
⎟ ∪ … ∪ Follow⎜
⎟
⎝ 64 : 2 ⎠
⎝ 8 ⎠
⎧3⎫
=⎨ ⎬
⎩8 ⎭
61
4 BugFix
In den folgenden Kapiteln wird mit dem Diagnoseprogramm BugFix eine mögliche Implementierung einer computergestützten Fehlerdiagnose auf der Basis der eingeführten Konzepte vorgestellt.
BugFix ist weitestgehend unabhängig von der Domäne des mathematischen Lernsystems. Hierzu
wird eine dem Bereich entsprechende Spezifikation des Diagnosesystems von BugFix gelesen und
in eine interne, für die Fehlerdiagnose geeignete, Darstellung umgesetzt. Die offene Spezifikation
des Diagnosesystems ist wartungsfreundlich und ermöglicht im Ausnahmefall sogar eine Anpassung
durch einen menschlichen Lehrer am Einsatzort.
Die Entwicklung eines Diagnosesystems ist ein vergleichsweise aufwendiger Vorgang bei der Entwicklung eines intelligenten Lernsystems. Für einige Anwendungsbereiche kann hierbei jedoch
glücklicherweise auf Publikationen aus der Fachdidaktik, der Kognitionswissenschaft oder der Psychologie zurückgegriffen werden, die als Grundlage der Arbeiten dienen können. Im Rahmen der
Integration von BugFix in verschiedene Projekte zur Bruchrechnung wurde ein Diagnosesystem für
die Bruchrechnung auf diese Weise entwickelt. Die zugehörige Dokumentation befindet sich im
Anhang A.
4.1 Spezifikation des Diagnosesystems (BFS)
Die Spezifikation von Diagnosesystemen für BugFix erfolgt in einer eigenen Spezifikationssprache:
BugFix Spezifikation, kurz BFS. Das wichtigste Sprachkonstrukt von BFS ist der Term (vgl.
Abbildung 22). Alle Sprachkonstrukte von BFS werden durch Terme in Präfix-Notation beschrieben. Das Syntaxdiagramm für BFS ist Abbildung 23 zu entnehmen. Die Erklärung der einzelnen
Rechtecke wird in den nächsten Abschnitten erläutert. Kommentare werden grundsätzlich mit „//“
eingeleitet und erstrecken sich bis zum Ende einer Zeile.
Term
Bezeichner
Konstante
Bezeichner
(
Term
,
Abbildung 22: Syntaxdiagramm Term
62
)
Spezifikation
Sortendeklaration
Aritätsdeklaration
Regel
KontextDeklaration
Kontext
Gruppe
PlanDeklaration
Plan
InAktiv
PlanAktiv
Kommentar
Abbildung 23: Syntaxdiagramm Spezifikation
Kommentar
//
CR
Alle Zeichen außer CR
Abbildung 24: Syntaxdiagramm Kommentar
4.1.1 Grundlegende Syntaxdiagramme
Die grundlegenden Syntaxdiagramme für Buchstaben, Zahlen, der verschiedene Konstantentypen
und Bezeichnern sind in Abbildung 25 bis Abbildung 34 enthalten:
Buchstabe
a
...
z
A
... Z
Abbildung 25: Syntaxdiagramm Buchstabe
Ziffer
0
1
...
9
Abbildung 26: Syntaxdiagramm Ziffer
+
Vorzeichen
-
Abbildung 27: Syntaxdiagramm Vorzeichen
63
Ziffernfolge
Ziffer
Abbildung 28: Syntaxdiagramm Ziffernfolge
IntKonstante
Ziffernfolge
Vorzeichen
Abbildung 29: Syntaxdiagramm IntKonstante
Beispiel:
15 und -3
Skalierung
Ziffernfolge
E
Vorzeichen
e
Abbildung 30: Syntaxdiagramm Skalierung
FloatKonstante
Ziffernfolge
.
Ziffernfolge
Vorzeichen
Skalierung
Abbildung 31: Syntaxdiagramm FloatKonstante
Beispiel:
1.23 und 4E-15
StrKonstante
"
"
Alle Zeichen außer " und CR
Abbildung 32: Syntaxdiagramm StrKonstante
Konstante
IntKonstante
FloatKonstante
StrKonstante
Abbildung 33: Syntaxdiagramm Konstante
Bezeichner
Buchstabe
Buchstabe
Ziffer
Abbildung 34: Syntaxdiagramm Bezeichner
Beispiel:
b1 und add
64
4.1.2 Signatur
Der erste Schritt zur Spezifikation eines Diagnosesystems mit BFS ist die Angabe der Signatur gemäß Definition 1 (S. 19). BugFix deklariert die grundlegenden Sorten „int“ für Ganzzahlen,
„float“ für Fließkommazahlen und „str“ für Zeichenketten bereits selbständig. Konstanten
dieser im folgenden als „atomar“ bezeichneten Sorten werden automatisch deklariert. Weitere Sorten können in BFS deklariert werden (vgl. Abbildung 35). Der Operator „sorte“ erhält als einziges Argument den gewünschten Bezeichner der neuen Sorte.
Sortendeklaration
sorte(
Bezeichner
);
Abbildung 35: Syntaxdiagramm Sortendeklaration
Beispiel:
sorte(bruch);
sorte(gem);
Die Angaben der Operatoren und Konstanten einer Signatur erfolgt in Form der Aritätenmengen
(vgl. Definition 2, S. 20). Aritätenmengen können in BFS gemäß Abbildung 36 bis Abbildung 38
spezifiziert werden. Dem Operator „arität“ folgt dabei als erstes Argument die Menge der beteiligten Sorten und als weitere Argumente die Operatoren bzw. Konstanten dieser Arität. Operatoren
werden dabei durch nachgestelltes „(_)“ kenntlich gemacht.
AritätKonstante
arität(sorte(
Bezeichner
)
,
Bezeichner
);
Bezeichner
(_)
Abbildung 36: Syntaxdiagramm AritätKonstante
AritätOperator
arität(sorte(
Bezeichner
)
,
,
Abbildung 37: Syntaxdiagramm AritätOperator
AritätKonstante
Aritätsdeklaration
AritätOperator
Abbildung 38: Syntaxdiagramm Aritätsdeklaration
Beispiel:
sorte(int);
arität(sorte(int),a,b,c);
arität(sorte(int,int,int),add(_),sub(_));
65
);
Insbesondere lassen sich durch die Deklaration neuer Sorten und Aritätenmengen auch neue, zusammengesetzte Datentypen erzeugen. Das nächste Beispiel deklariert so die Sorten „bruch“ und
„gem“ für Brüche bzw. gemischte Zahlen. Dabei ist der Bezeichner der Sorte vom Bezeichner des
jeweiligen Operatoren zu unterscheiden.
Beispiel:
sorte(bruch);
sorte(gem);
arität(sorte(int,int,bruch),bruch(_));
arität(sorte(int,bruch,gem),gem(_));
4.1.3 Diagnoseregeln
Diagnoseregeln stellen den wohl wichtigsten Bestandteil eines Diagnosesystems dar. In BFS erfolgt
die Spezifikation einer Diagnoseregel entsprechend Abbildung 39. Dem Operator „regel“ folgen
insgesamt acht Argumente: der Regelname, die Priorität der Regel entsprechend der Prioritätsfunktion, eine Angabe, ob die Diagnose eine mathematisch korrekte Umformung darstellt, einen Wert
für die Bewertungsfunktion von Regeln (Definition 16, S. 35), die linke und rechte Seite der Diagnoseregel, die Anwendungskondition und eine Beschreibung der Rechenstrategie in Textform (vgl.
auch Tabelle 3, S. 67).
Regel
regel(
StrKonstante
IntKonstante
,
Regelname
,
Priorität
wahr
schlecht
,
Korrektheitsgrad
falsch
FloatKonstante
,
Term
,
Term
,
StrKonstante
Term
,
Regelseiten
Anwendungskondition
);
Abbildung 39: Syntaxdiagramm Regel
66
Bewertung
Beschreibung
Tabelle 3: Argumente der Regelspezifikation
Nr. Bedeutung
Erklärung
1
Regelname
Der Regelname gibt der Diagnoseregel einen kurzen Namen mit
dem die Regel identifiziert werden kann. Die Angabe erfolgt als
Zeichenkette. Der Regelbezeichner muß eindeutig sein.
2
Priorität
Die Priorität gibt an, welchen Wert die Prioritätsfunktion (vgl.
Definition 10 und Definition 11, S. 25) für diese Regel liefert. Es
handelt sich bei der Priorität um eine positive ganze Zahl.
3
Korrektheitsgrad
Der Korrektheitsgrad gibt an, ob die Diagnoseregel eine mathematisch korrekte Rechenstrategie beschreibt (wahr), eine zwar korrekte, aber ungünstige Rechenstrategie (schlecht) oder eine fehlerhafte
Rechenstrategie (falsch) beschreibt.
4
Bewertung
Gibt einen Vorgabewert für die Bewertungsfunktion für Regeln an.
5
Linke Regelhälfte
Linke Seite der Diagnoseregel. Der Ausdruck darf Variablenbezeichner enthalten.
6
Rechte Regelhälfte
Rechte Seite der Diagnoseregel. Der Ausdruck darf Variablenbezeichner enthalten.
7
Anwendungskondition Anwendungskondition der Diagnoseregel in Term-Notation (siehe
Abschnitt 4.1.4). Der Ausdruck darf Variablenbezeichner enthalten.
Der Ausdruck „wahr“ ermöglicht die Festlegung einer unbedingten Anwendbarkeit einer Regel.
8
Beschreibung
Beispiel:
Eine Beschreibung der Fehlerstrategie in Form einer Zeichenkette.
Der Wert hat auf die Fehlerdiagnose keinen Einfluß, kann jedoch
von Anwendungsprogrammen bei der Auswertung der Fehlerdiagnose benutzt werden.
regel("anok",200,wahr,0.95,add(a,b),c,is(c,add(a,b)),
"Korrekte Addition von natürlichen Zahlen");
regel("abok",100,wahr,0.80,
add(bruch(z1,n),bruch(z2,n)),bruch(add(z1,z2),n),
wahr, "Korrekte Addition von Brüchen");
67
4.1.4 Anwendungskondition
Die Implementierung von BugFix verwendet Terme zur Beschreibung von Anwendungskonditionen (vgl. Definition 8, S. 24)., zu deren Beschreibung Terme verwendet werden. Agiert die Anwendungskondition als Wächter über die Anwendbarkeit einer Diagnoseregel u → v Ac , so wird die
durch einen Term t beschriebene Anwendungskondition mit einer für u gültige Substitution σ
instanziert und nach „wahr“ oder „falsch“ ausgewertet. Im ersten Fall erlaubt der Wächter die
Anwendung der Diagnoseregel ( Ac(σ ) = {σ } ), im zweiten Fall verhindert er sie ( Ac(σ ) = ∅ ).
Alternativ kann die Anwendungskondition als Multiplikator agieren. Dabei beschränkt die Implementierung von BugFix das allgemeinere Konzept der Anwendungskondition auf eine Iterationsvariable, die Werte zwischen einer unteren und einer oberen Schranke annehmen kann. I Ac ist also
Teilmenge der natürlichen Zahlen. Ein weiteres Argument agiert als Wächter. Das Syntaxdiagramm
ist Abbildung 40 zu entnehmen.
bool
Anwendungskondition
for(
Bezeichner
int
,
,
int
,
bool
)
Abbildung 40: Syntaxdiagramm Anwendungskondition
Die durch BugFix auswertbaren Terme genügen dabei den Syntaxdiagrammen in Abbildung 41 bis
Abbildung 44. Die dabei erlaubten Operatoren sind in BugFix vordefiniert und mit einer entsprechenden Semantik hinterlegt (vgl. Tabelle 4 bis Tabelle 6). Die vordefinierten Operatoren sind im
wesentlichen auf die wichtigsten arithmetischen und logischen Operationen beschränkt. Hinzu
kommen einige weitere Operatoren, die für die Realisierung des Diagnosesystems zur Bruchrechnung hilfreich waren, etwa die Berechnung des kleinsten gemeinsamen Vielfachen. Weitere vordefinierte Operatoren für andere Bereiche können bei Bedarf in BugFix integriert werden.
68
Bezeichner
wahr
bool
falsch
,
and(
bool
or(
not(
bool
is(
Bezeichner
t(
int
,
int/float
,
int
)
=(
<>(
>(
int/float
,
int/float
>=(
<(
<=(
Abbildung 41: Syntaxdiagramm bool
Tabelle 4: Bedeutung der Operatoren im Syntaxdiagramm bool
Operator
Bedeutung
Bemerkungen
wahr
Logische Konstante „wahr“
falsch
Logische Konstante „falsch“
and
Logisches Und
or
Logisches Oder
not
Logisches Nicht
is
Wertzuweisung
Erweiterung der Einsetzung gemäß Anwendungskondition. Die Wertzuweisung liefert die logische
Konstante „falsch“, falls die Auswertung des zweiten
Arguments nicht möglich ist, z.B. Division durch 0.
t
ist Teiler von
Liefert „wahr“, wenn das erste Argument echter Teiler des zweiten ist, sonst „falsch“
=
Vergleich auf Gleichheit
<>
Vergleich auf Ungleichheit
>
Vergleich „größer als“
Die Argumente können sowohl ganze Zahlen oder
Fließkommazahlen (auch gemischt) sein. Bei der
Auswertung führt BugFix ggf. eine Typumwandlung
der ganzen Zahl in eine Fließkommazahl durch.
>=
Vergleich „größer oder gleich“
<
Vergleich „kleiner als“
<=
Vergleich „kleiner oder gleich“
Die Auswertung der Argumente stoppt, sobald das
Ergebnis des Terms bestimmt ist.
69
Bezeichner
IntKonstante
int
add(
sub(
mul(
div(
bruch(
int
min(
,
int
max(
mod(
kgv(
)
ggt(
runde(
int/float
ganz(
abs(
int
Abbildung 42: Syntaxdiagramm int
Tabelle 5: Bedeutung der Operatoren im Syntaxdiagramm int
Operator
Bedeutung
Bemerkungen
add
Addition
sub
Subtraktion
mul
Multiplikation
div
Division
bruch
Division (identisch div)
min
Minimum
max
Maximum
mod
Restklassendivision
kgv
kleinstes gemeinsames Vielfaches
ggt
größter gemeinsamer Teiler
runde
Rundung
runde(4.6) = 5
ganz
Ganzzahliger Anteil
runde(4.6) = 4
abs
Absoluter Wert
Division durch 0 führt zu fehlerhafter Auswertung,
Wertzuweisungen mit „is“ liefern entsprechend
die logische Konstante „falsch“. Die Division liefert
ggf. eine Fließkommazahl (vgl. Abbildung 43)
Rest der Division
70
Bezeichner
FloatKonstante
float
gem(
int
,
float
int
,
float
float
,
int
float
,
float
add(
sub(
mul(
div(
bruch(
)
min(
max(
reell(
int/float
abs(
float
Abbildung 43: Syntaxdiagramm float
Tabelle 6: Bedeutung der Operatoren im Syntaxdiagramm float
Operator
Bedeutung
Bemerkungen
add
Addition
sub
Subtraktion
mul
Multiplikation
div
Division
bruch
Division (identisch div)
min
Minimum
max
Maximum
reell
Nachkommaanteil
abs
Absoluter Wert
Division durch 0 führt zu fehlerhafter Auswertung,
Wertzuweisungen mit „is“ liefern entsprechend die
logische Konstante „falsch“.
reell(4.6) = 0.6
int
int/float
float
Abbildung 44: Syntaxdiagramm int/float
71
4.1.5 Kontextkondition
Die Angabe von Kontextkonditionen (vgl. Definition 26, S. 55) für Diagnoseregeln ist in BFS optional. Die Spezifikation einer Kontextkondition besteht aus der Kontextdeklaration und einer Auflistung der Kontexte. Bei der Deklaration folgen auf dem Operator „kontext“ zwei Argumente.
Das erste Argument gibt den Namen der Diagnoseregeln an, für die der Kontext deklariert wird.
Mit dem zweiten Argument wird festgelegt, ob die folgende Auflistung erlaubte Kontexte („wahr“)
oder verbotene Kontexte („falsch“) enthält.
wahr
KontextDeklaration
kontext(
StrKonstante
,
);
falsch
Abbildung 45: Syntaxdiagramm KontextDeklaration
Nach der Deklaration eines Kontextes kann die Auflistung der erlaubten bzw. verbotenen Kontexte
erfolgen. Nach dem Operator „kontext“ wird dazu für jeden zu erlaubenden bzw. zu verbietenden Kontext ein Term bestehend aus dem Namen der Diagnoseregeln und dem Kontext angegeben. Die Platzhaltervariable
wird in BFS durch das Zeichen „@“ ersetzt.. Optional kann als drittes
Argument ein logischer Ausdruck angegeben werden, dessen Semantik analog zur Anwendungskondition ist.
KontextTerm
Bezeichner
Konstante
@
Bezeichner
(
KontextTerm
)
,
Abbildung 46: Syntaxdiagramm KontextTerm
Kontext
kontext(
StrKonstante
,
KontextTerm
);
,
bool
Abbildung 47: Syntaxdiagramm Kontext
Folgendes Beispiel zeigt die Spezifikation einer Diagnoseregel für das Kürzen eines Bruches. Eine
Kontextkondition mit Auflistung verbotener Kontexte verhindert, daß bei der Addition von Brüchen einer der Brüche gekürzt wird, wenn bereits ein gemeinsamer Hauptnenner vorhanden ist.
72
Beispiel:
regel("kok",100,wahr,0.95,
bruch(z1,n1),bruch(div(z1,k),div(n1,k)),
for(k,2,ggt(n1,z1),and(t(k,n1),t(k,z1))),
"Korrektes Kürzen eines Bruchs");
kontext("kok",falsch);
kontext("kok",add(@,bruch(z2,n2)),=(n1,n2));
kontext("kok",add(bruch(z2,n2),@),=(n1,n2));
kontext("kok",add(@,gem(g,bruch(z2,n2))),=(n1,n2));
kontext("kok",add(gem(g,bruch(z2,n2)),@),=(n1,n2));
4.1.6 Gruppen
In BFS können Diagnoseregeln zu einer Gruppe zusammengefaßt werden. Gruppen können z.B.
bei der Spezifikation von Plänen als Sicht (Definition 27, S. 58) verwendet werden. Die Spezifikation einer Gruppe erfolgt durch den Operator „gruppe“. Das erste Argument gibt der Gruppe einen eindeutigen Namen, alle weiteren Argumente bezeichnen entweder die Namen von Diagnoseregeln oder bereits spezifizierten Gruppen, die in die neue Gruppe aufgenommen werden sollen.
Gruppe
gruppe(
StrKonstante
,
StrKonstante
);
GruppenAufruf
Abbildung 48: Syntaxdiagramm Gruppe
GruppenAufruf
gruppe(
StrKonstante
)
Abbildung 49: Syntaxdiagramm GruppenAufruf
Im folgenden Beispiel ist die Spezifikation von Gruppen demonstriert. Die beiden Gruppen
„addbh1“ und „addbh2“, die verschiedene Diagnoseregeln enthalten, werden in einer weiteren
Gruppe zusammengefaßt.
Beispiel:
gruppe("addbh1","abhok/1","abh0","abh7","abh8","abh9");
gruppe("addbh2","abhok/2","abh1","abh2","abh3");
gruppe("addbh1/2",gruppe("addbh1"),gruppe("addbh2"));
73
4.1.7 Pläne
Die Spezifikation von Plänen in BFS orientiert sich an Definition 28 (S. 59). Der erste Schritt zur
Spezifikation eines Plans ist seine Deklaration. Bei der Deklaration erhält der Operator „plan“ als
erstes Argument einen eindeutigen Namen für den Plan. Der zweite Operator ist optional und enthält den Term initial , von dem die Ausführung eines Plans abhängt. Unterbleibt die Angabe, ist
der Plan nie anwendbar und agiert lediglich als Teilplan für andere Pläne.
PlanDeklaration
plan(
StrKonstante
);
,
Term
Abbildung 50: Syntaxdiagramm PlanDeklaration
Bei der eigentlichen Spezifikation eines Planes ist für jede Suchebene ein eigener Term vorzusehen.
Der Operator „plan“ hat dabei zwei oder drei Argumente. Nach der Wiederholung des Namens
des Planes als erstes Argument folgt die Angabe der Sicht in Form einer einzelnen Diagnoseregel
oder einer deklarierten Gruppe. Alternativ kann der zweite Operator auch auf einen Teilplan verweisen. Das optionale dritte Argument gibt an, ob die Anwendung der spezifizieren Regeln bzw.
des Planes optional ist.
Plan
plan(
StrKonstante
,
StrKonstante
GruppenAufruf
);
,
optional
PlanAufruf
Abbildung 51: Syntaxdiagramm Plan
PlanAufruf
plan(
StrKonstante
)
Abbildung 52: Syntaxdiagramm PlanAufruf
Im folgenden Beispiel werden zwei Pläne spezifiziert. Der erste Plan „simp1“ agiert lediglich als
Teilplan, d.h. er wird nie eigenständig ausgeführt. Die Ausführung des zweiten Plans ist möglich,
wenn die Aufgabenstellung eine Instanz von
z1
n1
+ nz22 ist. Zur Erläuterung der Gruppen sei erwähnt,
daß es sich bei diesem Beispiel um einen Auszug aus dem Diagnosesystem zur Bruchrechnung handelt. Dort enthält die Gruppe „k“ korrekte Rechenstrategien zum Kürzen eines Bruchs und die
Gruppe „primitiv“ die Rechenstrategien in den natürlichen Zahlen. Der erste Plan erlaubt also
das Kürzen eines Bruchs. Der zweite Plan beschreibt die Addition von Brüchen (ohne Bildung eines Hauptnenners).
74
Beispiel:
plan("simp1");
plan("simp1",gruppe("k"));
plan("simp1",gruppe("primitiv"));
plan("simp1",gruppe("primitiv"));
plan("addb1",add(bruch(z1,n1),bruch(z2,n2)));
plan("addb1",gruppe("addb"));
plan("addb1",gruppe("primitiv"));
plan("addb1",gruppe("primitiv"));
plan("addb1",gruppe("primitiv"),optional);
plan("addb1",plan("simp1"));
4.1.8 Deaktivierung
Während der Entwicklung eines Diagnosesystems und zur Anpassung des Diagnosesystem an unterschiedlich leistungsfähige Computer ermöglicht BFS die Deaktivierung von einzelnen Diagnoseregeln, Gruppen von Diagnoseregeln oder Plänen, sowie der vollständigen Besten- bzw. Plansuche.
Dem Operator „inaktiv“ wird hierzu als Argument der Regelname, ein Gruppen- oder Planaufruf bzw. die Bezeichner „bestensuche“ bzw. „plansuche“ übergeben.
Inaktiv
inaktiv(
StrKonstante
);
Gruppenaufruf
Planaufruf
bestensuche
plansuche
Abbildung 53: Syntaxdiagramm Inaktiv
Im Unterschied zur Deaktivierung einer Diagnoseregel durch Kommentarmarkierungen „//“ kann
bei der Deaktivierung mit „inaktiv“ die Diagnoseregel auch weiterhin Bestandteil von Gruppen
oder Plänen sein.
Einen Spezialfall bilden Diagnoseregeln, die zwar während der Bestensuche deaktiviert sind, jedoch
durch Pläne aktiviert werden können. BFS sieht hierfür den Operator „planaktiv“ vor. Als Argument folgt der entsprechende Name der Diagnoseregel oder ein Gruppenaufruf.
75
PlanAktiv
planaktiv(
StrKonstante
);
Gruppenaufruf
Abbildung 54: Syntaxdiagramm PlanAktiv
Beispiel:
inaktiv("ab4");
inaktiv(plan("addh4"));
planaktiv(gruppe("addbkreuz"));
4.2 Design und Implementierung
Die Programmiersprache Prolog (siehe z.B. Clocksin, Mellish, 1987 und Sterling, Shapiro, 1988)
unterstützt mit zahlreichen Sprachkonstrukten die Entwicklung von Diagnoseprogrammen. So
diente dann auch ein überwiegend in Prolog entwickeltes Diagnoseprogramm (Hennecke, 1997a,
1997b) als lehrreicher Prototyp für die Entwicklung von BugFix. Leider konnte auf dieser Basis jedoch keine für die dynamische Berechnung der Nachfolgermengen hinreichend effiziente Implementierung gefunden werden, so daß statt dessen eine objektorientierte Erweiterung der Programmiersprache Pascal3 eingesetzt wurde. Auch wenn eine objektorientierte Implementierung zahlreiche Vorteile bietet, wurde BugFix aus Gründen besserer Performanz überwiegend prozedural entwickelt.
In den folgenden Abschnitten wird das Design dennoch objektorientiert dargestellt, da dies eine
besonders übersichtliche Beschreibung von BugFix ermöglicht. Die Darstellung orientiert sich dabei
stark an der von Booch, Rumbaugh und Jacobsen (1999) entwickelten Unified Modeling Language
(UML). Neben der detaillierten Sprachbeschreibung in Rumbaugh, Jacobsen und Booch (1999) sei
hier insbesondere auf die kompakte Darstellung in Oestereich (1998) verwiesen. Für die hier verwendeten Konzepte unterscheidet sich die Notation von UML jedoch nicht wesentlich von der eigentlich veralteten, aber sehr weit verbreiteten Object Modeling Technique (OMT) aus Rumbaugh (1993).
In den folgenden Abschnitten soll das Design und die Implementierung von BugFix kurz vorgestellt werden. Eine detaillierte Beschreibung findet sich in der technischen Dokumentation, die nicht
Bestandteil der vorliegenden Arbeit ist.
4.2.1 Signatur
Für die Verwaltung der Signatur des Diagnosesystems verfügt BugFix über ein Sortenmanagement
(Abbildung 55), eine Operatoren- (Abbildung 56) und eine Variablenverwaltung (Abbildung 57).
3
Verwendet wurde das in der Entwicklungsumgebung Delphi integrierte ObjectPascal der Firma Inprise (früher Borland).
76
Das Sortenmanagement besteht aus der Sortenverwaltung zur Speicherung der vordefinierten und
der deklarierten Sortenbezeichner und der Aritätenverwaltung zur Speicherung von Aritäten. Sorten
und Aritäten werden über entsprechende Indexe identifiziert. Jeder registrierten Arität können Operatoren, Konstanten und Variablen zugeordnet werden.
Die Sortenverwaltung enthält nach Initialisierung
bereits die vordefinierten Sorten Int, Float und Str.
«Dienstprogramm»
Sortenverwaltung
-Index
-SortCount : Integer
+RegisterSort(Ident : TSortIdent) : TSort .
+GetSortCount() : Integer
+FindSort(Ident : TSortIdent) : TSort
+GetSortIdent(Nr : TSort) : TSortIdent
TSort
-Ident : TSortIdent
*
«Dienstprogramm»
Sortenmanagement
1 {geordnet}
Arity
+ResetSortManagement()
TSortIdent
String [20]
Arity.Count > 1
*
-Count : Integer
1
TOperator
*
Arity.Count = 1
1
-Index
TVariable
«Dienstprogramm»
Aritätenverwaltung
-ArtiySetCount : Integer
+RegisterArity(ExpTree : PExpTree) : Boolean .
+GetArityCount() : Integer
+ValidArity(ExpTree : PExpTree) : Boolean
TExpTree
Die Registrierung von Arität erfolgt
über den aus der Bug-Fix-Spezifikation
geparsten Terme
Abbildung 55: Klassendiagramm Sortenmanagement (UML)
Die Operatorenverwaltung dient zur Speicherung der Bezeichner der Operatoren. Die Identifizierung der Operatoren erfolgt über einen Index. Neben den Bezeichnern stellt die Operatorenverwaltung auch Informationen für Eingabekomponenten zur Verfügung (nicht modelliert).
77
In der Variablenverwaltung werden u.a. die Bezeichner von Variablen und Bindungen der Variablen
an Terme verwaltet. In der Variablenverwaltung werden ebenfalls alle deklarierten Konstanten registriert. Atomare Konstanten, wie Ganz- und Fließkommazahlen und Zeichenketten sind nicht
extra registriert.
«Dienstprogramm»
Operatorverwaltung
-Index
ResetOperatoren()
RegisterOperator(S : AnsiString) : TOperator
GetOperatorCount() : Integer
FindOperator(S : AnsiString) : TOperator
GetOperatorIdent(Nr : TOperator) : TOperatorIdent .
TOperator
-Ident : TOperatorIdent
Die Operatorverwaltung enthält nach der Initialisierung
bereits vordefinierte Operatoren (z.B. add, sub, is, max),
die für die Auswertung der Anwendungskonditionen mit
einer Semantik belegt werden
Abbildung 56: Klassendiagramm Operatorverwaltung (UML)
78
TOperatorIdent
String [20]
<<Dienstprogramm>>
Variablenverwaltung
+ResetVariablen()
+GetVariablenCount() : Integer
+LookupVariable(Ident : TVarIdent) : TVariable
+GetVariableIdnet(Nr : TVariable) : TVarIdent
+SetVariableConst(Nr : TVariable)
+SetVariableVar(Nr : TVariable)
+UnBindVariablen()
+UnBindVariable(Nr : TVariable)
+BindVariable(Nr : TVariable, Tree : PExpTree) : Boolean
+GetVariable(Nr : TVariable) : PExpTree
+IsVariableBind(Nr : TVariable) : Boolean
+SaveVariableBinds()
+LoadVariableBinds()
+ResetVariableUsed()
+GetVariableUsed(Nr : TVariable) : Integer
+EnterExecVariable(Nr : TVariable) : Boolean
+LeaveExecVariable(Nr : TVariable)
-Nr
TVariable
-Ident : TVarIdent
-Typ : TVarFieldType
-Used : Integer
-Bind : PExpTree
-BindSaved: PExeTree
-Exec : Boolean
TExpTree
<<Aufzählung>>
TVarFieldType
vt_Variable
vt_Konstante
TVarIdent
String [20]
Die Variablenverwaltung enthält nach der Initialisierung
bereits vordefinierte Konstanten (z.B. wahr, falsch).
Abbildung 57: Klassendiagramm Variablenverwaltung (UML)
4.2.2 Terme
Für die Arbeit eines Diagnoseprogramms stellt der flexible und effiziente Umgang mit Termen eine
der zentralen Aufgaben dar. BugFix stellt Terme als gerichteten Graphen dar. Dessen Knoten entsprechen entweder Operatoren, atomare Werte (ganze Zahlen, Fließkommazahlen und Zeichenketten), Konstanten oder Variablen. Der in Abbildung 57 gezeigten Grundidee einer hierarchischen
Klassenstruktur stehen die schlechten Laufzeiteigenschaften einer objektorientierten Implementierung entgegen. BugFix verwendet daher variante Records. Die Liste der Argumente eines Operators
werden als verkettete Liste der Argumente realisiert, die im folgenden als Kinderliste bezeichnet
wird. Für den Zugriff auf Terme steht entsprechend eine prozedurale Schnittstelle zur Verfügung.
79
Implementierung erfolgt
als varianter Record
<<Aufzählung>>
TNoteTyp
TExpTree
nt_Inner
nt_IntOuter
nt_StrOuter
nt_FloatOuter
nt_Variable
-Assessment : Double
-MinDeep : Integer
NoteTyp
TExpTree (Inner) Operator
TExpTree (Int)
-Value : Integer
TExpTree (Float)
-FloatValue : Double
TExpTree (Str)
TExpTree (Var)
-StrValue : PChar
ChildList
Variable
Tree
TChildList
TVariable
TOperator
Next
Abbildung 58: Klassendiagramm TExpTree (UML)
Zur Verdeutlichung der Implementierung der Kinderliste dient das Zeigerdiagramm in Abbildung
59. Es zeigt die Repräsentierung des Terms
1
2
+ 34 . Dabei stehen Kreise für Operatoren und die
Rechtecke für ihre Kinderlisten.
+
b
b
1
2
3
Abbildung 59: Zeigerstruktur von TExpTree für
4
1
2
+
3
4
Alle von BugFix erzeugten Terme werden in eine Hash-Tabelle (vgl. Knuth, 1973) eingetragen, um
einen bestimmten Term möglichst schnell wiederfinden zu können. Diese Operation ist insbesondere für die dynamische Berechnung der Nachfolgermengen wichtig. Beim Hashing wird mittels
einer einfachen arithmetischen Hash-Funktion ein Schlüssel berechnet, der als Adresse des Terms
80
in der Tabelle dient. BugFix arbeitet dabei nach dem Verfahren des Open-Hashing, d.h. wird mehreren Termen durch die Hash-Funktion ein identischer Schlüssel zugewiesen, werden die Terme in
eine verketteten Liste gespeichert (siehe Abbildung 60).
TRegList
...
5
6
7
8
9
...
Next
Next
Next
Tree
Tree
Tree
...
...
...
Next
Next
Tree
Tree
...
...
TExpTree
HashArray
Abbildung 60: Hash-Tabelle mit verketten Listen für Datensätze des Typs
TExpTrees mit gleichen Hash-Adressen (open-hashing)
Die Speicherung der Terme erfolgt in BugFix nach dem Prinzip der maximalen Strukturteilung
(maximum structure sharing). Anstatt einen mehrfach benötigten (Teil-) Term mehrfach zu erzeugen wird der (Teil-) Term lediglich mehrfach referenziert. Hierfür ist die Bestimmung der Adresse
des (Teil-) Terms im Speicher nötig, die über die Hash-Tabelle erfolgen kann.
In der Termgraphersetzung (siehe Sleep, Plasmeijer, van Eekelen, 1993; Plasmeijer; van Eekelen,
1993; Plump, 1998) werden Terme ebenfalls als Graphen repräsentiert. Hier spricht man in diesem
Zusammenhang von vollständig kollabierten Graphen. Für die Fehlerdiagnose ist es besonders
wichtig, daß nicht nur einzelne Terme in sich vollständig kollabiert sind, sondern alle bekannten
Terme untereinander ebenfalls vollständig kollabiert sind.
Die Speicherung und Kollabierung der Terme werden durch die Schnittstelle in Abbildung 61 vollständig nach außen verborgen. Dies ist möglich, da es bei der Fehlerdiagnose nie nötig ist, identische (Teil-) Terme zu unterscheiden. Die Funktionen zum Erstellen von Termen sind daher so ausgelegt, daß sie vor dem dynamischen Reservieren eines Speicherplatz zuerst in der Tabelle nach den
zu erstellenden Term suchen. Ist der Term bereits in der Hash-Tabelle registriert, wird keine neue
Instanz des gleichen Terms angelegt, sondern ein Zeiger auf den bereits registrierten Datensatz
verwendet. Dieser Mechanismus wird bei mehrstelligen Operatoren auf alle Argumente fortgesetzt,
so daß bereits bei der Erstellung von Termen die maximale Stukturteilung sichergestellt wird. Insbe81
sondere wird die Menge der Terme vollständig kollabiert gespeichert. Um Nebenläufigkeit (z.B.
zwischen Fehlerdiagnose und Eingabekomponente) zu ermöglichen, ist dieser Mechanismus durch
kritische Regionen (Dijkstra, 1968) geschützt.
TExpTree
TChildList
<<Dienstprogramm>>
ExpTreeVerwaltung
-Hash-Tabelle
TNoteTyp
+StrToExpTree(AStr : AnsiString) : PExpTree
+IsOperator(ExpTree : PExpTree) : Boolean
+Operator(ExpTree : PExpTree, AOperator : TOperator) : Boolean
+GetExpTreeNoteTyp(ExpTree : PExpTree) : TNoteTyp
+GetExpTreeInt(ExpTree : PExpTree) : Integer
+GetExpTreeFloat(ExpTree : PExpTree) : Double
+GetExpTreeCStr(ExpTree : PExpTree) : PChar
+GetExpTreeStr(ExpTree : PExpTree) : AnsiString
+GetExpTreeOperator(ExpTree : PExpTree) : TOperator
+GetExpTreeVariable(ExpTree : PExpTree) : TVariable
+GetExpTreeAssessment(ExpTree : PExpTree) : TRuleAssessment
+SetExpTreeAssessment(ExpTree : PExpTree, Assessment : TRuleAssessment)
TOperator
TVariable
TRuleAssessment
Abbildung 61: vereinfachtes
ExpTreeVerwaltung (UML)
Klassendiagramm
Dienstprogramm
4.2.3 Diagnoseregeln
Die Verwaltung der Diagnoseregeln erfolgt über die Regelverwaltung gemäß Abbildung 62. Die
einzelnen Diagnoseregeln werden über einen Index identifiziert und über das Dienstprogramm Regelverwaltung angesprochen. Zu jeder Diagnoseregel gehören neben den spezifizierten Daten eine
Menge von Kontexten.
82
<<Dienstprogramm>>
Regelverwaltung
-Count : Integer
+ResetRuleManagement()
+FinalizationRuleRegistration()
+RegisterRule(AIdent : PChar, APrio : Integer,
ACorrect : TRuleCorrect, ADefAssessment : TRuleAssessment,
ALeftExp, ARightExp, ACondition : PExpTree,
ADescription : PChar) : TRule
+GetRuleCount() : Integer
+GetRuleByIdent(Ident : TRuleIdent) : TRule
+RegisterContext(Ident : PChar, Kontext, Condition: PExpTree) : Boolean
+RegisterContextTyp(Ident : PChar; Typ : PExpTree) : Boolean
+AcceptContext(Rule : TRule, Left : PExpTree) : Boolean
TRuleCorrect
TRuleAssessment
{geordnet}
-Nr
TExpTree
LeftExp
RightExp Condition
TRule
Assessment
DefAssessment
Correct
-Ident : PChar
-Prio : Integer
-Description : PChar
-KontextTyp : Boolean
1
TVariable
*
TKontext
{Eine der vordefinierten Variablen
"wahr", "falsch" oder "schlecht"}
-Tree : PExpTree
-Condition : PExpTree
Abbildung 62: Klassendiagramm Regelverwaltung (UML)
Um das Laufzeitverhalten bei der Anwendung der Diagnoseregeln zu verbessern, sind die Diagnoseregeln entsprechend der Regelordnung (Definition 29) sortiert. Die Anwendung der Diagnoseregeln erfolgt entsprechend der absteigenden Sortierung. Das heißt, die Anwendbarkeit von Diagnoseregeln mit hoher Priorität wird zuerst getestet. Konnte eine Diagnoseregel hoher Priorität angewendet werden, brauchen Regeln niedriger Priorität nicht auf Anwendbarkeit untersucht werden.
Diagnoseregeln gleicher Priorität sind so sortiert, daß gleiche linke Regelseiten aufeinander folgen.
Eine einmal berechnete Einsetzung kann daher für alle Diagnoseregeln mit der gleichen linken Regelseite verwendet werden.
83
Definition 29 (Regelordnung)
Sei R die Menge der Diagnoseregeln und p : R → IN die Prioritätsfunktion eines Diagnosesystems. Sei mit adr : TΣ ( X ) → IN eine injektive Funktion gegeben. Die partielle Ordnung
auf
R heißt Regelordnung, falls für alle Regeln (r1 : u1 → v1 ), (r2 : u 2 → v 2 ), (r3 : u 3 → v3 ) ∈ R
setzt gilt:
i)
p (r1 ) > p (r2 ) ⇒ r1
ii)
p (r1 ) = p (r2 ) ∧ adr (u1 ) > adr (u 2 ) ⇒ r1
iii)
p(r1 ) = p(r2 ) = p(r3 ) ∧ adr (u1 ) = adr (u 2 ) > adr (u 3 ) ⇒ r1
r2
r2
r3 ∧ r2
r3
Bemerkung: Die Funktion adr ist durch die Speicheradresse des Terms gegeben.
4.2.4 Gruppen
Für die Verwaltung von Gruppen von Diagnoseregeln, wie sie z.B. für die Spezifikation von Sichten
verwendet werden, stellt BugFix das Dienstprogramm Regelgruppen zur Verfügung. Die Identifizierung der Regelgruppen erfolgt dabei über einen Index.
«Dienstprogramm»
Regelgruppen
-Index
-RuleGroups : TList
+RegisterRuleGroup(Ident : PChar) : TRuleGroup
+GetRuleGroupCount() : Integer
+GetRuleGroup(Index : Integer) : TRuleGroup
+GetRuleGroupByIdent(Ident : PChar) : TRuleGroup
+RegisterRuleGroupMember(RuleGroup : TRuleGroup, Rule : TRule) : Boolean .
+IsRuleGroupMember(RuleGroup : TRuleGroup, Rule : TRule) : Boolean
+GetRuleGroupMemberCount(RuleGroup : TRuleGroup) : Integer
+GetRuleGroupMember(RuleGroup : TRuleGroup, Index : Integer) : TRule
TRuleGroup
TRuleGroupMember
-Index
Rule
TRule
-Ident : PChar
Abbildung 63: Klassendiagramm Regelgruppen (UML)
4.2.5 Pläne
Die Verwaltung von Plänen organisiert BugFix entsprechend Abbildung 64. Das Dienstprogramm
Planverwaltung stellt eine Schnittstelle zur Verfügung, mit der über einen Index auf die jeweiligen
Pläne zugriffen werden kann. Jeder Plan besteht dabei aus einer indizierten Menge von Suchebenen.
84
Jede Suchebene enthält eine Sicht und ein Attribut, das angibt, ob die Suchebene optional ist oder
nicht.
<<Dienstprogramm>>
Planverwaltung
-Plans:TList
+RegisterPlan(Ident : PChar, Initial : PExpTree) : TPlan
+GetPlanCount() : Integer
+GetPlanByIdent(Ident : PChar) : TPlan
+GetPlanIdent(Plan : TPlan) : String
+GetPlan(Index : Integer) : TPlan
+RegisterPlanStep(Plan : TPlan; Param1, Param2 : PExpTree) : Boolean
+GetPlanStepCount(Plan : TPlan) : Integer;
+ActivatePlan(Plan : TPlan; Step : Integer; View : TRuleViewTyp)
+GetPlanStepTyp(Plan : TPlan; Step : Integer): TPlanStepTyp
TExpTree
-Index
<<Aufzählung>>
TRuleViewTyp
rv_aktiv
rv_planaktiv
rv_expand
rv_reduce
TPlan
TPlanStep
-Step
Rules
TRuleView
-Ident : PChar
-Aktiv : Boolean
1
Typ
<<Aufzählung>>
TPlanStepTyp
ps_standard
ps_optional
Abbildung 64: Klassendiagramm Planverwaltung (UML)
85
*
TRule
4.3 Phase I
Die erste Phase der Fehlerdiagnose beginnt mit der Festlegung der dem Schüler zu stellenden Aufgabe A und endet bei der Eingabe der Schülerlösung w . Abhängig von Aufgabe, Schüler und Gestaltung des Lernsystems steht für die erste Phase relativ viel Zeit – meist zwischen 5 und 10 Sekunden – zur Verfügung. Ohne Kenntnis der Schülerlösung kann diese Zeit genutzt werden um die
Nachfolger- und Vorgängermengen zu berechnen, wie in Kapitel 3 ausgeführt.
4.3.1 Design und Implementierung
Da bei der dynamischen Berechnung der Nachfolgermengen eines Terms f (t1 ,… , t n ) die Nachfolgermengen der Argumente t1 bis t n benötigt werden, muß der Zugriff auf Nachfolgermengen
sehr effizient realisierbar sein. Das in Abbildung 65 gezeigte Design von BugFix trägt dieser Anforderung Rechnung, indem sowohl Nachfolger- als auch Vorgängermengen über gerichtete Assoziationen (Implementierung als Zeiger) von dem jeweiligen Term erreicht werden können.
Für die Unterscheidung, ob eine Nachfolgermenge noch nicht, nur mit einer beschränkten Sicht bei
der Berechnung eines Planes oder vollständig berechnet wurde, verfügt jeder Term zudem über ein
entsprechenden Attribut.
<<Dienstprogramm>>
Nachfolger & Vorgängerverwaltung
+GetFirstFollow(ExpTree : PExpTree,
FollowList : PFollowList) : PExpTree
+GetNextFollow(FollowList : PFollowList) : PExpTree
+GetFollowRule(Follow : PFollowList) : TRule
+GetFollowTree(Follow : PFollowList) : PExpTree
+FreePrevList(List : PPrevList)
Follow
<<Aufzählung>>
TWorkState
ws_Expanded
ws_Plan
ws_None
PrevList
TExpTree
WorkState : TWorkState
Rule
TFollowList
TPrevList
Next
Tree
Tree
TRule
Nachfolgermenge
Follow
Vorgängermenge
Previous
Abbildung 65: Klassendiagramm Nachfolger und Vorgänger (UML)
86
Next
Die einzelne Elemente der Nachfolgermenge werden über eine verkette Liste realisiert, deren Zusammenspiel mit der Vorgängermenge in Abbildung 66 anhand eines Zeigerdiagramms gezeigt
wird.
PrevList
nt_Inner
op_add
ChildList FollowList
...
Tree
abok
Next
ab0
Next
Tree
...
Next
Tree
nt_Inner
op_bruch
PrevList
FollowList
ChildList
...
Abbildung 66: Verkettete Liste für Nachfolger- und Vorgängermengen
4.3.2 Beispiel
In diesem Abschnitt soll an einem Beispiel gezeigt werden, wie sich die bisher formal beschriebene
Berechnung der Nachfolgermengen praktisch darstellt. Als Beispielaufgabe dient auch hier wieder
1
2
+ 34 , die, wie in Abbildung 67 gezeigt, gespeichert wird.
Aufgabenstellung
+
b
b
1
Abbildung 67: Zeigerstruktur für die Beispielaufgabe
2
1
2
+
3
4
3
4
Zur Vereinfachung soll die Menge der Regeln für dieses Beispiel auf die in Tabelle 7 gezeigten Regeln beschränkt werden. Hierbei handelt es sich um eine Auswahl von Regeln zur fehlerhaften Addition von Brüchen sowie um einige Regeln zur korrekten und fehlerhaften Addition bzw. Multiplikation in der Menge der natürlichen Zahlen.
87
Tabelle 7: Auswahl von Regeln zur fehlerhaften Addition von Brüchen
und für die Addition bzw. Multiplikation von natürlichen Zahlen
Nr.
a0
Regel
⎛z z ⎞
add ( z1 , z 2 )
add ⎜⎜ 1 , 2 ⎟⎟ →
add ( n1 , n2 )
⎝ n1 n2 ⎠
Beschreibung
Falsche additive Technik bei der Addition von
Brüchen
a1
⎛z z ⎞
mul ( z1 , z 2 )
add ⎜⎜ 1 , 2 ⎟⎟ →
mul ( n1 , n2 )
⎝ n1 n2 ⎠
Addition ersetzt durch Multiplikation bei der
Addition von Brüchen
a2
⎛z z ⎞
mul ( z1 , z 2 )
add ⎜⎜ 1 , 2 ⎟⎟ →
add ( n1 , n2 )
⎝ n1 n2 ⎠
anok
add (a, b ) → c
is (c, add (a, b)) 4
Falsche additive Technik und Verwechslung
mit Multiplikation bei der Addition von Brüchen
Korrekte Addition in IN
anp
add (a, b ) → c
is (c, add (add (a, b),1)) „Weiterzählen“ bei Addition in IN
anm
add (a, b ) → c
is (c, sub(add (a, b),1)) Addition in IN minus 1
mnok
mul (a, b ) → c
is (c, mul (a, b))
mni1
mul (1, b ) → 1
Korrekte Multiplikation in IN
Fehlerhafte Multiplikation in IN bei neutralem
Element
Beim Start des Algorithmus enthält die Menge der noch zu bearbeitenden Elemente ToDo0 nur
den Startterm add (bruch(1,2), bruch(3,4)) . Bei der Berechnung der Nachfolgermenge kann nicht
auf die bereits berechneten Nachfolgermengen der Parameter bruch(1,2) und bruch(3,4) zurückgegriffen werden, so daß diese zuerst berechnet werden müssen. Gemäß dem Regelsatz aus Tabelle
7 sind beide Nachfolgermengen leer. Die Nachfolgermenge von add (bruch(1,2), bruch(3,4)) errechnet sich daher nur durch Regeln, deren linke Seite direkt mit dem Hauptoperator add anwendbar ist. In diesem Beispiel sind dies die Regeln a0, a1 und a2.
Zur Anwendung der Regel a0 wird zuerst für die Menge der Variablen der Regel eine treffende Einsetzung bestimmt. In diesem Fall σ = {z1 ← 1, n1 ← 2, z 2 ← 3, n2 ← 4} . Der Nachfolgermenge
von add (bruch(1,2), bruch(3,4)) wird dann ein neues Element hinzugefügt (siehe Abbildung 68).
Da die Adressen der Terme zur Speicherung der ganzen Zahlen bereits aus der Substitution bekannt sind, kann ein Nachschlagen in der Hash-Tabelle entfallen.
4
Diese Regeln verfügen über eine Anwendungskondition, die der Variablen c einen Wert zuweisen. Bei add, sub und mul handelt es
sich um vordefinierte Operatoren, die die Parameter addieren, subtrahieren bzw. multiplizieren (vgl. Abschnitt 4.1.4, S. 68).
88
Aufgabenstellung
Follow
+
b
b
1
2
3
4
a0
b
+
+
Abbildung 68: Zeigerstruktur nach Anwendung der Regel a0
Ebenfalls mit der Substitution σ = {z1 ← 1, n1 ← 2, z 2 ← 3, n2 ← 4} sind auch die Regeln a1 und
a2 anwendbar. Dementsprechend wird die Nachfolgermenge von add (bruch(1,2), bruch(3,4))
erweitert (siehe Abbildung 69). Im Unterschied zu den Regelanwendungen a0 und a1 können bei
der Regelanwendung a2 mehr als nur die ganzen Zahlen wieder verwendet werden, da bereits
ExpTrees für mul (1,3) und add (2,4) angelegt sind. Die Adressen dieser Terme sind bei der Erstellung der rechten Regelhälfte jedoch nicht bekannt, so daß die entsprechenden Terme mittels der
Hash-Tabelle bestimmt werden müssen.
89
Aufgabenstellung
+
Follow
b
b
1
a0
2
3
4
a1
b
a2
b
+
b
+
*
*
Abbildung 69: Zeigerstruktur nach Anwendung der Regeln a1 und a2
In diesem Beispiel ist die Nachfolgermenge von add (bruch(1,2), bruch(3,4)) vollständig berechnet. Die Menge der noch zu bearbeitenden Elemente T1 enthält nun die drei Elemente
bruch(add (1,3), add (2,4)) , bruch(mul (1,3), mul (2,4)) und bruch(mul (1,3), add (2,4)) . Für die
Fortsetzung des Beispiels habe die Bewertungsfunktion für Terme für bruch(add (1,3), add (2,4))
die beste Bewertung.
Zur Berechnung der Nachfolgermenge von bruch(add (1,3), add (2,4)) werden zunächst die
Nachfolgermengen für add (1,3) und add (2,4) berechnet. Abbildung 70 zeigt die Zeigerstruktur
nach deren Berechnung. Die Adressen für die Zeiger auf die Datensätze zur Speicherung der ganzen Zahlen werden dabei mit der Hash-Tabelle bestimmt bzw. neu erzeugt. Nachdem die Nachfolgermengen
für
die
Operanden
bekannt
sind,
kann
die
Nachfolgermenge
für
bruch(add (1,3), add (2,4)) berechnet werden. Die hierzu verwendete verkettete Liste wird dabei
wie in Abbildung 71 angedeutet eingefügt.
90
Aufgabenstellung
+
Follow
b
b
1
a0
3
a2
b
+
4
a1
b
Follow
2
+
b
*
Follow
*
6
anok
anok
5
7
anp
anp
anm
anm
Abbildung 70: Zeigerstruktur nach Berechnung der Nachfolgermenge von
add(1,3) und add(2,4)
Nachdem die Nachfolgermenge von bruch(add (1,3), add (2,4)) berechnet wurde, befinden sich in
der Menge der noch zu bearbeitenden Elemente T2 neben den Termen bruch(mul (1,3), mul (2,4))
und
bruch(mul (1,3), add (2,4))
noch
die
Terme
der
Nachfolger-Elemente
von
bruch(add (1,3), add (2,4)) . Gemäß der Bewertungsfunktion für Terme soll in diesem Beispiel der
Term bruch(mul (1,3), mul (2,4)) bearbeitet werden. Hierzu werden zunächst die Nachfolgermengen der Argumente mul (1,3) und mul (2,4) berechnet. Abbildung 71 zeigt die Zeigerstruktur nach
der Berechnung der entsprechenden Nachfolgermengen.
91
Aufgabenstellung
+
Follow
b
b
1
a0
b
Follow
b
4
+
Follow
Follow
a2
b
Follow
*
6
*
Follow
Follow
8
mnok
mnok
anok
anok
5
3
a1
Follow
+
2
7
anp
anm
anm
mni1
anp
...
...
...
Abbildung 71: Zeigerstruktur nach der Berechnung der Nachfolgermenge
von bruch(mul(1,3),mul(2,4))
In Abbildung 71 wird auch der eigentliche Vorteil der dynamischen Programmierung bei der Fehlerdiagnose deutlich. Während bei der Bearbeitung der Terme bruch(add (1,3), add (2,4)) und
bruch(mul (1,3), mul (2,4)) die Nachfolgermengen der Parameter erst berechnet werden mußten,
kann bei der Bearbeitung von bruch(mul (1,3), add (2,4)) auf die bereits berechneten Nachfolgermengen zurückgegriffen werden. Hierdurch gewinnt das Verfahren deutlich an Geschwindigkeit, da
zahlreiche Regelanwendungen entfallen können. Gleichzeitig wird der entsprechende Speicherplatz
eingespart.
92
4.4 Phase II
Nachdem in der ersten Phase der Fehlerdiagnose der Nachfolgermengen-Graph berechnet wurde,
gilt es in der zweite Phase aus diesem die Menge der Diagnosen Diag ε (w) für die Schülerantwort
w zu bestimmen. Hierzu verwendet BugFix den in Abschnitt 3.5.3 (S. 54) vorgestellten dynami-
schen Algorithmus.
4.4.1 Design und Implementierung
Die berechnete Menge der Diagnosen Diag ε (w) für die Schülerantwort w sollte in einer Form
vorliegen, die für nachfolgende Methoden möglich einfach zu bearbeiten ist. Gleichzeitig soll die
Datenstruktur effizient zu erzeugen sein und möglichst wenig Speicher beanspruchen. Abbildung
72 zeigt das Design dieser Datenstruktur. Sie ist als verkettete Liste von verketteten Listen implementiert.
Lookup
TExpTree
Left
TLookupList
Items
Next
TLookup
-Count : Integer
Right
-Assessment : Double
-Length : Integer
Items
TLookupElement
Next
Rule
TRule
Abbildung 72: Klassendiagramm Lookup (UML)
Das Beispiel in Abbildung 73 zeigt die Datenstruktur mit drei Diagnosen. Auch hier kann wieder
die Idee der Stukturteilung (vgl. Abschnitt 4.2.2) eingesetzt werden, indem identische Enden einer
Diagnose nur einmal gespeichert werden. Abbildung 73 zeigt diesen Fall am Beispiel der unteren
zwei Diagnosen. Werden permutierte Regelfolgen entsprechend Abschnitt 3.5.2 (S. 52) zu einem
Klassenrepräsentanten zusammengefaßt, tritt Abbildung 73 so nicht auf (siehe deshalb auch Abschnitt 4.4.2).
93
TLookupList:
TLookup:
3
Items
0,196
3
Items
Left
ab0
TLookupElement:
Next
1 3
+
2 4
TLookup:
TLookupElement:
0,006
3
anok
Next
anok
Next
Right
Right
1+ 3
2+4
4
2+4
4
6
Left
ab3
Next
1 3
+
2 4
TLookup:
TLookupElement:
Items
Next
Right
0,006
Left
3
Items
Next
mnok
Next
mnok
Next
Right
Right
Right
1⋅ 4
2⋅3
4
2⋅3
4
6
Next
ab3
1 3
+
2 4
Next
mnok
Next
Right
Right
1⋅ 4
2⋅3
1⋅ 4
6
Abbildung 73: Zeigerdiagramm Lookup
Die eigentliche Berechnung der Menge der Diagnosen Diag ε (w) erfolgt in Rückwärtsrekursion
ausgehend von der Schülerantwort w . Das bei der dynamischen Berechnung zuerst berechnete
Teilproblem enthält dabei genau die Diagnosen aus Diag ε ( w, w) . Als nächstes werden die Diagnosen von der Vorgängermenge von w nach w berechnet und entsprechend weiter (siehe Abschnitt
3.5.3, S. 54).
4.4.2 Beispiel
Die dynamische Berechnung der zweiten Phase soll anhand des folgenden Beispiels illustriert werden. Abbildung 74 zeigt die für dieses Beispiel angenommen Datenstruktur der ersten Phase. Die
Lösung des Diagnoseproblems Diag ε ( w, w) ist bereits eingetragen. Es handelt sich um eine leere
Liste von Diagnosen. Im nächsten Schritt kann die Kante „d“ bearbeitet werden. Abbildung 75
zeigt die entsprechende Datenstruktur mit einer Diagnose. Die Diagnose besteht dabei ausschließlich aus dem Rechenschritt „d“.
94
TL
oo
ku
pE
le
m
en
t
TL
oo
ku
p
TL
oo
ku
pL
ist
up
Li
st
TL
oo
k
a
a
c
b
c
b
b
c
b
c
Lookup
1
Left
Items
1
d
Next
d
Items
d
Next
Right
Lookup
Lookup
o
Items
o
Lösung
Items
Abbildung 74: Zeigerstruktur in der zweiten
Phase der Fehlerdiagnose, Bild 1
Lösung
Abbildung 75: Zeigerstruktur in der zweiten
Phase der Fehlerdiagnose, Bild 2
Beim Bearbeiten der nächsten Teilprobleme (siehe Abbildung 76) kommen die Vorteile des dynamischen Algorithmus zum Tragen, da auf eine bereits bekannte Lösung eines kleineren Teilproblems zurückgegriffen werden kann. Die Datenstrukturen sind so gewählt, daß für die neu berechnete Diagnose direkt auf den bereits bekannten Teil der Diagnose verwiesen werden kann. Abbildung
76 zeigt die Datenstruktur nach Einfügen der Diagnosen für den linken und den rechten Ast. Hier
ist zu bemerken, daß beide Diagnosen in ihrem jeweiligen letzten Rechenschritt auf den gleichen
Datensatz verweisen (Strukturteilung).
Für nachfolgende Methoden, die lediglich mit der Liste der Diagnosen arbeiten sollen, stellt diese
Mehrfachnutzung jedoch keine Einschränkung dar, da Diag ε (w) weiterhin als verkettete Liste von
verketteten Listen gesehen werden kann. Lediglich bei der Freigabe zur Laufzeit erzeugter Datensätze oder deren Veränderung ist diese Konstruktion zu beachten.
95
c
ku
p
Lookup
Left
Left
1
Items
Next
2
b
Next
TL
oo
TL
oo
ku
p
b
Lookup
1
Li
st
TL
oo
ku
pE
le
m
en
t
TL
oo
ku
pE
le
m
en
t
TL
oo
ku
p
TL
oo
ku
pL
ist
a
c
Items
2
Items
b
c
Items
Right
Lookup
Right
Next
Next
1
Left
Items
1
Next
d
Items
d
Next
Right
Lookup
Lösung
o
Items
Abbildung 76: Zeigerstruktur in der zweiten Phase der Fehlerdiagnose,
Bild 3
Die folgende Abbildung 77 schließlich zeigt das Ergebnis des letzten Schritts dieses Beispiels. Dabei
werden erstmals zwei Diagnosen erzeugt, indem jeweils auf die Ergebnisse der beiden Folgeknoten
verwiesen wird. Alle weiteren Schritte (ohne Abbildungen) setzen ihrerseits auf beiden erzeugten
Diagnosen dieses Knoten auf.
96
t
m
en
t
Li
st
ok
up
TL
o
TL
o
ok
up
TL
oo
ku
p
El
e
m
en
El
e
ok
up
TL
o
TL
oo
ku
p
ku
pL
ist
TL
oo
a
2
Left
Items
Left
Next
3
c
Next
b
3
Items
c
b
Items
Right
Right
Lookup
Lookup
Next
1
Next
Left
Left
1
Items
Next
2
b
Next
c
Items
2
Items
b
c
Items
Right
Lookup
Right
Next
Next
1
Left
Items
1
Next
d
Items
d
Next
Right
Lookup
Lösung
o
Items
Abbildung 77: Zeigerstruktur in der zweiten Phase der Fehlerdiagnose,
Bild 4
4.4.3 Filter
Abhängig von Aufgabenstellung und Schülerantwort variiert die Anzahl der Diagnosen in
Diag ε (w) sehr stark. Aus Diag ε (w) sollten daher möglichst repräsentative und/oder wahrscheinliche Diagnosen gewählt werden. Verfahren die in der zweite Phase der Fehlerdiagnose eine derartige Auswahl treffen werden im folgenden als Filter bezeichnet. In Abschnitt 3.5.2 wurde mit der Behandlung von permutierten Regelfolgen bereits ein derartiger Filter vorgestellt.
Das Permutationsfilter läßt sich bereits in die zweiten Phase der Fehlerdiagnose einbauen. Dazu
wird beim Lösen jedes Teilproblems nur ein Repräsentant jeder Klasse von permutierten Diagnosen
in die Lösungsmenge aufgenommen.
97
Abbildung 78 zeigt die der Abbildung 77 entsprechende Datenstruktur unter Verwendung des Per-
TL
ku
pL
TL
oo
TL
oo
ku
p
ist
oo
ku
pE
le
a
TL
ku
p
TL
oo
TL
oo
ku
pL
ist
oo
ku
pE
le
m
en
t
m
en
t
mutationsfilters.
1
Left
Items
3
c
Next
b
Items
c
Right
Lookup
Lookup
Next
1
Left
Left
1
Items
Next
2
b
Next
c
2
Items
b
c
Items
Right
Lookup
Right
Next
Next
1
Left
Items
1
Next
d
Items
d
Next
Right
Lookup
Lösung
o
Items
Abbildung 78: Zeigerstruktur in der zweiten Phase der Fehlerdiagnose mit
Permutationsfilter
98
Items
4.5 Wiederaufsetzen
Die Berechnung von Aufgaben durch den Schüler besteht normalerweise aus mehreren Rechenschritten. Diese können entweder im Kopf nachvollzogen, als Zwischenergebnisse auf Papier geschrieben oder bei einem computergestützten Lernsystem in einem geeigneten Editor eingeben
werden. Liegen bei der Fehlerdiagnose derartige Zwischenergebnisse vor, können möglicherweise
mehrdeutige Diagnosen eliminiert werden. Die Fehlerdiagnose sollte daher schrittweise von der ursprünglichen Aufgabenstellung zu der Zwischenlösung und dann von der Zwischenlösung zu ggf.
vorhanden weiteren Zwischenlösungen und schließlich von der letzten Zwischenlösung zum Endergebnis durchgeführt werden. Sei A = w1 = … = wn eine derartige Schülerrechnung mit Zwischenschritten w1 bis wn −1 . Dann wird in der ersten Phase der Fehlerdiagnose der NachfolgermengenGraph mit dem Startknoten A berechnet, in dem, wenn eine Diagnose möglich ist, irgendwo auch
der Knoten w1 auftritt. Typischerweise ist w1 jedoch nicht ein Blatt des NachfolgermengenGraphen, vielmehr sind auch von w1 bereits Nachfolgermengen berechnet (vgl. Abbildung 79). In
diesem Fall kann bei der Berechnung des Nachfolgermengen-Graphen von w1 in der direkt folgenden ersten Phase zur Diagnose der Schülerrechnung w1 = w2 der bereits bekannte Nachfolgermengen-Graph wieder verwendet werden (wiederaufsetzen).
A
w1
w2
Abbildung 79: Nachfolgermengen-Graph mit Zwischenschritten
Ein Wiederaufsetzen kann auch in anderen Situationen sinnvoll sein. Konnte z.B. für die Schülerrechnung A = w1 keine Diagnose berechnet werden, da w1 nicht im berechnetem Nachfolgermengen-Graphen enthalten ist, kann der Algorithmus wiederaufsetzen, in der Hoffnung durch Vergrö99
ßerung des Nachfolgermengen-Graphen auf w1 zu treffen. Auch kann auf die NachfolgermengenGraphen anderer älterer Aufgaben aufgesetzt werden, um einmal berechnete NachfolgermengenGraphen als Teilgraphen zu nutzen. Die folgenden Abschnitte stellen diese drei Strategien näher
vor.
4.5.1 Wiederaufsetzen zur Qualitätsverbesserung
Das Wiederaufsetzen zur Qualitätsverbesserung ist nur dann nötig, wenn der Algorithmus zur dynamischen Berechnung des Nachfolgermengen-Graphen durch Benutzerabbruch angehalten wurde. In diesem Fall ist die Menge ToDo nicht leer. Ein Wiederaufsetzen ist problemlos möglich, indem die alte Menge ToDo verwendet wird. Die abgebrochene Berechnung wird somit direkt fortgesetzt.
Wurde der Algorithmus durch Erreichen der vorgegebenen Qualität ε STOP gestoppt, ist die Menge
ToDo hingegen leer, da zur Beschleunigung der Operationen auf ToDo im i -ten Iterationsschritt
nur Terme t ∈ ΤΣ ( X ) mit aTΣ ( X ) ,i (t ) < ε STOP aufgenommen wurden. Zum Wiederaufsetzen müßte die
Menge ToDo neu berechnet werden, d.h. es müßten alle Terme bestimmt werden, deren Nachfolgermengen noch nicht berechnet wurde. Dies steht in der Praxis jedoch in keiner sinnvollen Aufwand-Nutzen-Relation zu dem erwarteten Ergebnis, dessen Bewertung schlechter als ε STOP wäre.
Wiederaufsetzen ist daher nur bei frühzeitigem Benutzerabbruch sinnvoll.
4.5.2 Wiederaufsetzen nach Zwischenergebnissen
Bereits in der Einleitung (Abschnitt 4.5) wurde das Wiederaufsetzen nach Zwischenergebnissen besonders hervorgehoben. Neben der Berechnung der Menge ToDo stellt sich hier jedoch noch ein
weiteres Problem, die Neubewertung aller bekannten Terme t ∈ TΣ ( X ) durch aTΣ ( X ) (t ) . Dazu wird
der Nachfolgermengen-Graph ausgehend vom neuen Startterm in Tiefensuche durchlaufen und
entsprechend Algorithmus 6 (S. 51) neu bewertet. Die Neubewertung terminiert in Folge der Monotonie der Bewertungsfunktion für Regelfolgen (Lemma 1, S. 36). Abbildung 80 und Abbildung 81
zeigen an einen einfachem Beispiel die Neubewertung.
Die Neubewertung vollzieht praktisch die Berechnung des auf die Zwischenlösung folgenden Teils
des Nachfolgermengen-Graphen nach. Das Wiederaufsetzen hat somit die gleiche Komplexität wie
die Berechnung des entsprechenden Nachfolgermengen-Graphen selbst. Die Laufzeit für jeden Rechenschritt ist jedoch erheblich kürzer.
100
aTΣ ( X ) = 1
A
aR = 0,9
aTΣ ( X ) = 0,9
aR = 0,5
w1 aT
= 0,45
Σ( X )
aR = 0,2
aR = 0,8
aTΣ ( X ) = 0,36
aTΣ ( X ) = 0,09
aR = 0,7
aR = 0,7
aTΣ ( X ) = max {0,36 ⋅ 0,7; 0,09 ⋅ 0,7} = 0,252
Abbildung 80: Beispiel: Nachfolgermengen-Graph vor der Neubewertung
A
aTΣ ( X ) = nicht definiert
aR = 0,9
aTΣ ( X ) = nicht definiert
aR = 0,5
w1
aR = 0,8
aTΣ ( X ) = 1
aR = 0,2
aTΣ ( X ) = 0,8
aR = 0,7
aTΣ ( X ) = 0,2
aR = 0,7
aTΣ ( X ) = max {0,8 ⋅ 0,7; 0,2 ⋅ 0,7} = 0,56
Abbildung 81: Beispiel: Nachfolgermengen-Graph nach der Neubewertung
Im praktischen Einsatz in einem Lernsystem stellt sich das Wiederaufsetzen nach Zwischenergebnissen als äußerst einfache Möglichkeit der Beschleunigung der ersten Phase der Fehlerdiagnose dar.
Insbesondere wenn mit fortgeschrittener Schülerrechnung die Rechenschritte einfacher werden und
mehrere Rechenschritte leicht und schnell im Kopf berechnet werden können, kann durch das
Wiederaufsetzen i.d.R. eine ausreichende Suchtiefe des Diagnosesystems erreicht werden.
101
4.5.3 Wiederaufsetzen bei neuer Aufgabenstellung
Das Wiederaufsetzen bei einer völlig neuen Aufgabenstellung auf Nachfolgermengen-Graphen älterer Berechnungen ist prinzipiell wie das Wiederaufsetzen nach Zwischenergebnissen realisierbar.
Dennoch ist es in den meisten Fällen nicht ratsam, da so im Nachfolgermengen-Graphen in der
zweiten Phase der Fehlerdiagnose hinderliche „fehlweisende“ Kanten entstehen. Hierbei handelt es
sich um Kantenzüge, die von der alten Aufgabenstellung und nicht der aktuellen ausgehen. In der
Praxis sind die entstehenden Laufzeitvorteile für die erste Phase der Fehlerdiagnose nur gering, die
Rechenzeit der besonders zeitkritischen zweite Phase der Fehlerdiagnose kann jedoch, je nach Schülerlösung, erheblich ansteigen. Vom Wiederaufsetzen bei einer neuen Aufgabenstellung ist daher
eher abzuraten.
102
5 Empirische Untersuchungen
In diesem Kapitel sollen zwei Studien vorgestellt werden, die im Rahmen dieser Arbeit durchgeführt
wurden. Sie dienten der Konstruktion bzw. der Erprobung des vorgeschlagenen Diagnosealgorithmus. Im Rahmen einer Untersuchung in der sechsten Klassenstufe wurde die von Schülern für die
Bearbeitung von Bruchrechenaufgaben in einem computergestützten Lernsystem benötigten Zeiten
gemessen. Drei diagnostische Tests zu Beginn der siebten Klassenstufe mit über 500 Schülern dienten zum Aufbau des Diagnosesystems zur Bruchrechnung und zur Demonstration des Diagnosealgorithmus.
5.1 7te-Klassen-Studie
Zur Demonstration des Diagnosealgorithmus wurde als Domäne die Bruchrechnung gewählt. Diese Entscheidung ist motiviert durch die Projekteinbindung dieser Arbeit und die hohe Komplexität
des Diagnoseproblems bei der Bruchrechnung. Das entwickelte Diagnosesystem ist in Anhang A
ausführlich dokumentiert. Das Diagnosesystem baut auf didaktischen Untersuchungen von Hart
(1981), Lörcher (1982), Daubert und Gerster (1983), Gerster und Grevsmühl (1983), Tappe u.a.
(1984), Hasemann (1985), Payne (1986) und Padberg (1986, 1995, 1996)) auf. Beim Entwurf des
Diagnosesystems stellte sich jedoch rasch heraus, daß die vorgenannten Arbeiten nicht umfassend
und/oder formal genug für die Formulierung des Diagnosesystems waren. Ergänzend wurde daher
mit Beginn des Schuljahr 1997/98 in insgesamt 21 Klassen (505 Schüler) des siebten Schuljahrs ein
Test zur Bruchrechnung durchgeführt. Da die Bruchrechnung Bestandteil des Lehrplans des sechsten Schuljahrs ist, sollten die Schüler über die für die Bearbeitung dieses Testes nötigen Kenntnisse
verfügen. Drei bis sechs Wochen später haben 14 der 21 Klassen (300 Schüler) an einem zweiten
Test zur Bruchrechnung und zur Dezimalbruchrechnung teilgenommen. Einige der Klassen hatten
in diesem Zeitraum Inhalte der Bruchrechnung wiederholt. An einem dritten Test am Ende des ersten Schulhalbjahrs haben schließlich noch 10 Klassen (234 Schüler) teilgenommen. Tabelle 8 zeigt
die Verteilung der teilnehmenden Schüler auf die unterschiedlichen Schularten.
Tabelle 8: Verteilung der teilnehmenden Schüler auf die unterschiedlichen
Schularten
Schulart
Gymnasium
1. Test
2. Test
3. Test
376
190
197
Realschule
92
72
37
Hauptschule
37
38
0
505
300
234
Gesamt
103
Ziel der Untersuchung war die Bestimmung der Fehlerstrategien in den Schülerrechnungen. Da viele schwächer eingestufte Schüler jedoch leider mehrere der Aufgaben gar nicht erst bearbeiteten,
konnten auch keine Fehlerstrategien bestimmt werden5. Die Teilnehmer der Studie mußten daher
so gewählt werden, daß überhaupt Fehlerstrategien beobachtet werden konnten. Unter diesem Gesichtspunkt wurde ein Schwerpunkt der Studie auf Gymnasien gelegt
Die von den Schülern unter Aufsicht der Mathematiklehrer bearbeiteten Übungsblätter wurden
zentral am Institut für Mathematik und Angewandte Informatik korrigiert. Fehlerhafte, unvollständige oder nicht bearbeitete Aufgaben wurden in einer Datenbank erfaßt (vgl. Ostermeier, 1998).
Dabei wurden neben der Aufgabenstellung alle von den Schülern aufgeschriebenen Rechenschritte
(ca. 6400) gespeichert. Korrekt und vollständig berechnete Aufgaben wurden zur Verkleinerung des
Aufwands nicht erfaßt.
Als Ergebnis der Untersuchungen wurde das Diagnosesystem um 70 relevante Diagnoseregeln erweitert. Dabei halfen die in Anhang C ausführlich dokumentierten Rechengraphen mit ihren Diagnosetabellen. Ihre Erläuterung befindet sich ebenfalls in Anhang C. Gleichzeitig wurde deutlich, daß
viele der in der Literatur (s.o.) genannten Fehlerstrategien für die Diagnose der erfaßten Schülerrechnungen nicht benötigt werden. Da dies jedoch auch durch die bekannte Abhängigkeit der Fehlerstrategien von der Aufgabenstellung zurückführbar ist, wurden auch diese Diagnoseregeln in der
Menge der Diagnoseregeln belassen.
In den folgenden Abschnitten werden die drei diagnostischen Test dokumentiert.
5.1.1 Diagnostischer Test 1
Das erste Übungsblatt wurden den teilnehmenden Klassen zu Beginn des Schuljahrs vorgelegt. Dabei waren die Lehrer angehalten, den Test möglichst in einer der ersten Unterrichtsstunden durchzuführen ohne vorher Inhalte der Bruchrechnung zu wiederholen. Das Übungsblatt wurde zusammen mit Lehrern konzipiert. Es enthält daher nicht nur Aufgaben, die für das vorgestellte Diagnosesystem zur Bruchrechnung geeignet sind. Abbildung 82 zeigt das erste Übungsblatt6.
5
Eine gestellte Aufgabe nicht zu bearbeiten kann im weitesten Sinn auch als Fehlerstrategie gesehen werden. Diese Null-Strategie ist
jedoch für die Diagnose nur von ungeordneter Bedeutung.
6
Zum Abdruck in dieser Arbeit wurde die Übungsblätter leicht verkleinert.
104
Übungsblatt Bruchrechnung
Löse die folgenden Aufgaben. Schreibe Nebenrechnungen auch mit auf diesen Zettel.
Aufgabe 1: Schreibe in das Kästchen jeweils die richtige Zahl!
a)
3
=
4 24
b)
2 10
=
5
c)
1
1 =
3
6
Aufgabe 2: Kürze soweit wie möglich!
6
=
8
36
c)
=
12
a)
9
=
18
7
d)
=
7
b)
Aufgabe 3: Addiere bzw. subtrahiere und vereinfache das Ergebnis soweit wie möglich!
5 3
− =
8 8
5 1
b)
− =
12 8
2
3
c) 2
+1 =
3 5
1 12
d) 1 −
=
5 10
1
e) 2 − 1
=
4
1
2
+ 3 +1=
f) 2
15
21
a)
Aufgabe 4: In der Klasse 7a können von den 30 Schülerinnen und Schülern
sind noch Nichtschwimmer?
105
3
schwimmen. Wie viele
5
Aufgabe 5: Multipliziere bzw. dividiere und vereinfache das Ergebnis soweit wie möglich!
2 3
⋅ =
3 8
5 3
b)
: =
8 4
3 2
c) 1 ⋅ 2
=
4 3
2 3
d) 2 :
=
3 7
3 2
e) 1
⋅ =
13 3
3 6
f)
: =
4 8
a)
Aufgabe 6: Löse die folgenden Aufgaben und vereinfache das Ergebnis soweit wie möglich!
3
4 =
a)
1
2
2 3
b) 2 −
⋅ =
3 5
1 ⎛ 1 1⎞ 1
⋅⎜ − ⎟ ⋅ =
c)
3 ⎝ 2 3⎠ 2
Aufgabe 7: Schreibe in das Kästchen jeweils die richtige Zahl oder den richtigen Bruch!
a)
2
⋅
3
=
4
3
b)
2
⋅
5
+1=
6
3
Abbildung 82: 7te-Klassen-Studie, 1. Übungsblatt zur Bruchrechnung
106
5.1.2 Diagnostischer Test 2
Das zweite Übungsblatt enthält neben Aufgaben zur Bruchrechnung auch Aufgaben zur Dezimalbruchrechnung. Es stand den Klassen drei bis sechs Wochen nach Wiederbeginn des Unterrichts
zur Verfügung. Sofern die Lehrkräfte zu Beginn der siebten Klasse Bruchrechnung wiederholt haben, wurde der Test als Abschluß der Wiederholung geschrieben. Abbildung 83 zeigt das Übungsblatt.
Übungsblatt Bruchrechnung und Dezimalrechnung
Löse die folgenden Aufgaben. Schreibe Nebenrechnungen auch mit auf diesen Zettel.
Aufgabe 1: Schreibe in das Kästchen jeweils die richtige Zahl!
a)
5
=
6 24
b)
3
2 =
4
8
Aufgabe 2: Kürze soweit wie möglich!
a)
56
=
8
b)
6
=
24
c)
9
=
9
Aufgabe 3: Addiere bzw. subtrahiere und vereinfache das Ergebnis so weit wie möglich!
10 3
− =
7 7
6
5
b) 2
−1 =
18 6
5
8
c) 1 + 2
=
8
5
1
=
d) 5 − 2
3
1 10
e) 3
−
=
3 3
4
7
f) 3
+8 −3 =
20
15
a)
Aufgabe 4: Auf dem ersten Übungsblatt wurden von den 25 Aufgaben durchschnittlich
gerechnet. Wie viele Aufgaben wurden durchschnittlich richtig gerechnet?
107
2
fehlerhaft
5
Aufgabe 5: Multipliziere bzw. dividiere und vereinfache das Ergebnis so weit wie möglich!
2 3
:
=
3 4
2 3
b)
⋅3 =
3 4
6 8
c) 2
:
=
8 7
5 10
=
d)
:
8 16
1 5
e) 3
⋅2 =
4 4
1
2 =
f)
3
4
a)
Aufgabe 6: Löse die folgenden Aufgaben und vereinfache das Ergebnis so weit wie möglich!
1,6 + 0,25 + 0,4 =
b) 1,23 − 0,09 =
c) 0,3 ⋅ 0,6 =
1
d)
⋅ 1,2 =
3
a)
Aufgabe 7: Löse die folgenden Aufgaben und vereinfache das Ergebnis so weit wie möglich!
3
1 ⋅ 0,5 + 0,3 =
4
b) (3, 4 − 0,5 ) ⋅ 0,2 =
⎛1 ⎞ 1
c) ⎜
⋅ 3 ⎟ ⋅ + 0,5 =
⎝2 ⎠ 3
d) 1,23 ⋅ 4,2 =
e) 0, 4 : 0,3 =
a)
Abbildung 83: 7te-Klassen-Studie, 2. Übungsblatt zur Bruchrechnung
108
5.1.3 Diagnostischer Test 3
Das dritte Übungsblatt enthält ebenfalls Aufgaben zur Bruchrechnung und zur Dezimalbruchrechnung. Es wurden den Klassen kurz vor Ende des ersten Schulhalbjahrs vorgelegt. Abbildung 84
zeigt das Übungsblatt.
Übungsblatt Bruchrechnung und Dezimalrechnung
Löse die folgenden Aufgaben. Schreibe Nebenrechnungen auch mit auf diesen Zettel.
Aufgabe 1: Schreibe in die Kästchen jeweils die richtige Zahl!
a)
3
=
7 21
b)
5
4 =
6
12
Aufgabe 2: Kürze soweit wie möglich!
a)
54
=
9
b)
9
=
36
c)
8
=
8
Aufgabe 3: Addiere bzw. Subtrahiere und vereinfache das Ergebnis so weit wie möglich!
15 3
− =
6 6
4 15
b) 3
−1 =
7 21
6
7
c) 1 + 3
=
7
6
2
=
d) 7 − 3
5
28
8
e)
−4 =
5
5
3
8
f) 5
−1 + 4 =
21 14
a)
Aufgabe 4: Auf einem Parkplatz haben 12 Autos die Farbe Rot. Das sind
3
aller Autos, die auf dem
7
Parkplatz stehen. Wie viele Autos befinden sich insgesamt auf dem Parkplatz?
109
Aufgabe 5: Multipliziere bzw. Dividiere und vereinfache das Ergebnis so weit wie möglich!
3 5
:
=
5 6
4 5
b)
⋅2 =
5 8
6 7
c) 2
:
=
7 5
4 16
=
d)
:
9 36
2 1
e) 2
⋅3 =
3 2
2
3 =
f)
5
9
a)
Aufgabe 6: Löse die folgenden Aufgaben und vereinfache das Ergebnis so weit wie möglich!
2,7 + 0,35 − 0,5 =
b) 2, 43 − 0,19 =
c) 0,5 ⋅ 0,3 =
1
⋅ 1,8 =
d)
9
a)
Aufgabe 7: Löse die folgenden Aufgaben und vereinfache das Ergebnis so weit wie möglich!
1
2 ⋅ 0,6 + 0,3 =
3
b) (3,7 + 0,5 ) ⋅ 0,3 =
⎛ 1⎞ 1
c) ⎜ 4 ⋅ ⎟ ⋅
+ 0,7 =
3
4
⎝
⎠
d) 1,3 ⋅ 3,24 =
e) 1,2 : 0,4 =
a)
Abbildung 84: 7te-Klassen-Studie, 2. Übungsblatt zur Bruchrechnung
110
5.2 6te-Klassen-Studie
Im Rahmen einer Kooperation des Instituts für Mathematik und Angewandte Informatik der Universität Hildesheim mit dem Hildesheimer Gymnasium Andreanum wurde ein Schulversuch zur
Einführung der Bruchrechnung in Klasse 5 statt Klasse 6 durchgeführt. Dazu wurde das Currciulum der fünften und sechsten Klassenstufe neu aufgeteilt. In Klassenstufe 5 wurde insbesondere der
Bruchbegriff eingeführt und verstärkt motiviert. Hierzu kamen regelmäßig verschiedene Lernprogramme zur Bruchrechnung, insbesondere das Programm „Alice“ (Cornelsen), zum Einsatz. Im
Mittelpunkt der Untersuchung stand dabei die Visualisierung des Bruchbegriffes und der grundlegenden Rechenarten. Eine detaillierte Beschreibung des Schulversuchs wird an anderer Stelle publiziert.
In diesem Zusammenhang relevant ist ein zu Beginn der sechsten Klassenstufe durchgeführter Test
zur Bruchrechnung, an dem eine der beiden Klassen teilgenommen hat. Die Schüler wurden dabei
mit einer Auswahl der Übungsaufgaben der 7te-Klassen-Studie konfrontiert, die diesmal jedoch
nicht auf Papier sondern am Computer bearbeitet werden sollten. Hierzu stand ein einfacher, für die
Bruchrechnung geeigneter Editor zur Verfügung, in dessen Bedienung die Schüler einzeln eingewiesen wurden.
Im Unterschied zu den meisten Lernprogrammen, waren die Schüler hierbei nicht an feste Eingabemasken gebunden, sondern konnten den Rechenweg und die Zwischenschritte frei wählen. Im
Rahmen dieser Untersuchung wurde vom Rechner die Zeit gestoppt, die zwischen Aufgabenstellung und erster eingegebener Zwischenlösung verstrich. Hierbei war nicht relevant, ob das Ergebnis
richtig oder falsch war. Fehlerhaft berechnete Aufgaben wurden jedoch bis zu dreimal vom Schüler
wiederholt.
Tabelle 9 zeigt das vollständige Ergebnis dieser Testreihe. Zu jeder gestellten Aufgabe ist die Anzahl
der erfaßten Datensätze, die minimale, mittlere und maximale Zeit vermerkt. Die letzten beiden
Spalten geben die mittlere Zeit der schnellsten 70% bzw. 30% der Antwortzeiten an. Die Auswirkungen dieser Testreihe für den Diagnosealgorithmus sind am Beginn des Kapitels 3 (S. 32) dokumentiert.
111
Tabelle 9: Zeitspanne zwischen Aufgabenstellung und erster Schülerantwort
Nr.
Aufgabe
Anzahl
Minimum Mittel
[s]
[s]
Maximum Mittel [s] Mittel [s]
[s]
70%
30%
schnellste schnellste
1
36
12
32
5,6
27
71
18
11
2
7
7
31
3,1
10
28
7
4
3
1 3
2+4
33
6,2
47
144
27
13
2
5
4 1 +4
3
6
46
6,2
65
183
39
23
5
5 3
8-8
36
5,1
19
37
14
10
6
5 1
12 - 8
53
12,3
67
298
42
26
3
2
7 2 +1
5
3
40
20,2
65
243
45
30
1 12
8 1 5 10
33
10,8
44
165
28
20
1
9 2-1
4
30
4,5
27
89
18
11
10
2 3
3⋅8
30
2,0
46
132
28
15
11
5 3
8:4
33
2,3
47
138
32
19
3 2
12 1 ⋅ 2
4 3
43
3,3
54
230
35
20
2 3
13 2 :
3 7
23
2,2
51
132
37
23
3 2
14 1 ⋅
13 3
22
2,3
44
65
32
19
3 6
4:8
26
1,7
32
78
21
10
3
4
1
2
21
9,4
40
90
29
22
2 3
17 2 - ⋅
3 5
37
4,3
43
113
29
18
15
16
112
Nr.
Aufgabe
Anzahl
Minimum Mittel
[s]
[s]
Maximum Mittel [s] Mittel [s]
[s]
70%
30%
schnellste schnellste
6 5
18 2 - 1
18 6
18
3,7
60
148
40
26
5
8
19 1 + 2
8
5
13
2,7
58
167
38
20
1
20 5 - 2
3
13
1,4
30
74
18
13
1 10
21 3 3 3
13
1,3
17
44
11
5
22
2 3
3 : 34
13
2,7
34
65
21
11
23
2 3
3 : 17
12
1,6
32
81
20
10
Bemerkung: Die extrem kurzen minimalen Bearbeitungszeiten ab Aufgabe 10 sind durch einen
Schüler zu erklären, der lustlos lediglich „0“ als Lösung jeder Aufgabe eingegeben hat.
113
6 Zusammenfassung und Ausblick
In den vorherigen Kaptiteln wird ein leistungsfähiger Algorithmus zur Diagnose von korrekten und
fehlerhaften Rechenwegen vorgestellt. Der vorgeschlagene Diagnosealgorithmus ist für den Einsatz
in einem Lehr-Lern-System konzipiert, wobei die Online-Diagnose im Lernsystem die Akzeptanzkriterien Laufzeit, Flexibilität und Diagnosegüte vorgibt.
Basierend auf den hier neu eingeführten formalen Konzepten zur Fehlerdiagnose wurde das Design
und die Implementierung der Diagnosekomponente BugFix entwickelt. BugFix kann durch eine
eigene Sprache (BFS) an verschiedene mathematische Domänen adaptiert werden. Daher eignet es
sich als leicht integrierbares Diagnosemodul für intelligente mathematische Lehr-Lern-Systeme. Im
Rahmen eines Projektes am Institut für Mathematik und Angewandte Informatik der Universität
Hildesheim erfolgt diese Integration zur Zeit am Beispiel eines Lehr-Lern-Systems zur Bruchrechnung.
In diesem Kontext entstand als Anwendungsbeispiel für BugFix ein Diagnosesystem für die Bruchrechnung. Zusammen mit den in der Literatur dokumentierten Studien und einer eigenen empirischen Untersuchung wurde knapp 250 Diagnoseregeln zur Bruchrechnung ermittelt (Anhang A).
Auf dieser Domäne zeigt wiederholt BugFix sein für den Einsatz in Lernsystemen optimales Laufzeitverhalten (vgl. Anhang B). Ohne daß für den Schüler eine subjektiv wahrnehmbare Wartezeit
entsteht, berücksichtigt BugFix – falls nötig – mehrere Milliarden verschiedener korrekter oder fehlerhafter Rechenwege als mögliche Diagnosen einer Schülerantwort. Diese Leistungsfähigkeit verdankt der Diagnosealgorithmus im wesentlichen der dynamischen Programmierung und der maximalen Strukturteilung der verwendeten Datentypen. Letztere ermöglicht eine äußerst kompakte
Speicherung der Diagnosen und benötigt i.A. nur zwischen 0,0001 und 0,02 Byte pro gespeicherter
Diagnose.
Bezüglich der Demonstrationsdomäne Bruchrechnung ist die Effizienz des Diagnosealgorithmus so
hoch, daß es für den praktischen Einsatz in einem Lernsystem sinnvoll sein wird, die Berechnung
frühzeitig zu stoppen, um nicht unnötig Speicher zu belegen. Die umfangreichen Erfahrungen in
dieser komplexen Demonstrationsdomäne sowie bei Testläufen auf dem Gebiet der Differentialrechnung stellen eine erfolgversprechende Perspektive für den Einsatz von BugFix in anderen mathematischen Bereichen dar.
114
In Kooperation mit Fachdidaktikern und Schulpsychologen ist die Entwicklung weiterer Diagnosesysteme für andere mathematische Anwendungsgebiete bereits im konkreten Planungsstadium. Die
Verfügbarkeit von umfassenden Diagnosesystemen für verschiedene Domänen wird sicherlich ausschlaggebend für den breiten Einsatz in kommerziellen Lernprogrammen sein – da aus wirtschaftlicher Sicht ansonsten die Investition in eine aufwendige multimediale Gestaltung der Lernprogramme sinnvoller erscheinen mag.
Durch die Berechnung der Fehlerdiagnosen zur Laufzeit des Programmes kann der Diagnosealgorithmus flexibel reagieren. Es ist weder eine Beschränkung der Auswahl der Übungsaufgaben noch
eine Einschränkung der möglichen Rechenwege der Schüler aus Sicht der Fehlerdiagnose notwendig. Selbst wenn der Rechenweg zu einem Zwischenergebnis nicht diagnostiziert werden kann, ermöglicht der Diagnosealgorithmus prinzipiell die Diagnose des restlichen Rechenweges. Durch die
Adaption der Bewertungsfunktion für Regeln läßt sich der Suchraum des Diagnosealgorithmus an
jeden Schüler individuell anpassen. So können bekannte korrekte und fehlerhafte Rechenstrategien
des Schülers stärker bei der Suche berücksichtigt werden. Verschiedene alternative oder sich ergänzende Adaptionsstrategien sind zur Zeit am Institut für Mathematik und Angewandte Informatik
der Universität Hildesheim in Entwicklung bzw. Erprobung.
Die Sprache BFS ermöglicht eine einfache Skalierung des Diagnosesystems an unterschiedlich leistungsfähige Rechner. Somit kann BugFix insbesondere auch auf leistungsschwachen Systemen eingesetzt werden – sofern die multimediale Gestaltung des Lernsystems dies zuläßt. Der vorgeschlagene Diagnosealgorithmus erfüllt somit uneingeschränkt die Anforderungen an die Flexibilität des
Algorithmus für den Einsatz in einem Lehr-Lern-System.
Im Unterschied zu Systemen wie DEBUGGY, bei denen es zur Bewältigung der Komplexität nötig
ist, mehrere Übungsaufgaben in die Diagnose einzubeziehen, arbeitet der vorgeschlagene Diagnosealgorithmus mit einzelnen Übungsaufgaben. Dies ermöglicht eine schnelle Reaktion auf erkannte
Fehlvorstellungen und verhindert deren Automatisierung bereits in den Ansätzen. Da zu zahlreichen Schülerlösungen verschiedene mögliche Diagnosen zutreffen können, sind die gelieferten Diagnosen jedoch nicht immer eindeutig und müssen auch nicht in jedem Fall dem tatsächlichen Rechenweg des untersuchten Schülers entsprechen. Durch die Hinzunahme von Methoden, die aus
den Diagnosemengen mehrerer Aufgaben ein Lernermodell konstruieren, läßt sich daher die Qualität der Diagnose sicherlich deutlich verbessern. Hier können die von Burton (1982) für IDEBUGGY vorgeschlagenen Techniken sicherlich als sinnvoller Ansatz für weitere Arbeiten dienen.
115
Ergänzend läßt sich zusätzlich durch eine gezielte Wahl der Übungsaufgaben die Qualität der Diagnosen erheblich verbessern. Die Übungsaufgaben sind hierzu so zu wählen, daß möglichst viele fehlerhafte Schülerantworten eindeutig diagnostizierbar sind. In einer Diplomarbeit (Kube, 1999) am
Institut für Mathematik und Angewandte Informatik werden derartige Übungsaufgaben durch systematische Berechnungen der Nachfolgermengen-Graphen bestimmt. Dem enormen Rechenaufwand kann sinnvoll nur durch aufwendige und parallele Berechnung begegnet werden. Bei Berücksichtigung der möglichen Kombinationen der verschiedenen Schwierigkeitsfaktoren (vgl. Padberg,
1995) ist die Einschränkung der Aufgabenauswahl in einem Lehr-Lern-System unwesentlich.
Als ein nach Ansicht des Autors vielversprechender Ansatz zur Verbesserung der Diagnosegüte ist
der Diskurs mit dem Schüler über seine Fehlvorstellungen einzuschätzen. Wenn zum Beispiel nicht
zwischen verschiedenen Diagnosen unterschieden werden kann, könnte das Lernsystem den Schüler etwa fragen, welchen der diagnostizierten Rechenwege er verwendet hat. Dies erfordert deutlich
geringere metakognitive Fähigkeiten als die Frage, was der Schüler gerechnet hat. Insofern ist diese
Technik vielleicht auch bei jüngeren Schülern, deren metakognitive Fähigkeiten noch nicht sehr weit
ausgeprägt sind, einsetzbar. Diese Methode empfiehlt daher eine sehr einfache und qualitativ hochwertige Alternative zu statistischen Verfahren, wie sie von Burton für IDEBUGGY vorgeschlagen
wurden.
Bei der Konstruktion von Modellen für intelligente Lernsysteme ist die Unabhängigkeit von der
Domäne ein bisher unerreichtes Ziel. Mit der Konzentration auf mathematische Bereiche war es in
dieser Arbeit möglich, einen sehr leistungsfähigen Diagnosealgorithmus zu entwickeln. Allein schon
die vielversprechenden Ansätze in verschiedenen mathematischen Arbeitsgebieten (vgl. S. 114)
zeichnen den Diagnosealgorithmus positiv aus. Da die Darstellung der Rechenschritte durch Terme
wesentliche Voraussetzung für die Effizienz der Diagnose ist, hat der Einsatz von BugFix in einigen
anderen Domänen, wie Sprachen (mögliche Ausnahme: Deklination von Verben), Kunst oder Sozialwissenschaften sicherlich seine Grenzen.
Von zukünftigen Interesse wäre auch die Beschränkung von BugFix auf korrekte mathematische
Regeln. Zwar würde BugFix aufgrund seiner Konstruktion als „Bestensucher“ dabei nicht die Effizienz vergleichbarer Systeme erreichen, aber zur Generierung möglichst einfacher Beweise eingesetzt werden. Ein anderes Einsatzgebiet außerhalb von Lernsystemen kann auch in der Fehlersuche
und Wartung von komplexen technischen Systemen liegen. Beide Beispiele würden hierbei von einer Parallelisierung des Diagnosealgorithmus profitieren. BugFix ist für eine entsprechende Parallelisierung bereits vorbereitet.
116
Anhang A: Diagnosesystem zur Bruchrechnung
In der Literatur finden sich zahlreiche Untersuchungen über die von Schüler verwendeten korrekten
und fehlerhaften Rechenstrategien neben den Bereich der Grundrechenarten (z.B. Gerster, 1979)
insbesondere für den Bereich der Bruchrechnung (Marshall, 1980; Hart, 1981; Lörcher, 1982; Tappe
u.a., 1984; Daubert, Gerster, 1983; Gerster, Grevsmühl, 1983; Hasemann, 1985; Payne, 1986; Padberg, 1986, 1995, 1996). Die zitierten Studien zur Bruchrechnung umfassen die Rechnungen von
mehr als 1000 Schülern verschiedener Klassenstufen und Schultypen und bilden das Fundament für
das in dieser Arbeit vorgestellte Diagnosesystem zur Bruchrechnung. Ergänzt wurden diese Arbeiten durch eigene Beobachtungen im Rahmen der 7te-Klassen-Studie mit über 6000 fehlerhaften
oder unvollständigen Rechnungen von über 500 Schülern.
Zur leichteren Unterscheidung der Diagnoseregeln sind ihre Namen systematisch aufgebaut. Der
erste Buchstabe steht dabei immer für die Rechenoperation (siehe Tabelle A-1).
Tabelle A-1: Regelgruppen
Kürzel
Gruppe
a
Addition
d
Division
k
Kürzen
m
Multiplikation
s
Subtraktion
u
Umwandlung (gemischte Zahlen in Brüche usw.)
Der zweite und möglicherweise der dritte Buchstabe des Namens geben Auskunft über die Sorten
der Argumente, dabei steht „n“ für natürliche bzw. ganze Zahlen, „b“ für Brüche und „g“ für gemischte Zahlen. Als nächstes folgt ein Unterscheidungsmerkmal für Diagnoseregeln mit gleichen
Rechenoperationen und gleichen Argumentsorten. Dabei steht „ok“ für mathematisch korrekte und
sinnvolle Rechenstrategien. Alle anderen Diagnoseregeln werden durchnumeriert. Diese Numerierung kann ggf. um Buchstaben erweitert werden um inhaltliche „Verwandtschaften“ von Diagnoseregeln auszudrücken.
In den folgenden Tabellen werden die Diagnoseregeln des Diagnosesystems vorgestellt. Die Tabellen enthalten jeweils eine kurze Beschreibung, die in vielen Fällen mit einem Beispiel versehen ist
(Gerster, Grevsmühl, 1983). Bei der Beschreibung einiger Diagnoseregeln sind zudem Prozentzahlen angegeben. Sie sollen die Anwendungshäufigkeit einer Fehlerstrategie beschreiben. Die Werte
beziehen sich auf Untersuchungen von Lörcher (1982) auf der Grundlage von 134 Hauptschülern
117
(7.-9. Schuljahr) und 438 Realschülern (6. und 7. Schuljahr), auf eine Untersuchung von Hasemann
(1985) mit 70 Hauptschülern (7. Schuljahr) sowie auf Angaben von Padberg (1995).
Ferner enthalten die Tabellen die Diagnoseregeln selbst. Zur besseren Lesbarkeit wurde dabei, wann
immer möglich, die Infix-Notation verwendet. Sofern relevant, sind Anwendungs- und Kontextkonditionen angegeben. Die Priorität ist nur bei Abweichungen von der „Standardpriorität“ angegeben – ihr Wert beträgt 100.
Obwohl in das vorgestellte Diagnosesystem bereits sehr viel Arbeit investiert wurde, besteht dennoch an einigen Stellen die Möglichkeit für sinnvolle Erweiterungen, insbesondere für den praktischen Einsatz in einem intelligenten Lernsystem. Dies ist i.A. im Anhang C ersichtlich.
A.1
Grundrechenarten in den natürlichen Zahlen
Tabelle A-2: Diagnoseregeln für die Grundrechenarten (korrekt)
Nr.
Beschreibung
Regeln, Anwendungskondition
anok
Korrekte Addition in den natürlichen a + b → c c := a + b
Zahlen
Priorität: 200
snok
Korrekte Subtraktion in den natürli- a − b → c c := a − b
chen Zahlen
Priorität: 200
snn
Nullvermeidungsstrategie bei der Sub- a − a → a + b
traktion in den natürlichen Zahlen
Priorität: 200
mnok Korrekte Multiplikation in den natür- a ⋅ b → c c := a ⋅ b
lichen Zahlen
Priorität: 200
dnok Korrekte Division ohne Rest in den a : b → c b a, c := a : b
natürlichen Zahlen
Priorität: 200
118
A.2
Addition
A.2.1 Brüche
Tabelle A-3: Diagnoseregeln zur Addition von Brüchen
Nr.
Beschreibung
Regeln, Anwendungskondition
abok
Addition korrekt
z1 z 2
z + z2
+
→ 1
n n
n
ab0
Falsche additive Technik
5 2 5+2 7
Beispiel: + =
=
3 6 3+6 9
(Lörcher: 24%, Hasemann: 33%,
Padberg7: 20-30%)
Addition ersetzt durch Multiplikation
5 2 10
Beispiel: + =
2 6 12
(Lörcher: 4%)
z1 z 2
z + z2
+
→ 1
n1 n 2
n1 + n 2
ab1
ab1a
Addition ersetzt durch Multiplikation z1 z 2
z ⋅z
+
→ 1 2
bei gleichen Nennern
n
n
n
4 2 8
Beispiel: + =
3 3 3
ab2
Falsche additive Technik und Ver- z1 z 2
z ⋅z
+
→ 1 2
wechslung mit Multiplikation
n1 n 2
n1 + n 2
2 4 8
Beispiel: + =
3 6 9
ab3
Addition mit Kehrwertbildung
Beispiel:
5 2 5 ⋅ 6 30
+ =
=
3 6 3⋅ 2
6
z1 z 2
z ⋅n
+
→ 1 2
n1 n2
n1 ⋅ z 2
ab4
Addition ersetzt durch Subtraktion
ab5
Zähler gleichnamig machen, Nenner z1 z 2
z
+
→
addieren
n1 n2
n1 ⋅ e1 + n2 ⋅ e2
(Lörcher: 1,5%)
z1 ≠ z 2 , z = kgv( z1 , z 2 ), e1 = z : z1 , e2 = z : z 2
ab5a
Nenner addieren, bei gleichem Zähler
3 3
3
3
Beispiel: + =
=
5 2 5+ 2 7
7
z1 z 2
z ⋅z
+
→ 1 2
n1 n2
n1 ⋅ n 2
z1 z 2
z − z2
+
→ 1
n n
n
z
z
z
+
→
n1 n2
n1 + n2
Padberg zitiert eine Untersuchung aus den USA von Post (1981)
119
A.2.2 Hauptnennerbildung bei der Addition von Brüchen
Tabelle A-4: Diagnoseregeln für die Hauptnennerbildung bei der Addition
von Brüchen
Nr.
Beschreibung
Regeln
abhok Hauptnenner korrekt, Erweiterungen z
⎛z z
⎞
z
1
+ 2 → addh⎜⎜ 1 , 2 , n ⎟⎟
korrekt
n1 n2
⎝ n1 n 2 ⎠
n1 ≠ n2 , n = kgv(n1 , n 2 )
⎛z z
⎞
z ⋅e
z ⋅e
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 1 + 2 2
n
n
⎝ n1 n2 ⎠
e1 = n / n1 , e2 = n / n2
Priorität: 300
abh0
Hauptnenner durch Multiplikation ge- z
⎛z z
⎞
z
1
+ 2 → addh⎜⎜ 1 , 2 , n ⎟⎟
bildet, obwohl kleineres kgV existiert
n1 n2
⎝ n1 n 2 ⎠
(kein Fehler).
n1 ≠ n2 , n = n1 ⋅ n 2 , n ≠ kgv(n1 , n 2 )
abh1
Hauptnenner korrekt, jedoch Zähler
⎛z z
⎞
z
z
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 + 2
nicht erweitert
n
n
⎝ n1 n2 ⎠
(Lörcher: 13%)
Priorität: 300
abh2
Hauptnenner korrekt, jedoch Zähler
⎛z z
⎞
z +e
z + e2
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 1 + 2
additiv erweitert
n
n
⎝ n1 n2 ⎠
(Lörcher: 13%)
e1 = n / n1 , e2 = n / n2
Priorität: 300
abh3
Hauptnenner korrekt, jedoch Zähler
⎛z z
⎞
e e
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 + 2
durch Erweiterungszahlen ersetzt
n n
⎝ n1 n 2 ⎠
(Lörcher: 2%)
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
abh4
Hauptnenner korrekt, jedoch Erweite⎛z z
⎞
z ⋅e
z ⋅e
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 2 + 2 1
rungszahlen vertauscht
n
n
⎝ n1 n2 ⎠
(Lörcher: 2%)
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
120
Nr.
Beschreibung
Regeln
abh5
Hauptnenner korrekt, jedoch beide
⎛ z1 z 2 ⎞
z1 ⋅ e1 z 2 ⋅ e1
+
Zähler mit der gleichen Erweiterungs- addh⎜⎜ , , n ⎟⎟ →
n1 n 2 ⎠
n
n
⎝
zahl erweitert
e1 = n / n1
Priorität: 300
⎛z z
⎞
z ⋅e
z ⋅e
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 2 + 2 2
n
n
⎝ n1 n 2 ⎠
e2 = n / n 2
Priorität: 300
abh6
Hauptnenner korrekt, jedoch nur ei⎛z z
⎞
z ⋅e
z
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 1 + 2
nen Zähler erweitert
n
n
⎝ n1 n2 ⎠
e1 = n / n1 ,1 ≠ n / n 2
Priorität: 300
⎛z z
⎞
z
z ⋅e
addh⎜⎜ 1 , 2 , n ⎟⎟ → 1 + 2 2
n
n
⎝ n1 n 2 ⎠
1 ≠ n / n1 , e2 = n / n2
Priorität: 300
abh7
Hauptnenner ersetzt durch Maximum
Beispiel:
abh8
Hauptnenner ersetzt durch Minimum
Beispiel:
abh9
7
7 14
+
=
15 10 15
7
7 14
+
=
15 10 10
z1 z 2
z + z2
+
→ 1
n1 n2
n
n1 ≠ n2 , n = max(n1 , n2 )
z1 z 2
z + z2
+
→ 1
n1 n2
n
n1 ≠ n2 , n = min(n1 , n2 )
Hauptnenner ersetzt durch größten z1 z 2
z + z2
+
→ 1
gemeinsamen Teiler (ggT)
n1 n2
n
7
7 14
n1 ≠ n2 , n = ggt (n1 , n2 )
Beispiel:
+
=
15 10 5
Bemerkung: Die Diagnoseregeln „abh5“ bis „abh9“ waren bei der Berechnung der Diagnosen in
Anhang C nicht aktiviert.
121
A.2.3 Ganze Zahlen und Brüche
Tabelle A-5: Diagnoseregeln für die Addition von ganzen Zahlen und Brüchen
Nr.
Beschreibung
anbok Addition mit natürlichen Zahlen kor-
rekt
anb0
Regeln, Anwendungskondition
z
z
→a
n
n
z
z
+a→a
n
n
a+
Falsche additive Technik bei natürliz
a+ →
cher Zahl
n
1 3
z
Beispiel: 2 + =
+a→
4 7
n
(Padberg: 20%)
z
a+ →
n
a+z
a+n
z+a
n+a
a+z
n
z
z+a
+a→
n
n
anb1
Addition ersetzt durch Multiplikation
z
a⋅z
a+ →
bei natürlicher Zahl (vollständig)
n
a⋅n
z
z⋅a
2 2⋅2 4
+a→
Beispiel: 2 + =
=
n
n⋅a
3 2⋅3 6
z
a⋅z
→
n
n
z
z⋅a
+a→
n
n
a+
anb3
Addition mit Kehrwertbildung mit
z
a⋅n
a+ →
natürlicher Zahl
n
z
z
z
5
5
5
+a→
Beispiel: + 3 =
=
n
n⋅a
4
4 ⋅ 3 12
122
A.2.4 Gemischte Zahlen
Tabelle A-6: Diagnoseregeln für die Addition von gemischten Zahlen und
Brüchen
Nr.
Beschreibung
agok
Addition korrekt
Regeln, Anwendungskondition
g1
z1 z 2
z + z2
+
→ g1 1
n n
n
g1
⎛
z1
z
z ⎞ z
+ g 2 2 → gem⎜⎜ g1 + g 2 , 1 ⎟⎟ + 2
n1
n2
n1 ⎠ n2
⎝
g
z1 z 2
z
z
+
→ 1 +g 2
n
n
n
n
z1
z
z
z
+g 2 →g 1 + 2
n
n
n
n
ag0
Falsche additive Technik8
ag1
Addition ersetzt durch Multiplikation
ag1a
Addition ersetzt durch Multiplikation
z ⋅z
z
z
g 1+ 2 →g 1 2
bei gleichen Nennern
n
n
n
ag2
Falsche additive Technik und Verz ⋅z
z
z
g 1+ 2 →g 1 2
wechslung mit Multiplikation
n1 n 2
n1 + n 2
ag3
Addition mit Kehrwertbildung
ag4
Addition ersetzt durch Subtraktion
ag5
Zähler gleichnamig machen, Nenner
z
z
z
g 1 + 2 →g
addieren
n1 n2
n1 ⋅ e1 + n2 ⋅ e2
g
z1 z 2
z + z2
+
→g 1
n1 n 2
n1 + n 2
g
z ⋅z
z1 z 2
+
→g 1 2
n1 n 2
n1 ⋅ n2
g
z1 z 2
z ⋅n
+
→g 1 2
n1 n 2
n1 ⋅ z 2
g
z1 z 2
z − z2
+
→g 1
n n
n
z1 ≠ z 2 , z = kgv( z1 , z 2 ), e1 = z : z1 , e2 = z : z 2
ag5a
8
Nenner addieren, bei gleichem Zähler
g
z
z
z
+
→g
n1 n2
n1 + n2
Eine analoge Rechenstrategie mit gemischter Zahl als zweiter Summand wird durch agok/3 und ag0 behandelt.
123
A.2.5 Hauptnennerbildung bei der Addition von gemischten Zahlen
Tabelle A-7: Diagnoseregeln für die Hauptnennerbildung bei der Addition
von gemischten Zahlen
Nr.
Beschreibung
Regeln
aghok Hauptnenner korrekt, Erweiterungen
⎛ z z
⎞
z
z
g1 1 + 2 → addh⎜⎜ g1 1 , 2 , n ⎟⎟
korrekt
n1 n 2
⎝ n1 n 2 ⎠
n1 ≠ n 2 , n = kgv(n1 , n 2 )
g1
⎛ z
⎞
z1
z
z
+ g 2 2 → addh⎜⎜ g 1 1 , g 2 2 , n ⎟⎟
n2 ⎠
n1
n2
⎝ n1
n1 ≠ n2 , n = kgv(n1 , n2 )
⎛ z z
⎞
z ⋅e
z ⋅e
addh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 1 + 2 2
n
n
⎝ n1 n2 ⎠
e1 = n / n1 , e2 = n / n 2
Priorität: 300
⎛ z
⎞
z ⋅e
z
z ⋅e
addh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 1 + g 2 2 2
n2 ⎠
n
n
⎝ n1
e1 = n / n1 , e2 = n / n 2
Priorität: 300
agh0
Hauptnenner durch Multiplikation
⎛ z z
⎞
z1 z 2
→ addh⎜⎜ g1 1 , 2 , n ⎟⎟
gebildet, obwohl kleineres kgV exis- g1 +
n1 n 2
⎝ n1 n 2 ⎠
tiert (kein Fehler).
n1 ≠ n2 , n = n1 ⋅ n 2 , n ≠ kgv(n1 , n 2 )
g1
agh1
⎛ z
⎞
z1
z
z
+ g 2 2 → addh⎜⎜ g 1 1 , g 2 2 , n ⎟⎟
n1
n2
n2 ⎠
⎝ n1
n1 ≠ n2 , n = n1 ⋅ n 2 , n ≠ kgv(n1 , n 2 )
Hauptnenner korrekt, jedoch Zähler
⎛ z z
⎞
z
z
addh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 + 2
nicht erweitert
n
n
⎝ n1 n2 ⎠
Priorität: 300
⎛ z
⎞
z
z
z
addh⎜⎜ g 1 1 , g 2 2 , n ⎟⎟ → g1 1 + g 2 2
n2 ⎠
n
n
⎝ n1
Priorität: 300
124
Nr.
Beschreibung
Regeln
agh2
Hauptnenner korrekt, jedoch Zähler
⎛ z z
⎞
z +e
z + e2
addh⎜⎜ g 1 1 , 2 , n ⎟⎟ → g1 1 1 + 2
additiv erweitert
n
n
⎝ n1 n 2 ⎠
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛ z
⎞
z
z +e
z + e2
addh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 1 + g 2 2
n2 ⎠
n
n
⎝ n1
e1 = n / n1 , e2 = n / n2
Priorität: 300
agh3
Hauptnenner korrekt, jedoch Zähler
⎛ z z
⎞
e e
addh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 + 2
durch Erweiterungszahlen ersetzt
n n
⎝ n1 n2 ⎠
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛ z
⎞
z
e
e
addh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g 1 1 + g 2 2
n2 ⎠
n
n
⎝ n1
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
agh4
Hauptnenner korrekt, jedoch Erwei⎛ z z
⎞
z ⋅e
z ⋅e
addh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 2 + 2 1
terungszahlen vertauscht
n
n
⎝ n1 n2 ⎠
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛ z
⎞
z
z ⋅e
z ⋅e
addh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 2 + g 2 2 1
n2 ⎠
n
n
⎝ n1
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
125
Nr.
Beschreibung
Regeln
agh5
Hauptnenner korrekt, jedoch beide
⎛ z1 z 2 ⎞
z1 ⋅ e1 z 2 ⋅ e1
+
Zähler mit der gleichen Erweite- addh⎜⎜ g 1 , , n ⎟⎟ → g1
n1 n 2 ⎠
n
n
⎝
rungszahl erweitert
e1 = n / n1
Priorität: 300
⎛ z
⎞
z
z ⋅e
z ⋅e
addh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 1 + g 2 2 1
n2 ⎠
n
n
⎝ n1
e1 = n / n1
Priorität: 300
⎛ z z
⎞
z ⋅e
z ⋅e
addh⎜⎜ g 1 1 , 2 , n ⎟⎟ → g1 1 2 + 2 2
n
n
⎝ n1 n 2 ⎠
e2 = n / n 2
Priorität: 300
⎛ z
⎞
z
z ⋅e
z ⋅e
addh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g 1 1 2 + g 2 2 2
n2 ⎠
n
n
⎝ n1
e2 = n / n 2
Priorität: 300
agh6
Hauptnenner korrekt, jedoch nur
⎛ z z
⎞
z ⋅e
z
addh⎜⎜ g 1 1 , 2 , n ⎟⎟ → g1 1 1 + 2
einen Zähler erweitert
n
n
⎝ n1 n 2 ⎠
e1 = n / n1 ,1 ≠ n / n 2
Priorität: 300
⎛ z
⎞
z
z ⋅e
z
addh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 1 + g 2 2
n2 ⎠
n
n
⎝ n1
e1 = n / n1 ,1 ≠ n / n 2
Priorität: 300
⎛ z z
⎞
z
z ⋅e
addh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 + 2 2
n
n
⎝ n1 n2 ⎠
1 ≠ n / n1 , e2 = n / n2
Priorität: 300
⎛ z
⎞
z
z
z ⋅e
addh⎜⎜ g 1 1 , g 2 2 , n ⎟⎟ → g1 1 + g 2 2 2
n2 ⎠
n
n
⎝ n1
1 ≠ n / n1 , e2 = n / n2
Priorität: 300
126
Nr.
Beschreibung
Regeln
agh7
Hauptnenner ersetzt durch Maxiz
z
z + z2
g1 1 + 2 → g1 1
mum
n1 n2
n
7
7 14
n1 ≠ n2 , n = max(n1 , n2 )
Beispiel:
+
=
15 10 15
Priorität: 300
agh8
Hauptnenner ersetzt durch Miniz
z
z + z2
g1 1 + 2 → g1 1
mum
n1 n2
n
7
7 14
n1 ≠ n2 , n = min(n1 , n2 )
Beispiel:
+
=
15 10 10
Priorität: 300
agh9
Hauptnenner ersetzt durch größten
z + z2
z
z
g1 1 + 2 → g1 1
gemeinsamen Teiler (ggT)
n1 n2
n
7
7 14
n1 ≠ n2 , n = ggt (n1 , n2 )
Beispiel:
+
=
15 10 5
Priorität: 300
Bemerkung: Die Diagnoseregeln „agh5“ bis „agh9“ waren bei der Berechnung der Diagnosen in
Anhang C nicht aktiviert.
127
A.2.6 Gemischte und natürliche Zahlen
Tabelle A-8: Diagnoseregeln für die Addition von ganzen und gemischten
Zahlen
Nr.
Beschreibung
Regeln, Anwendungskondition
angok Addition mit gemischten Zahlen korz
z⎞
⎛
a + g → gem⎜ a + g , ⎟
rekt
n
n⎠
⎝
z
z⎞
⎛
g + a → gem⎜ g + a, ⎟
n
n⎠
⎝
ang0
Falsche additive Technik bei natürliz
a+z
a+g → g
cher Zahl
n
a+n
g
z
z+a
+a→ g
n
n+a
z
a+z
→g
n
n
z
z+a
g +a→ g
n
n
a+g
ang1
Addition ersetzt durch Erweitern
z
a⋅z
bzw. Multiplikation bei natürlicher a + g n → g a ⋅ n
Zahl
z
z⋅a
g +a→ g
n
n⋅a
z
a⋅z
→g
n
n
z
z⋅a
g +a→ g
n
n
a+g
ang2
Addition mit Kehrwertbildung mit
z
a⋅n
a+g → g
natürlicher Zahl
n
z
z
n⋅a
+a→ g
n
z
z
z
a+g → g
n
a⋅n
z
z
g +a→ g
n
n⋅a
g
128
A.2.7 Kürzen
Tabelle A-9: Diagnoseregeln für das Kürzen bei Addition
Nr.
Beschreibung
Regeln
abk1
Falsches Kürzen bei Addition
z1 z 2
z :k
z
+
→ 1
+ 2
n1 n2
n1
n2 : k
Beispiel:
4 1 1 1
+ = +
7 4 7 1
(Lörcher: 12%)
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
z1 z 2
z
z :k
+
→ 1 + 2
n1 n2
n1 : k
n2
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
agbk1 Falsches Kürzen bei Addition bei einer
z
z
z :k
z
+ 2
g1 1 + 2 → g1 1
gemischten Zahl
n1 n2
n1
n2 : k
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
g1
z1 z 2
z
z :k
+
→ g1 1 + 2
n1 n2
n1 : k
n2
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
z1
z
z :k
z
+ g2 2 → 1
+ g2 2
n1
n2
n1
n2 : k
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
z1
z
z
z :k
+ g2 2 → 1 + g2 2
n1
n2
n1 : k
n2
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
agk1
Falsches Kürzen bei Addition bei zwei
z
z
z :k
z
+ g2 2
g1 1 + g 2 2 → g1 1
gemischten Zahlen
n1
n2
n1
n2 : k
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
g1
z :k
z1
z
z
+ g 2 2 → g1 1 + g 2 2
n2
n1
n2
n1 : k
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
129
A.3
Subtraktion
A.3.1 Brüche
Tabelle A-10: Diagnoseregeln bei Subtraktion von Brüchen
Nr.
Beschreibung
Regeln
sbok
Subtraktion korrekt
z1 z 2
z − z2
−
→ 1
n n
n
sb0
Subtraktion mit falscher subtraktiver z1 z 2
z − z2
−
→ 1
Technik
n1 n2
n1 − n2
3 2 3−2 1
Beispiel: − =
=
9 6 9−6 3
sb1
Subtraktion ersetzt durch Multiplika- z1 z 2
z ⋅z
−
→ 1 2
tion
n1 n 2
n1 ⋅ n 2
7 5 35
Beispiel: − =
8 8 64
sb2
Subtraktion ersetzt durch Addition
z1 z 2
z + z2
−
→ 1
n n
n
130
A.3.2 Hauptnennerbildung bei der Subtraktion
Tabelle A-11: Diagnoseregeln für die Hauptnennerbildung bei der
Subtraktion von Brüchen
Nr.
Beschreibung
Regeln
sbhok Hauptnenner korrekt, Erweiterungen z
⎛z z
⎞
z
1
− 2 → subh⎜⎜ 1 , 2 , n ⎟⎟
korrekt
n1 n2
⎝ n1 n 2 ⎠
n1 ≠ n2 , n = kgv(n1 , n 2 )
⎛z z
⎞
z ⋅e
z ⋅e
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 1 − 2 2
n
n
⎝ n1 n 2 ⎠
e1 = n / n1 , e2 = n / n 2
Priorität: 300
sbh0
Hauptnenner durch Multiplikation ge- z
⎛z z
⎞
z
1
− 2 → subh⎜⎜ 1 , 2 , n ⎟⎟
bildet, obwohl kleineres kgV existiert
n1 n2
⎝ n1 n2 ⎠
(kein Fehler).
n1 ≠ n2 , n = n1 ⋅ n 2 , n ≠ kgv(n1 , n 2 )
sbh1
Hauptnenner korrekt, jedoch Zähler
⎛z z
⎞
z
z
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 − 2
nicht erweitert
n n
⎝ n1 n 2 ⎠
(Lörcher: 13%)
Priorität: 300
sbh2
Hauptnenner korrekt, jedoch Zähler
⎛z z
⎞
z +e
z + e2
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 1 − 2
additiv erweitert
n
n
⎝ n1 n 2 ⎠
(Lörcher: 13%)
e1 = n / n1 , e2 = n / n2
Priorität: 300
sbh3
Hauptnenner korrekt, jedoch Zähler
⎛z z
⎞
e e
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 − 2
durch Erweiterungszahlen ersetzt
n n
⎝ n1 n 2 ⎠
(Lörcher: 2%)
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
sbh4
Hauptnenner korrekt, jedoch Erweite⎛z z
⎞
z ⋅e
z ⋅e
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 2 − 2 1
rungszahlen vertauscht
n
n
⎝ n1 n 2 ⎠
(Lörcher: 2%)
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
131
Nr.
Beschreibung
Regeln
sbh5
Hauptnenner korrekt, jedoch beide
⎛ z1 z 2 ⎞
z1 ⋅ e1 z 2 ⋅ e1
−
Zähler mit der gleichen Erweiterungs- subh⎜⎜ , , n ⎟⎟ →
n1 n 2 ⎠
n
n
⎝
zahl erweitert
e1 = n / n1
Priorität: 300
⎛z z
⎞
z ⋅e
z ⋅e
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 2 − 2 2
n
n
⎝ n1 n 2 ⎠
e2 = n / n 2
Priorität: 300
sbh6
Hauptnenner korrekt, jedoch nur ei⎛z z
⎞
z ⋅e
z
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 1 − 2
nen Zähler erweitert
n
n
⎝ n1 n 2 ⎠
e1 = n / n1 ,1 ≠ n / n 2
Priorität: 300
⎛z z
⎞
z
z ⋅e
subh⎜⎜ 1 , 2 , n ⎟⎟ → 1 − 2 2
n
n
⎝ n1 n 2 ⎠
1 ≠ n / n1 , e2 = n / n2
Priorität: 300
sbh7
Hauptnenner ersetzt durch Maximum
z1 z 2
z − z2
−
→ 1
n1 n2
n
n1 ≠ n2 , n = max(n1 , n2 )
sbh8
Hauptnenner ersetzt durch Minimum
z1 z 2
z − z2
−
→ 1
n1 n2
n
n1 ≠ n2 , n = min(n1 , n2 )
sbh9
Hauptnenner ersetzt durch größten z1 z 2
z − z2
−
→ 1
gemeinsamen Teiler (ggT)
n1 n2
n
n1 ≠ n2 , n = ggt (n1 , n2 )
Bemerkung: Die Diagnoseregeln „sbh5“ bis „sbh9“ waren bei der Berechnung der Diagnosen in
Anhang C nicht aktiviert.
132
A.3.3 Ganze Zahlen und Brüche
Tabelle A-12: Diagnoseregeln bei Subtraktion von Brüchen und ganzen
Zahlen
Nr.
Beschreibung
snb0
Subtraktion mit falscher subtraktiver
z
Technik bei natürlicher Zahl (voll- a − n →
ständig)
z
−a→
7 10 − 7 3
n
=
Beispiel: 10 − =
5 10 − 5 5
z
a− →
n
z
−a→
n
snb1
Regeln
a−z
a−n
z−a
n−a
a−z
n
z−a
n
Subtraktion ersetzt durch Multiplikaz
a−z
a
−
→
tion bei nat. Zahl (vollständig)
n
a−n
7 14
z
z⋅a
Beispiel: 2 − =
−a →
5 10
n
n⋅a
a−
z
a⋅z
→
n
n
z
z⋅a
−a →
n
n
133
A.3.4 Gemischte Zahlen
Tabelle A-13: Diagnoseregeln bei Subtraktion von gemischten Zahlen
Nr.
Beschreibung
Regeln
sgok
korrekte Subtraktion bei gemischten
z
z
z − z2
g1 1 − 2 → g1 1
Zahlen
n n
n
g
z1 z 2
z + n ⎞ z2
⎛
−
→ gem⎜ g − 1, 1
⎟−
n n
n ⎠ n
⎝
z1 < z 2 , g ≥ 1
g1
sg0
Subtraktion mit falscher subtraktiver
z
z
z − z2
g1 1 − 2 → g1 1
Technik
n1 n 2
n1 − n 2
g1
sg1
sg2
sg3
⎛
z1
z
z ⎞ z
− g 2 2 → gem⎜⎜ g1 − g 2 , 1 ⎟⎟ − 2
n1
n2
n1 ⎠ n 2
⎝
⎛
z1
z
z − z2 ⎞
⎟
− g 2 2 → gem⎜⎜ g1 − g 2 , 1
n1
n2
n1 − n 2 ⎟⎠
⎝
Subtraktion ersetzt durch Multiplikaz
z
z ⋅z
g1 1 − 2 → g1 1 2
tion
n1 n 2
n1 ⋅ n 2
Subtraktion ersetzt durch Addition
Subtraktionsrichtung falsch
3
4
1
Beispiel: 5 − 4 = 1
5
5
5
g1
⎛
z1
z
z ⋅z ⎞
− g 2 2 → gem⎜⎜ g1 − g 2 , 1 2 ⎟⎟
n1
n2
n1 ⋅ n 2 ⎠
⎝
g1
z1 z 2
z + z2
−
→ g1 1
n n
n
g1
z1
z
z + z2 ⎞
⎛
− g 2 2 → gem⎜ g1 − g 2 , 1
⎟
n
n
n ⎠
⎝
g1
z1
z
z − z1 ⎞
⎛
− g 2 2 → gem⎜ g1 − g 2 , 2
⎟
n
n
n ⎠
⎝
g1
z1
z
z − z2 ⎞
⎛
− g 2 2 → gem⎜ g 2 − g1 , 1
⎟
n
n
n ⎠
⎝
134
A.3.5 Hauptnennerbildung bei der Subtraktion von gemischten Zahlen
Tabelle A-14: Diagnoseregeln für die Hauptnennerbildung bei der Subtraktion von gemischten Zahlen
Nr.
Beschreibung
Regeln
sghok Hauptnenner korrekt, Erweiterungen
⎛ z z
⎞
z
z
g1 1 − 2 → subh⎜⎜ g1 1 , 2 , n ⎟⎟
korrekt
n1 n 2
⎝ n1 n 2 ⎠
n1 ≠ n2 , n = kgv(n1 , n2 )
⎛z
⎞
z1
z
z
− g 2 2 → subh⎜⎜ 1 , g 2 2 , n ⎟⎟
n2 ⎠
n1
n2
⎝ n1
n1 ≠ n2 , n = kgv(n1 , n2 )
g1
⎛ z
⎞
z1
z
z
− g 2 2 → subh⎜⎜ g1 1 , g 2 2 , n ⎟⎟
n1
n2
n2 ⎠
⎝ n1
n1 ≠ n 2 , n = kgv(n1 , n 2 )
⎛ z z
⎞
z ⋅e
z ⋅e
subh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 1 − 2 2
n
n
⎝ n1 n 2 ⎠
e1 = n / n1 , e2 = n / n 2
Priorität: 300
⎛z
⎞
z
z ⋅e
z ⋅e
subh⎜⎜ 1 , g 2 2 , n ⎟⎟ → 1 1 − g 2 2 2
n2 ⎠
n
n
⎝ n1
e1 = n / n1 , e2 = n / n 2
Priorität: 300
⎛ z
⎞
z
z ⋅e
z ⋅e
subh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 1 − g 2 2 2
n2 ⎠
n
n
⎝ n1
e1 = n / n1 , e2 = n / n2
Priorität: 300
sgh0
Hauptnenner durch Multiplikation
⎛ z z
⎞
z1 z 2
→ subh⎜⎜ g1 1 , 2 , n ⎟⎟
gebildet, obwohl kleineres kgV exis- g1 −
n1 n 2
⎝ n1 n 2 ⎠
tiert (kein Fehler).
n1 ≠ n2 , n = n1 ⋅ n 2 , n ≠ kgv(n1 , n 2 )
⎛z
⎞
z1
z
z
− g 2 2 → subh⎜⎜ 1 , g 2 2 , n ⎟⎟
n1
n2
n2 ⎠
⎝ n1
n1 ≠ n2 , n = n1 ⋅ n 2 , n ≠ kgv(n1 , n 2 )
g1
⎛ z
⎞
z1
z
z
− g 2 2 → subh⎜⎜ g1 1 , g 2 2 , n ⎟⎟
n1
n2
n2 ⎠
⎝ n1
n1 ≠ n 2 , n = n1 ⋅ n 2 , n ≠ kgv(n1 , n 2 )
135
Nr.
Beschreibung
Regeln
sgh1
Hauptnenner korrekt, jedoch Zähler
⎛ z z
⎞
z
z
subh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 − 2
nicht erweitert
n n
⎝ n1 n 2 ⎠
Priorität: 300
⎛z
⎞
z
z
z
subh⎜⎜ 1 , g 2 2 , n ⎟⎟ → 1 − g 2 2
n2 ⎠
n
n
⎝ n1
Priorität: 300
⎛ z
⎞
z
z
z
subh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 − g 2 2
n2 ⎠
n
n
⎝ n1
Priorität: 300
sgh2
Hauptnenner korrekt, jedoch Zähler
⎛ z z
⎞
z +e
z + e2
subh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 1 − 2
additiv erweitert
n
n
⎝ n1 n 2 ⎠
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛z
⎞
z
z +e
z + e2
subh⎜⎜ 1 , g 2 2 , n ⎟⎟ → 1 1 − g 2 2
n2 ⎠
n
n
⎝ n1
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛ z
⎞
z +e
z + e2
z
subh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 1 − g 2 2
n2 ⎠
n
n
⎝ n1
e1 = n / n1 , e2 = n / n2
Priorität: 300
136
Nr.
Beschreibung
Regeln
sgh3
Hauptnenner korrekt, jedoch Zähler
⎛ z z
⎞
e e
subh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 − 2
durch Erweiterungszahlen ersetzt
n n
⎝ n1 n 2 ⎠
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛z
⎞
z
e
e
subh⎜⎜ 1 , g 2 2 , n ⎟⎟ → 1 − g 2 2
n2 ⎠
n
n
⎝ n1
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛ z
⎞
z
e
e
subh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g 1 1 − g 2 2
n2 ⎠
n
n
⎝ n1
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
sgh4
Hauptnenner korrekt, jedoch Erwei⎛ z z
⎞
z ⋅e
z ⋅e
subh⎜⎜ g1 1 , 2 , n ⎟⎟ → g1 1 2 − 2 1
terungszahlen vertauscht
n
n
⎝ n1 n 2 ⎠
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛z
⎞
z
z ⋅e
z ⋅e
subh⎜⎜ 1 , g 2 2 , n ⎟⎟ → 1 2 − g 2 2 1
n2 ⎠
n
n
⎝ n1
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
⎛ z
⎞
z ⋅e
z
z ⋅e
subh⎜⎜ g1 1 , g 2 2 , n ⎟⎟ → g1 1 2 − g 2 2 1
n2 ⎠
n
n
⎝ n1
¬( z1 = 1, z 2 = 1)
e1 = n / n1 , e2 = n / n2
Priorität: 300
137
A.3.6 Gemischte und natürliche Zahlen
Tabelle A-15: Diagnoseregeln für die Subtraktion von ganzen und gemischten Zahlen
Nr.
Beschreibung
Regeln
sngok Subtraktion gemischter und natürliz
z⎞
⎛
a − g → gem⎜ a − g , ⎟
cher Zahl korrekt
n
n⎠
⎝
a≥g
g
sng0
z
z⎞
⎛
− a → gem⎜ g − a, ⎟
n
n⎠
⎝
g≥a
Subtraktionsrichtung falsch bei natürz
z⎞
⎛
a − g → gem⎜ a − g , ⎟
licher Zahl
n
n⎠
⎝
2
2
a≥g
Beispiel: 2 − 1 = 1
5
5
z
z⎞
⎛
a − g → gem⎜ g − a, ⎟
n
n⎠
⎝
g≤a
138
A.3.7 Kürzen
Tabelle A-16: Diagnoseregeln für das Kürzen bei Subtraktion
Nr.
Beschreibung
Regeln
sbk1
Falsches Kürzen bei Subtraktion
z1 z 2
z :k
z
−
→ 1
− 2
n1 n2
n1
n2 : k
Beispiel:
4 1 1 1
− = −
7 4 7 1
(Lörcher: 12%)
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
z1 z 2
z
z :k
−
→ 1 − 2
n1 n2
n1 : k
n2
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
sgbk1 Falsches Kürzen bei der Subtraktion
z
z
z :k
z
− 2
g1 1 − 2 → g1 1
bei einer gemischten Zahlen
n1 n2
n1
n2 : k
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
g1
z1 z 2
z
z :k
−
→ g1 1 − 2
n1 n2
n1 : k
n2
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
z1
z
z :k
z
− g2 2 → 1
− g2 2
n1
n2
n1
n2 : k
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
z1
z
z
z :k
− g2 2 → 1 − g2 2
n1
n2
n1 : k
n2
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
sgk1
Falsches Kürzen bei der Subtraktion
z
z
z :k
z
− g2 2
g1 1 − g 2 2 → g1 1
bei zwei gemischten Zahlen
n1
n2
n1
n2 : k
∀2 ≤ k ≤ ggt ( z1 , n2 ) : n1 ≠ n2 , k z1 , k n2
g1
z :k
z1
z
z
− g 2 2 → g1 1 − g 2 2
n2
n1
n2
n1 : k
∀2 ≤ k ≤ ggt (n1 , z 2 ) : n1 ≠ n2 , k n1 , k z 2
139
A.4
Multiplizieren
A.4.1 Brüche
Tabelle A-17: Diagnoseregeln für die Multiplikation von Brüchen
Nr.
Beschreibung
Regeln
mbok Multiplikationsaufgabe korrekt
mb0
z1 z 2
z ⋅z
⋅
→ 1 2
n1 n 2
n1 ⋅ n 2
Multiplikation mit falscher additiver z1
Technik
n1
3 6 9
z1
Beispiele: ⋅ =
4 7 11
n
1
3 6 9
⋅ =
4 7 28
3 6 18
oder ⋅ =
4 7 11
oder
⋅
z2
z + z2
→ 1
n2
n1 + n2
⋅
z2
z + z2
→ 1
n2
n1 ⋅ n2
z1 z 2
z ⋅z
⋅
→ 1 2
n1 n2
n1 + n2
(Padberg: 8%, meist flüchtig)
mb0a Multiplikation mit falscher additiver z1 z 2
z + z2
⋅ → 1
Technik bei gleichen Nennern
n n
n
3 4 7
Beispiel: ⋅ =
5 5 5
mb1
Multiplikation ersetzt durch Division
Beispiel:
3 6 21
⋅ =
4 7 24
z1 z 2
z ⋅n
⋅
→ 1 2
n1 n 2
n1 ⋅ z 2
(Padberg: einige)
mb1a Multiplikation ersetzt durch Division z z
⋅ →1
bei identischen Brüchen
n n
3 3
Beispiel: ⋅ = 1
4 4
mb2
Multiplikation mit Hauptnennerbil- z1 z 2
mul ( z1 ⋅ e1 , z 2 ⋅ e2 )
⋅
→
dung (1. Variante kein Fehler)
n1 n 2
n⋅n
3 6 21 ⋅ 24 504
n1 ≠ n2 , n = kgv(n1 , n2 ),
Beispiel: ⋅ =
=
4 7 28 ⋅ 28 784
e = n : n ,e = n : n
1
mb3
1
2
2
Multiplikation mit falscher Hauptnen- z1 z 2
z ⋅ n + z 2 ⋅ n1
⋅
→ 1 2
nertechnik
n1 n2
n1 ⋅ n2
3 6 21 ⋅ 24 504
n = kgv(n1 , n2 ), n : n1 ≠ 1, n : n2 ≠ 2
Beispiel: ⋅ =
=
4 7
28
28
z1 z 2
mul ( z1 ⋅ e1 , z 2 ⋅ e2 )
⋅
→
n1 n2
n
n1 ≠ n2 , n = kgv(n1 , n2 ), e1 = n : n1 , e2 = n : n2
140
Nr.
Beschreibung
Regeln
mb3a Multiplikation mit falscher Hauptnen- z1 z 2
z ⋅z
⋅ → 1 2
nertechnik bei gleichen Nennern
n n
n
3 4 12
Beispiel: ⋅ =
5 5 5
(Padberg: 17%, meist flüchtig)
A.4.2 Ganze Zahlen und Brüche
Tabelle A-18: Diagnoseegeln für die Multiplikation
Nr.
Beschreibung
mnbok Multiplikationsaufgabe bei natürlicher
Zahl korrekt
Regeln
z
a⋅z
→
n
n
z
z⋅a
⋅a →
n
n
a⋅
mnb0 Multiplikation mit falscher additiver
z
a⋅ →
Technik bei natürlicher Zahl
n
z
3 8
3 28
⋅a →
Beispiele: 5 ⋅ = oder 5 ⋅ =
n
5 5
5 5
z
a⋅ →
n
z
⋅a →
n
a+z
n
z+a
n
a⋅n + z
n
z + a⋅n
n
mnb1 Multiplikation ersetzt durch Erweitern
z
a⋅ →
(bei natürlicher Zahl)
n
z
3 15
⋅a →
Beispiel: 5 ⋅ =
n
5 25
a⋅z
a⋅n
z⋅a
n⋅a
(Padberg: 25%)
mnb2 Multiplikation ersetzt durch Division
z
a⋅ →
bei natürlicher Zahl
n
z
3 3
⋅a →
Beispiel: 5 ⋅ =
n
5 25
141
z
a⋅n
z
n⋅a
A.4.3 Gemischte Zahlen
Tabelle A-19: Diagnoseregeln für die Multiplikation von gemischten Zahlen
Nr.
Beschreibung
Regeln
mg0
bei einer gemischten Zahl: Multiplikaz
z⎞
⎛
a ⋅ g → gem⎜ a ⋅ g , ⎟
tion nur mit einem Summanden
n
n⎠
⎝
3
3
z
z⎞
⎛
Beispiele: 5 ⋅ 1 = 5
g
⋅
a
→
gem
g
⋅
a
,
⎜
⎟
10
10
n
n⎠
⎝
3
15
z
a⋅z
oder 5 ⋅ 1 = 1
a⋅g → g
10
10
n
n
z
z⋅a
g ⋅a → g
n
n
mg1
bei einer gemischten Zahl: Addition
z
z⎞
⎛
(verwechselt) nur mit einem Summan- a ⋅ g → gem⎜ a + g , ⎟
n
n⎠
⎝
den
z
z⎞
⎛
g ⋅ a → gem⎜ g + a, ⎟
3
3
n
n⎠
Beispiele: 5 ⋅ 1 = 6
⎝
10
10
z
a+z
3
8
a⋅g → g
oder 5 ⋅ 1 = 1
n
n
10
10
z
z+a
g ⋅a → g
n
n
z1 z 2
z ⋅z
→g 1 2
g ⋅
n1 n 2
n1 ⋅ n 2
z
z ⋅z
z1
⋅g 2 → g 1 2
n1 ⋅ n 2
n2
n1
mg2
bei zwei gemischten Zahlen: getrennte
⎛
z1
z2
z ⋅z ⎞
→ gem⎜⎜ g1 ⋅ g 2 , 1 2 ⎟⎟
Multiplikation der Brüche und natürli- g1 ⋅ g 2
n1
n2
n1 ⋅ n2 ⎠
⎝
chen Zahlen miteinander
1 1
1
Beispiel: 2 ⋅ 4 = 8
2 2
4
mg3
bei zwei gemischten Zahlen: getrennte
⎛
z1
z2
z ⎞ z
→ gem⎜⎜ g1 + g 2 , 1 ⎟⎟ + 2
Addition (verwechselt) der Brüche und g1 ⋅ g 2
n1
n2
n1 ⎠ n2
⎝
natürlichen Zahlen miteinander
⎛
z
z
z ⎞ z
1 1
1
g1 1 ⋅ g 2 2 → gem⎜⎜ g1 ⋅ g 2 , 1 ⎟⎟ + 2
Beispiel: 2 ⋅ 4 = 6
n1
n2
n1 ⎠ n2
⎝
2 2
4
⎛
z
z
z ⎞ z
g1 1 ⋅ g 2 2 → gem⎜⎜ g1 + g 2 , 1 ⎟⎟ ⋅ 2
n1
n2
n1 ⎠ n2
⎝
g1
142
⎛
z1
z
z
z ⎞
⋅ g 2 2 → 1 ⋅ gem⎜⎜ g1 + g 2 , 2 ⎟⎟
n1
n2
n1
n2 ⎠
⎝
A.4.4 Kürzen
Tabelle A-20: Diagnoseregeln für das Kürzen bei Multiplikation
Nr.
Beschreibung
Regeln
mbk1 Falsches Kürzen bei Multiplikation
Beispiel:
2 6 1 3
⋅ = ⋅
3 7 3 7
z1 z 2
z :k z :k
⋅
→ 1 ⋅ 2
n1 n2
n1
n2
∀2 ≤ k ≤ ggt ( z1 , z 2 ) : k z1 , k z 2
z1 z 2
z
z
⋅
→ 1 ⋅ 2
n1 n2
n1 : k n2 : k
∀2 ≤ k ≤ ggt (n1 , n 2 ) : k n1 , k n 2
mnbk1 Falsches Kürzen bei Multiplikation mit
natürlicher Zahl
Beispiel:
2
1
⋅6 = ⋅3
3
3
a⋅
z
z:k
→ div(a, k ) ⋅
n
n
∀2 ≤ k ≤ ggt (a, z ) : k a, k z
z
z:k
⋅a →
⋅ div(a, k )
n
n
∀2 ≤ k ≤ ggt ( z , a ) : k z , k a
143
A.5
Dividieren
A.5.1 Brüche
Tabelle A-21: Diagnoseregeln für die Division von Brüchen
Nr.
Beschreibung
Regeln
dbok Divisionsaufgabe korrekt
z1 z 2
z n
→ 1⋅ 2
:
n1 n 2
n1 z 2
db0
z1 z 2
z z
→ 1⋅ 2
:
n1 n 2
n1 n2
Division ersetzt durch Multiplikation
Beispiel:
2 5 10
: =
5 7 35
db0a
Division ersetzt durch Multiplikation z n
z⋅n
: →
bei invers identischen Brüchen
n z
z⋅n
3 4 12
Beispiel: : =
=1
4 3 12
db1
Division mit Kehrwertbildung an der z1
falschen Stelle
n1
3 6 5 6
z1
Beispiel: : = ⋅
5 25 3 25
n
1
db2
Divisionsrichtung falsch
Beispiel:
db3
Division mit
(kein Fehler)
3 6
3:6 2
: =
=
5 25 5:25 5
:
z2
n ⋅z
→ 1 2
n2
z1 ⋅ n 2
:
z2
n ⋅n
→ 1 2
n2
z1 ⋅ z 2
z1 z 2
z :z
:
→ 2 1
n1 n2
n2 : n1
z1 | z 2 ,n1 | n2
Hauptnennerbildung z1 z 2
z ⋅e z ⋅e
→ 1 1: 2 2
:
n1 n 2
n
n
n1 ≠ n 2 , n = kgv(n1 , n 2 ), e1 = n : n1 , e2 = n : n2
db4
Division mit falscher Hauptnenner- z1 z 2
div( z1 ⋅ n2 , z 2 ⋅ n1 )
:
→
technik
n1 n2
n1 ⋅ n2
3 6 75:30
z 2 ⋅ n1 | z1 ⋅ n2
Beispiel: : =
5 25 125
z1 ⋅ n 2
z ⋅n
z1 z 2
:
→ 2 1
n1 ⋅ n2
n1 n2
¬( z 2 ⋅ n1 | z1 ⋅ n2 )
db4a
Division mit falscher Hauptnenner- z1 z 2
z :z
:
→ 1 2
technik bei gleichen Nennern
n n
n
2 1 2
z 2 z1
Beispiel: : =
5 5 5
(Padberg 4%, meist flüchtig)
144
Nr.
Beschreibung
Regeln
db5
Division mit additiver Technik
z1 z 2
z + n2
:
→ 1
n1 n2
n1 + z 2
Beispiel:
3 6 3 + 25
: =
5 25 5 + 6
z1 z 2
z ⋅n
:
→ 1 2
n1 n2
n1 + z 2
z1 z 2
z + n2
:
→ 1
n1 n2
n1 ⋅ z 2
db6
Division ersetzt durch Subtraktion bei z1
gleichen Nennern
n
z1
2 1 1
Beispiel: : =
5 5 5
n
145
z2
z − z2
z1 > z 2
→ 1
n
n
z
z − z1
: 2 → 2
z 2 > z1
n
n
:
A.5.2 Ganze Zahlen und Brüche
Tabelle A-22: Diagnoseregeln für die Division
Nr.
Beschreibung
Regeln
dnbok Divisionsaufgabe korrekt
z
n
→ a⋅
n
z
z
z 1
:a → ⋅
n
n a
a:
dnb0 Division ersetzt durch Multiplikation,
z
falls ein Operand eine natürliche Zahl a : n →
ist
z
:a →
5 50
3
6
n
Beispiel: :2 = oder 10: =
2 2
4
8
a⋅z
n
z⋅a
n
(Padberg: 10%)
dnb1 Division ersetzt durch Erweitern
Beispiel:
5 50
3
6
:2 = oder 10: =
2 20
4
8
(Padberg: 6%)
dnb2 Division ersetzt durch Kürzen
Beispiel:
6
3
:2 =
4
8
z
a⋅z
→
n
a⋅n
z
z⋅a
:a →
n
n⋅a
a:
z
z:a
→
n
n:a
a | z ,a | n
z
z:a
:a →
n
n:a
a | z ,a | n
a:
dnb3 Division mit Kehrwertbildung an der
z
a: →
falschen Stelle bei natürlicher Zahl
n
z
3
4 1 4
a: →
Beispiel: :2 = ⋅ =
n
4
3 2 6
z
:a →
n
z
:a →
n
1 z
⋅
a n
1 n
⋅
a z
n
⋅a
z
n 1
⋅
z a
dnb4 Division mit falscher Hauptnennerz
a:z
a: →
technik
n
n
z|a
dnb5 Division mit additiver Technik bei naz
z
a: →a
türlicher Zahl
n
n
z
z
5
5
:a →a
Beispiel: 10: = 10
n
n
2
2
146
A.5.3 Gemischte Zahlen
Tabelle A-23: Diagnoseregeln für die Division von gemischten Zahlen
Nr.
Beschreibung
dgok
Divisionsaufgabe korrekt
dg1
Kehrwertbildung ohne Ganzzahl
Regeln
g1
z1 z 2
z n
→ g1 1 ⋅ 2
:
n1 n 2
n1 z 2
a : g2
z2
n
→ a ⋅ g2 2
n2
z2
z1
z
z
n
: g2 2 → 1 ⋅ g2 2
n1
n2
n1
z2
g1
dg2
z1
z
z
n
: g 2 2 → g1 1 ⋅ g 2 2
n1
n2
n1
z2
bei einer gemischten Zahl: Division
z
z⎞
⎛
a : g → gem⎜ a : g , ⎟
nur mit einem Summanden
n
n⎠
⎝
g|a
z
a z
a:g → +
n
g n
a:g
g
z
z⎞
⎛
→ gem⎜ g : a, ⎟
n
n⎠
⎝
a|g
z⎞
z
⎛
: a → gem⎜ g : a, ⎟
n
n⎠
⎝
a|g
z
g z
:a → +
n
a n
z
z⎞
⎛
g : a → gem⎜ a : g , ⎟
n
n⎠
⎝
g|a
g
g
z1 z 2
z ⋅n
→g 1 2
:
n1 n 2
n1 ⋅ z 2
z1
z
1 z ⋅n
:g 2 → + 1 2
n1
n2
g n1 ⋅ z 2
z1
z
z ⋅n
:g 2 →g 1 2
n1
n2
n1 ⋅ z 2
147
Nr.
Beschreibung
Regeln
dg3
bei zwei gemischten Zahlen: getrennte
⎛
z1
z2
z :n ⎞
→ gem⎜⎜ g 1 : g 2 , 1 2 ⎟⎟
Division der Brüche und natürlichen g1 : g 2
n1
n2
n1 : z 2 ⎠
⎝
Zahl miteinander
g 2 | g1
g1
⎛ g z :n ⎞
z1
z
: g 2 2 → add ⎜⎜ 1 , 1 2 ⎟⎟
n1
n2
⎝ g 2 n1 : z 2 ⎠
g1
⎛
z1
z
z :n ⎞
: g 2 2 → gem⎜⎜ g 2 : g1 , 1 2 ⎟⎟
n1
n2
n1 : z 2 ⎠
⎝
g1 | g 2
A.5.4 Kürzen
Tabelle A-24: Diagnoseregeln für das Kürzen bei der Division
Nr.
Beschreibung
Regeln
dbk1
Falsches Kürzen bei Division
z1 z 2
z :k z
⋅
→ 1 ⋅ 2
n1 n 2
n1 n 2 : k
Beispiel:
2 5 2 1
: = :
5 7 1 7
∀2 ≤ k ≤ ggt ( z1 , n2 ) : k z1 , k n 2
z1 z 2
z
z :k
⋅
→ 1 ⋅ 2
n1 n 2
n1 : k n 2
∀2 ≤ k ≤ ggt (n1 , z 2 ) : k n1 , z n2
148
A.6
Kürzen
A.6.1 Bruch zu Bruch
Tabelle A-25: Diagnoseregeln für das Kürzen
Nr.
Beschreibung
Regeln
kok
Kürzen korrekt
z1
z :k
→ 1
n1
n1 : k
∀2 ≤k ≤ ggt ( z1 , n1 ) : k z1 ,k n1
Verbotene Kontexte:
k1
Kürzungszahl tritt im Ergebnis auf
2 1
Beispiel: =
822
+
z2
z
mit n1 = n 2 , 2 + mit n1 = n 2
n2
n2
−
z2
z
mit n1 = n 2 , 2 − mit n1 = n 2
n2
n2
+g
z2
z
mit n1 = n 2 , g 2 + mit n1 = n 2
n2
n2
−g
z2
z
mit n1 = n 2 , g 2 − mit n1 = n 2
n2
n2
z
div( z , k )
→
n
k
∀2 ≤ k ≤ ggt ( z , n) :
k z , k n, k ≠ n : k
z
k
→
n
div(n, k )
∀2 ≤ k ≤ ggt ( z , n) :
k z , k n, k ≠ z : k
Verbotene Kontexte (jeweils):
149
+
z2
z
mit n1 = n 2 , 2 + mit n1 = n 2
n2
n2
−
z2
z
mit n1 = n 2 , 2 − mit n1 = n 2
n2
n2
+g
z2
z
mit n1 = n 2 , g 2 + mit n1 = n 2
n2
n2
−g
z2
z
mit n1 = n 2 , g 2 − mit n1 = n 2
n2
n2
A.6.2 Bruch zu Ganzzahl
Tabelle A-26: Diagnoseregeln für das Kürzen
Nr.
Beschreibung
Regeln
kokn
Kürzen korrekt
z
→z
1
Verbotener Kontext:
gem( g , )
k1n
Falsches Kürzen bei Identität
a
→0
a
a
→a
a
Verbotener Kontext (jeweils):
gem( g , )
150
A.7
Umwandlung
Tabelle A-27: Diagnoseregeln für die Umwandlung von Brüchen und gemischten Zahlen
Nr.
Beschreibung
Regeln
ugbok Umwandlung einer gemischten Zahl in
einen Bruch korrekt
g
z
g ⋅n + z
→
n
n
Priorität: 50
ugb1
bei Umwandlung einer gemischten
z
g+z
Zahl in einen Bruch Ganzzahl zum g n → n
Zähler addiert
Beispiel: 2
3 5
=
4 4
Tabelle A-28: Diagnoseregeln für die Umwandlung
Nr.
Beschreibung
Regeln
ubgok Umwandlung eines Bruchs in eine ge- z
mischte Zahl
z2
n
n
z > n , g = ⎣z : n ⎦, z 2 = z mod n, z 2 ≠ 0
→g
Priorität: 50
151
Anhang B: Statistiken zur ersten Phase I
Im Abschnitt B des Anhangs soll die Entwicklung einiger „Kenndaten“ in den erste Phasen der
Fehlerdiagnose im zeitlichen Verlauf der ersten 5 Sekunden gezeigt werden. Folgende Aufgaben
wurden als Beispiele ausgewählt:
2
5
13 + 46
4 12
212 + 4
6 8
8+6
12
3
3 8 + 112
Die Aufgaben wurden hierbei so ausgewählt, daß zahlreiche Möglichkeiten zum korrekten und fehlerhaften Kürzen existieren, damit die Diagnose auch tatsächlich fünf Sekunden rechnet.
Zu jeder Aufgabe werden im folgenden vier Diagramme gezeigt. Das Diagramm „Nachfolger und
Terme“ zeigt, wie viele Elemente von Nachfolgermengen berechnet wurden und wie viele Terme
hierfür gespeichert werden müssen. Aufgrund der Strukturteilung der Terme werden weniger verschiedene Terme als Elemente von Nachfolgermengen berechnet.
Das jeweils zweite Diagramm „Diagnosen“ zeigt die Anzahl der durch die Nachfolgermengen dargestellten Diagnosen im zeitlichen Verlauf. Die Anzahl der Diagnosen muß für derartige Statistiken
extra berechnet werden. Hierzu müssen alle mögliche Diagnosen explizit aufgezählt werden. Durch
die hohe Anzahl der indirekt berechneten Diagnosen war es für die letzte der vier Aufgaben nur für
die ersten vier Meßzeitpunkte möglich, die Anzahl der Diagnosen zu berechnen9. Im dritten Diagramm wird die Anzahl der Diagnosen gezeigt, deren Länge kürzer als 15 Rechenschritte ist. Dies
ist eine für die Bruchrechnung und die meisten Schüler realistische Obergrenze.
Der Speicherbedarf der ersten Phase des Diagnosealgorithmus wird in dem jeweils viertem Diagramm „Speicherbelegung“ gezeigt. Hierbei wird sowohl der Speicherbedarf für alle Nachfolgermengen (Gesamt) als auch auf einer zweiten logarithmischen Skala der durchschnittliche Speicherbedarf pro Diagnose gezeigt. Durch Strukturteilung wird dabei i.A. weniger als ein Bit pro Diagnose
benötigt.
9
Die Berechnung der Diagnosen für den fünften Meßzeitpunkt wurde nach 150 Stunden abgebrochen.
152
2
5
1 +4
3
6
Nachfolger und Terme
10000
9000
8000
Anzahl
7000
6000
5000
4000
3000
2000
1000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Nachfolger
Terme
Abbildung B-1: Berechnete Elemente von Nachfolgermengen und berechnete mögliche Schülerlösungen (Terme) im zeitlichen Verlauf
2
5
1 +4
3
6
Diagnosen
250.000.000
Diagnosen
200.000.000
150.000.000
100.000.000
50.000.000
0
0
1000
2000
3000
4000
5000
Zeit [ms]
Abbildung B-2: Anzahl der durch die Nachfolgermengen dargestellten Diagnosen im zeitlichen Verlauf
153
6000
2
5
1 +4
3
6
Diagnosen (Länge < 15)
80.000
70.000
Diagnosen
60.000
50.000
40.000
30.000
20.000
10.000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Abbildung B-3: Anzahl der durch die Nachfolgermengen dargestellten Diagnosen aus weniger als 15 Rechenschritten im zeitlichen Verlauf
2
5
1 +4
3
6
Speicherbelegung
1
4.000.000
Speicher [Byte]
3.000.000
2.500.000
0,1
2.000.000
1.500.000
1.000.000
500.000
0
0
1000
2000
3000
4000
Zeit
Gesamt
pro Diagnose
Abbildung B-4: Speicherbelegung im zeitlichen Verlauf
154
5000
0,01
6000
Speicher pro Diagnose
[Byte]
3.500.000
2
4 12
+
12 4
Nachfolger und Terme
18000
16000
14000
Anzahl
12000
10000
8000
6000
4000
2000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Nachfolger
Terme
Abbildung B-5: Berechnete Elemente von Nachfolgermengen und berechnete mögliche Schülerlösungen (Terme) im zeitlichen Verlauf
4 12
+
12 4
Diagnosen
6.000.000.000
5.000.000.000
4.000.000.000
Diagnosen
2
3.000.000.000
2.000.000.000
1.000.000.000
0
0
1000
2000
3000
4000
Zeit [ms]
Abbildung B-6: Anzahl der durch die Nachfolgermengen dargestellten Diagnosen im zeitlichen Verlauf
155
5000
6000
2
4 12
+
12 4
Diagnosen (Länge < 15)
900.000
800.000
700.000
Diagnosen
600.000
500.000
400.000
300.000
200.000
100.000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Abbildung B-7: Anzahl der durch die Nachfolgermengen dargestellten Diagnosen aus weniger als 15 Rechenschritten im zeitlichen Verlauf
4 12
+
12 4
Speicherbelegung
3.000.000
100
2.500.000
10
2.000.000
1
1.500.000
0,1
1.000.000
0,01
500.000
0,001
0
0
1000
2000
3000
4000
Zeit
Gesamt
pro Diagnose
Abbildung B-8: Speicherbelegung im zeitlichen Verlauf
156
5000
0,0001
6000
Speicher pro Diagnose
[Byte]
Speicher [Byte]
2
6 8
+
8 6
Nachfolger und Terme
18000
16000
14000
Anzahl
12000
10000
8000
6000
4000
2000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Nachfolger
Terme
Abbildung B-9: Berechnete Elemente von Nachfolgermengen und berechnete mögliche Schülerlösungen (Terme) im zeitlichen Verlauf
6 8
+
8 6
Diagnosen
3.000.000.000
2.500.000.000
Diagnosen
2.000.000.000
1.500.000.000
1.000.000.000
500.000.000
0
0
1000
2000
3000
4000
5000
Zeit [ms]
Abbildung B-10: Anzahl der durch die Nachfolgermengen dargestellten
Diagnosen im zeitlichen Verlauf
157
6000
6 8
+
8 6
Diagnosen (Länge < 15)
1.000.000
900.000
800.000
Diagnosen
700.000
600.000
500.000
400.000
300.000
200.000
100.000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Abbildung B-11: Anzahl der durch die Nachfolgermengen dargestellten
Diagnosen aus weniger als 15 Rechenschritten im zeitlichen Verlauf
6 8
+
8 6
Speicherbelegung
10
3.000.000
Speicher [Byte]
1
2.000.000
0,1
1.500.000
1.000.000
0,01
500.000
0
0
1000
2000
3000
4000
Zeit
Gesamt
pro Diagnose
Abbildung B-12: Speicherbelegung im zeitlichen Verlauf
158
5000
0,001
6000
Speicher pro Diagnose
[Byte]
2.500.000
3
12
3
+1
8
12
Nachfolger und Terme
30000
25000
Anzahl
20000
15000
10000
5000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Nachfolger
Terme
Abbildung B-13: Berechnete Elemente von Nachfolgermengen und berechnete mögliche Schülerlösungen (Terme) im zeitlichen Verlauf
3
12
+1
12
8
Diagnosen
14.000.000.000
12.000.000.000
10.000.000.000
Diagnosen
3
8.000.000.000
6.000.000.000
4.000.000.000
2.000.000.000
0
0
1000
2000
3000
4000
Zeit [ms]
Abbildung B-14: Anzahl der durch die Nachfolgermengen dargestellten
Diagnosen im zeitlichen Verlauf
159
5000
6000
12
3
+1
8
12
Diagnosen (Länge < 15)
160.000
140.000
Diagnosen
120.000
100.000
80.000
60.000
40.000
20.000
0
0
1000
2000
3000
4000
5000
6000
Zeit [ms]
Abbildung B-15: Anzahl der durch die Nachfolgermengen dargestellten
Diagnosen aus weniger als 15 Rechenschritten im zeitlichen Verlauf
3
12
+1
12
8
Speicherbelegung
3.000.000
100
2.500.000
10
1
2.000.000
0,1
1.500.000
0,01
1.000.000
0,001
500.000
0,0001
0
0
1000
2000
3000
4000
Zeit
Gesamt
pro Diagnose
Abbildung B-16: Speicherbelegung im zeitlichen Verlauf
160
5000
0,00001
6000
Speicher pro Diagnose
[Byte]
3
Speicher [Byte]
3
Anhang C: Rechengraphen
Für die Aufstellung der Diagnoseregeln eines Diagnosesystems stellt die Darstellung der verschiedenen Rechenwege der Schüler als Rechengraph eine wichtige Hilfe dar. Ein Rechengraph ist ein
gerichteter Graph, dessen Knoten durch die Aufgabenstellung und die (Zwischen-) Ergebnisse der
Schüler und dessen Kanten durch ihre Rechnungen gegeben werden. Die Beschriftung der Kanten
gibt an, wie viele Schüler diese Rechnung verwendet haben. Die Beschriftung der Kante zwischen
der Aufgabenstellung und dem künstlichen Knoten „NB“ gibt an, wie viele Schüler die Aufgabe
nicht bearbeitet haben. Abbildung C-1 zeigt ein Beispiel für einen Rechengraphen.
Abbildung C-1: Beispiel für einen Rechengraph
Die den Schülern gestellte Aufgabe
6
8
kürzten z.B. 6 Schüler fehlerhaft zu
2
4
. Weitere 3 Schüler
kamen über einen zusätzlichen Zwischenschritt zum gleichen Ergebnis. Bei der Aufstellung der Diagnoseregeln eines Diagnosesystems kann nun für jede Kante des Rechengraphs überprüft werden,
ob die zugehörige Rechnung mit den Diagnoseregeln erklärbar ist. Gegebenenfalls kann das Diagnosesystem gezielt erweitert werden.
Im Rahmen der 7.-Klassen Studie wurden alle fehlerhaften und alle unvollständigen Rechnungen
der Schüler in einer Datenbank erfaßt. Durch die halbautomatische Darstellung dieser Daten in
Form von Rechengraphen konnte das auf der Basis der Literatur (siehe Anhang A) erstellte Diagnosesystem zur Bruchrechnung um zahlreiche Diagnoseregeln ergänzt werden. Die restlichen Seiten
des Anhangs C dokumentieren die Rechengraphen zu den Aufgaben der 7.-Klassen-Studie. Die Rechengraphen einiger Aufgaben waren dabei so komplex, daß eine übersichtliche Darstellung nur
durch eine Vereinfachung der Graphen möglich wurde. Hierzu wurden alle Kanten entfernt die Rechenwege darstellen, die nur von einem einzigen Schüler verfolgt wurden. Von den so entstehenden
Zusammenhangskomponenten wird in der Dokumentation nur die Größte dargestellt.
Die Rechengraphen zur Bruchrechnung werden durch Tabellen mit den von BugFix berechneten
Diagnosen für die wichtigsten korrekten und fehlerhaften Rechenschritte ergänzt. Den Tabellen
161
liegt eine äußerste knappe Rechenzeit von 0,5 Sekunden für die erste Phase der Fehlerdiagnose zugrunde. In realen Anwendungen stehen hingegen zwischen 5 bis 10 Sekunden zur Verfügung.
C.1
Verzeichnis der Rechengraphen
Die Reihenfolge der Darstellung der Rechengraphen der 7.-Klassen-Studie orientiert sich an der Art
der Aufgabenstellung. Aufgaben mit ähnlichen Schwierigkeitsfaktoren wurden dabei hintereinander
dargestellt um die Rechengraphen besser vergleichen zu können. Das folgende Verzeichnis gibt an,
welcher Rechengraph auf welcher Seite zu finden ist.
Übungsblatt 1
2a Rechengraph C-1
2b Rechengraph C-2
2c Rechengraph C-5
2d Rechengraph C-8
3a Rechengraph C-14
3b Rechengraph C-17
3c Rechengraph C-11
3d Rechengraph C-18
3e Rechengraph C-23
3f Rechengraph C-26
5a Rechengraph C-29
5b Rechengraph C-36
5c Rechengraph C-32
5d Rechengraph C-42
5e Rechengraph C-33
5f Rechengraph C-37
Übungsblatt 2
2a Rechengraph C-6
2b Rechengraph C-3
2c Rechengraph C-9
3a Rechengraph C-15
3b Rechengraph C-21
3c Rechengraph C-12
163
164
166
168
173
176
170
177
182
185
187
194
190
200
191
195
3d Rechengraph C-24
3e Rechengraph C-19
3f Rechengraph C-27
5a Rechengraph C-38
5b Rechengraph C-30
5c Rechengraph C-43
5d Rechengraph C-39
5e Rechengraph C-34
Übungsblatt 3
2a Rechengraph C-7
2b Rechengraph C-4
2c Rechengraph C-10
3a Rechengraph C-16
3b Rechengraph C-22
3c Rechengraph C-13
3d Rechengraph C-25
3e Rechengraph C-20
3f Rechengraph C-28
5a Rechengraph C-40
5b Rechengraph C-31
5c Rechengraph C-44
5d Rechengraph C-41
5e Rechengraph C-35
167
165
169
174
180
171
162
183
178
186
196
188
201
197
192
168
165
169
175
181
172
184
179
186
198
189
202
199
193
C.2
Bruchrechnung
C.2.1 Kürzen
Übungsblatt 1
Aufgabe 2a
6
=
8
Anzahl Schüler 505
korrekt
476 (94%)
unvollständig
0 (0%)
fehlerhaft
24 (5 %)
nicht bearbeitet
5 (1%)
Rechengraph C-1: Übungsblatt 1, Aufgabe 2a
Von
Nach
Anzahl Diagnosen
6
8
2
4
6
6
8
1
2
4
2
4
6
8
6
8
4
6
6
8
6
8
1
2
4
6
3
4
2
4
2
2
3
8
6
8
1
4
k1/2, dnok
k1/2, dnok, kok, dnok, dnok
k1/2, dnok, k1/2, dnok, k1/1, dnok
k1/1, dnok, ubgok, ugb1, anok, k1/1, dnok
kok, dnok, dnok
k1/2, dnok, k1/1, dnok
3
keine Diagnose
3
kok, dnok, dnok
3
keine Diagnose
2
k1/2, dnok, k1/2, dnok
k1/1, dnok, ubgok, ugb1, anok
2
keine Diagnose
2
k1/2, dnok, k1/2, dnok, kok, dnok, dnok, kokn
k1/1, dnok, ubgok, ugb1, anok, kok, dnok, dnok, kokn
k1/2, dnok, k1/2, dnok, kok, dnok, dnok, k1n/2
k1/1, dnok, ubgok, ugb1, anok, kok, dnok, dnok, k1n/2
163
Übungsblatt 1
Aufgabe 2b
9
=
18
Anzahl Schüler 505
korrekt
387 (77%)
unvollständig
18 (4%)
fehlerhaft
88 (17%)
nicht bearbeitet
12 (2%)
Rechengraph C-2: Übungsblatt 1, Aufgabe 2b
Von
9
18
9
18
3
6
9
18
9
18
9
18
Nach
1
9
3
6
1
3
2
1
3
1
2
Anzahl Diagnosen
55
k1/1, dnok
35
kok, dnok, dnok
16
k1/1, dnok
4
2
2
kok, dnok, dnok, k1/2, dnok, ubgok, ugb1, anok, k1n/2
[1 weitere Diagnose]
kok, dnok, dnok, k1/1, dnok
k1/1, dnok, k1/1, dnok
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
164
Übungsblatt 2
Aufgabe 2b
6
=
24
Anzahl Schüler 300
korrekt
276 (92%)
unvollständig
5 (2%)
fehlerhaft
19 (6%)
nicht bearbeitet
0 (0%)
Rechengraph C-3: Übungsblatt 2, Aufgabe 2b
Von
6
24
6
24
6
24
6
24
6
24
Nach
1
6
3
12
4
1
3
3
8
Übungsblatt 3
Aufgabe 2b
Anzahl Diagnosen
7
k1/1, dnok
k1/2, dnok, kok, dnok, dnok
4
kok, dnok, dnok
4
keine Diagnose
3
kok, dnok, dnok, k1/1, dnok
k1/2, dnok, k1/2, dnok, kok, dnok, dnok
2
k1/2, dnok
9
=
36
Anzahl Schüler 234
korrekt
230 (98%)
unvollständig
1 (<1%)
fehlerhaft
3 (1%)
nicht bearbeitet
0 (0%)
Rechengraph C-4: Übungsblatt 3, Aufgabe 2b
165
Übungsblatt 1
Aufgabe 2c
36
=
12
Anzahl Schüler 505
korrekt
320 (63%)
unvollständig
129 (25%)
fehlerhaft
45 (9%)
nicht bearbeitet
11 (2%)
Rechengraph C-5: Übungsblatt 1, Aufgabe 2c
Von
Nach
36
12
3
1
36
12
36
12
36
12
36
12
6
2
12
1
18
6
6
6
36
12
36
12
Anzahl Diagnosen
121
6
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok, kok, dnok, dnok
k1/1, dnok, k1/2, dnok
k1/1, dnok, kok, dnok, dnok, k1/2, dnok
kok, dnok, dnok, kok, dnok, dnok, k1/1, dnok, k1/2, dnok
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
5
k1/2, dnok
5
kok, dnok, dnok
4
k1/1, dnok
1
3
4
k1/2, dnok, kok, dnok, dnok
k1/1, dnok, k1/1, dnok
kok, dnok, dnok, k1/1, dnok, k1/1, dnok
kok, dnok, dnok, kok, dnok, dnok, k1/1, dnok, k1/1, dnok
6
3
3
kok, dnok, dnok, k1/1, dnok
166
Übungsblatt 2
Aufgabe 2a
56
=
8
Anzahl Schüler 300
korrekt
248 (83%)
unvollständig
35 (12%)
fehlerhaft
17 (6%)
nicht bearbeitet
0 (0%)
Rechengraph C-6: Übungsblatt 2, Aufgabe 2a
Von
Nach
Anzahl Diagnosen
56
8
7
1
32
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok, kok, dnok, dnok
k1/1, dnok, k1/1, dnok, kok, dnok, dnok
56
8
8
1
4
k1/2, dnok
56
8
14
2
3
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
k1/1, dnok, k1/1, dnok
56
8
8
1
7
8
2
k1/1, dnok
8
2
kokn
167
Übungsblatt 3
Aufgabe 2a
54
=
9
Anzahl Schüler 234
korrekt
216 (92%)
unvollständig
14 (6%)
fehlerhaft
3 (1%)
nicht bearbeitet
1 (<1%)
Rechengraph C-7: Übungsblatt 3, Aufgabe 2a
Von
54
9
Nach
6
1
Übungsblatt 1
Aufgabe 2d
Anzahl Diagnosen
13
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
7
=
7
Anzahl Schüler 505
korrekt
391 (77%)
unvollständig
91 (18%)
fehlerhaft
9 (2%)
nicht bearbeitet
14 (3%)
Rechengraph C-8: Übungsblatt 1, Aufgabe 2d
Von
7
7
7
7
7
7
Nach
Anzahl Diagnosen
1
1
90
7
3
0
2
kok, dnok, dnok
k1n/2
k1/2, dnok, kokn
k1n/1
kok, dnok, dnok, k1n/1
168
Übungsblatt 2
Aufgabe 2c
9
=
9
Anzahl Schüler 300
korrekt
286 (95%)
unvollständig
12 (4%)
fehlerhaft
2 (1%)
nicht bearbeitet
0 (0%)
Rechengraph C-9: Übungsblatt 2, Aufgabe 2c
Von
9
9
Nach
1
1
Übungsblatt 3
Aufgabe 2c
Anzahl Diagnosen
12
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
8
=
8
Anzahl Schüler 234
korrekt
230 (98%)
unvollständig
4 (2%)
fehlerhaft
0 (0%)
nicht bearbeitet
0 (0%)
Rechengraph C-10: Übungsblatt 3, Aufgabe 2c
Von
8
8
Nach
1
1
Anzahl Diagnosen
4
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok, kok, dnok, dnok
k1/1, dnok, k1/1, dnok, kok, dnok, dnok
k1/2, dnok, k1/1, dnok, kok, dnok, dnok
k1/2, dnok, k1/2, dnok, kok, dnok, dnok
169
C.2.2 Addition
Übungsblatt 1
Aufgabe 3c
2 3
2 +1 =
3 5
Anzahl Schüler 505
korrekt
284 (56%)
unvollständig
43 (9%)
fehlerhaft
159 (31%)
nicht bearbeitet
19 (4%)
Vereinfachung keine Einfachkanten (169 Kanten, 133 Knoten, 3 Kanten höherer Ordnung)
Rechengraph C-11: Übungsblatt 1, Aufgabe 3c
Von
Nach
Anzahl Diagnosen
2
3
23 + 15
2
3
23 + 15
5
38
33
agok/2, anok, ag0, anok, anok
8 8
3+5
26
ugbok, mnok, anok, ugbok, mnok, anok
2
3
23 + 15
64
15
2
3
23 + 15
16
15
2
3
23 + 15
8 8
3+5
2
3
23 + 15
8 8
3+5
19
315
1
115
10
9
215 + 115
40 24
15 + 15
7 8
3+5
16
8
26
18
aghok/2, aghok/4, mnok, mnok, agok/2, anok, ugbok, mnok, anok, abok, anok
ugbok, mnok, anok, ugbok, mnok, anok, ab1, mnok, mnok
ugbok, mnok, anok, ugbok, mnok, anok, abhok/1, abh1, ab1a, mnok
[30 weitere Diagnosen]
aghok/2, aghok/4, mnok, mnok, agok/2, anok, agok/1, anok
agok/2, anok, aghok/1, aghok/3, mnok, mnok, agok/1, anok
9
ubgok
7
aghok/2, aghok/4, mnok, mnok
7
abhok/1, abhok/2, mnok, mnok
6
keine Diagnose
6
ab0, anok, anok
170
Übungsblatt 2
Aufgabe 3c
8
5
1 +2 =
5
8
Anzahl Schüler 300
korrekt
209 (70%)
unvollständig
21 (7%)
fehlerhaft
68 (23%)
nicht bearbeitet
2 (1%)
Vereinfachung keine Einfachkanten (156 Kanten, 141 Knoten, 2 Kanten höherer Ordnung)
Rechengraph C-12: Übungsblatt 2, Aufgabe 3c
Von
Nach
8
5
15 + 28
8
5
15 + 28
8
5
15 + 28
13 21
5 + 8
89
340
64
25
140 + 240
8
5
15 + 28
Anzahl Diagnosen
26
ugbok, mnok, anok, ugbok, mnok, anok
11
aghok/2, aghok/4, mnok, mnok, agok/2, anok, agok/1, anok
agok/2, anok, aghok/1, aghok/3, mnok, mnok, agok/1, anok
8
aghok/2, aghok/4, mnok, mnok
209
40
8
aghok/2, aghok/4, mnok, mnok, agok/2, anok, ugbok, mnok, anok, abok, anok
agok/2, anok, aghok/1, aghok/3, mnok, mnok, ugbok, mnok, anok, abok, anok
agok/2, anok, aghok/1, ugbok, mnok, anok, abhok/2, mnok, mnok, abok, anok
[26 weitere Diagnosen]
13 21
5 + 8
104 105
40 + 40
8
abhok/1, abhok/2, mnok, mnok
104 105
40 + 40
209
40
109
40
4
abok, anok
3
keine Diagnose
56
25
140 + 240
3
keine Diagnose
29
240
3
ubgok
104 105
40 + 40
8
5
15 + 28
109
40
171
Übungsblatt 3
Aufgabe 3c
6
7
1 +3 =
7
6
Anzahl Schüler 234
korrekt
187 (80%)
unvollständig
4 (2%)
fehlerhaft
47 (20%)
nicht bearbeitet
0 (0%)
Rechengraph C-13: Übungsblatt 3, Aufgabe 3c
Von
Nach
6
7
17 + 36
13 25
7 + 6
Anzahl Diagnosen
17
ugbok, mnok, anok, ugbok, mnok, anok
6
7
17 + 36
253
42
8
aghok/2, aghok/4, mnok, mnok, agok/2, anok, ugbok, mnok, anok, abok, anok
agok/2, anok, aghok/1, aghok/3, mnok, mnok, ugbok, mnok, anok, abok, anok
[18 weitere Diagnosen]
13 25
7 + 6
6
7
17 + 36
6
7
17 + 36
6
7
17 + 36
78 175
42 + 42
1
1
11 + 31
8
abhok/1, abhok/2, mnok, mnok
3
agk1/1, dnok, dnok, agk1/2, dnok, dnok
agk1/1, dnok, dnok, agk1/1, dnok, dnok, agk1/2, dnok, dnok
36
49
142 + 342
3
aghok/2, aghok/4, mnok, mnok
85
442
2
aghok/2, aghok/4, mnok, mnok, agok/2, anok, agok/1, anok
agok/2, anok, aghok/1, aghok/3, mnok, mnok, agok/1, anok
172
C.2.3 Subtraktion
Übungsblatt 1
Aufgabe 3a
5 3
− =
8 8
Anzahl Schüler 505
korrekt
363 (72%)
unvollständig
109 (22%)
fehlerhaft
25 (5%)
nicht bearbeitet
8 (2%)
Rechengraph C-14: Übungsblatt 1, Aufgabe 3a
Von
Nach
Anzahl Diagnosen
5 3
8-8
2
8
111
5 3
8-8
2
1
5
5 3
8-8
2
4
5 3
8-8
5 3
8-8
2
0
8
8
sbok, snok
sb0, snn, anok, snok, k1/2, dnok
sb2, anok, k1/1, dnok, kok, dnok, dnok
sb2, anok, k1/2, dnok, kok, dnok, dnok
sb2, anok, kok, dnok, dnok, kok, dnok, dnok, k1/2, dnok
[4 weitere Diagnosen]
sb2, anok, kok, dnok, dnok, k1n/2
sb2, anok, kok, dnok, dnok, kok, dnok, dnok, k1n/2
sb2, anok, k1/1, dnok, kok, dnok, dnok, kokn
[10 weitere Diagnosen]
4
sb0, snok, snok
3
sb2, anok
8
8
1
3
5 3
8-8
1
1
2
5 3
8-8
1
4
2
5 3
8-8
5⋅3
8⋅8
2
kok, dnok, dnok, kokn
kok, dnok, dnok, kok, dnok, dnok, kokn
kok, dnok, dnok, kok, dnok, dnok, kok, dnok, dnok, kokn
[9 weitere Diagnosen]
sb2, anok, kok, dnok, dnok
sb2, anok, kok, dnok, dnok, kok, dnok, dnok
sb2, anok, kok, dnok, dnok, kok, dnok, dnok, kok, dnok, dnok
[5 weitere Diagnosen]
sbok, snok, kok, dnok, dnok
sb0, snn, anok, snok, k1/2, dnok, kok, dnok, dnok
sb2, anok, kok, dnok, dnok, k1/1, dnok
sb1
173
Übungsblatt 2
Aufgabe 3a
10 3
− =
7 7
Anzahl Schüler 300
korrekt
279 (93%)
unvollständig
11 (4%)
fehlerhaft
10 (3%)
nicht bearbeitet
0 (0%)
Rechengraph C-15: Übungsblatt 2, Aufgabe 3a
Von
10 3
7 -7
7
7
Nach
Anzahl Diagnosen
7
7
14
7
5
10 3
7 -7
7
3
10 3
7 -7
7
7
1
1
1
1
2
2
sbok, snok
sb2, anok, ubgok, ugb1, anok
k1n/2
k1/2, dnok, kokn
sbok, snok, k1n/2
sbok, snok, k1/2, dnok, kokn
sb2, anok, ubgok, ugb1, anok, k1n/2
sb2, anok, ubgok, ugb1, anok, k1/2, dnok, kokn
sbok, snok, kok, dnok, dnok
sb2, anok, ubgok, ugb1, anok, kok, dnok, dnok
kok, dnok, dnok
174
Übungsblatt 3
Aufgabe 3a
15 3
− =
6 6
Anzahl Schüler 234
korrekt
215 (92%)
unvollständig
0 (0%)
fehlerhaft
19 (8%)
nicht bearbeitet
0 (0%)
Rechengraph C-16: Übungsblatt 3, Aufgabe 3a
Von
Nach
15 3
6 -6
12
6
15 3
6 -6
Anzahl Diagnosen
9
sbok, snok
2
1
5
sbok, snok, kok, dnok, dnok
sbok, snok, kok, dnok, dnok, kok, dnok, dnok
sb0, snok, snn, anok, kok, dnok, dnok, k1/2, dnok
[17 weitere Diagnosen]
15 3
6 -6
12
1
2
sb0, snn, anok, snok, k1/2, dnok
12
6
2
1
2
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
k1/1, dnok, k1/2, dnok
[3 weitere Diagnosen]
12
1
12
2
kokn
175
Übungsblatt 1
Aufgabe 3b
5 1
− =
12 8
Anzahl Schüler 505
korrekt
359 (71%)
unvollständig
6 (1%)
fehlerhaft
118 (23%)
nicht bearbeitet
22 (4%)
Vereinfachung keine Einfachkanten (99 Kanten, 78 Knoten und 2 Kanten höherer Ordnung)
Rechengraph C-17: Übungsblatt 1, Aufgabe 3b
Von
Nach
Anzahl Diagnosen
5 1
12 - 8
4
4
30
4
4
1
13
5 1
12 - 8
5 1
12 - 8
10 4
24 - 24
6
24
5 1
12 - 8
10 4
24 - 24
10 3
24 - 24
6
24
1
4
5 1
24 - 24
5 1
12 - 8
6
24
sb0, snok, snok
sbh0, sbh3, sbok, snok, kok, dnok, dnok, k1/2, dnok
sbh0, sbh3, sb1, mnok, mnok, k1/1, dnok, kok, dnok, dnok
[4 weitere Diagnosen]
kok, dnok, dnok, kokn
kok, dnok, dnok, kok, dnok, dnok, kokn
kok, dnok, dnok, k1n/2
kok, dnok, dnok, kok, dnok, dnok, k1n/2
11
keine Diagnose
10
sbhok/1, sbhok/2, mnok, mnok
10
sbok, snok
7
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
4
sbhok/1, sbh1
4
24
4
sbhok/1, sbh1, sbok, snok
sbh0, sbhok/2, mnok, mnok, sbok, snok, k1/2, dnok
sbh0, sbh3, sbok, snok, k1/2, dnok
[9 weitere Diagnosen]
3
12
4
kok, dnok, dnok
176
Übungsblatt 1
Aufgabe 3d
1 12
1 − =
5 10
Anzahl Schüler 505
korrekt
307 (61%)
unvollständig
48 (10%)
fehlerhaft
109 (22%)
nicht bearbeitet
41 (8%)
Vereinfachung keine Einfachkanten (102 Kanten, 78 Knoten, 3 Kanten höherer Ordnung)
Rechengraph C-18: Übungsblatt 1, Aufgabe 3d
Von
Nach
1 12
15 - 10
0
10
1 12
15 - 10
1 12
15 - 10
1 12
15 - 10
2
10
2 12
110 - 10
6 12
5 - 10
11
15
1
5
10
10
1
12 12
10 - 10
2 12
110 - 10
6 12
5 - 10
14 12
10 - 10
1
10
12 12
10 - 10
12 12
10 - 10
2
10
Anzahl Diagnosen
36
sghok/1, sghok/4, mnok, mnok, ugbok, mnok, anok, sbok, snok
sghok/1, sghok/4, mnok, mnok, sgok/1, snok, ugbok, mnok, anok
ugbok, mnok, anok, sbhok/1, sbhok/2, mnok, mnok, sbok, snok
[13 weitere Diagnosen]
33
sghok/1, sghok/4, mnok, mnok
19
ugbok, mnok, anok
11
keine Diagnose
8
kok, dnok, dnok
8
kok, dnok, dnok, kokn
kok, dnok, dnok, kok, dnok, dnok, kokn
kok, dnok, dnok, k1n/2
kok, dnok, dnok, kok, dnok, dnok, k1n/2
7
keine Diagnose
6
ugbok, mnok, anok
6
sbhok/1, sbhok/2, mnok, mnok
6
sbok, snok
sb0, snn, anok, snok, k1/2, dnok
177
Übungsblatt 2
Aufgabe 3e
1 10
3 − =
3 3
Anzahl Schüler 300
korrekt
250 (83%)
unvollständig
11 (4%)
fehlerhaft
34 (11%)
nicht bearbeitet
5 (2%)
Rechengraph C-19: Übungsblatt 2, Aufgabe 3e
Von
Nach
1 10
33 - 3
10 10
3 - 3
1 10
33 - 3
0
3
1 10
33 - 3
1 10
33 - 3
1 10
33 - 3
11 10
3 - 3
7 10
3- 3
9
33
Anzahl Diagnosen
11
ugbok, mnok, anok
11
ugbok, mnok, anok, sbok, snok
sgok/1, snok, ugbok, mnok, anok
ugbok, mnok, anok, sb0, snn, anok, snok, kok, dnok, dnok
[2 weitere Diagnosen]
3
keine Diagnose
3
keine Diagnose
3
keine Diagnose
10 10
3 - 3
3
3
sbok, snok, k1/2, dnok, kokn
sb0, snn, anok, snok, kok, dnok, dnok, k1/2, dnok, kokn
sb0, snn, anok, snok, k1/1, dnok, k1/2, dnok, kokn
[2 weitere Diagnosen]
11 10
3 - 3
1
3
3
sbok, snok
178
Übungsblatt 3
Aufgabe 3e
28
8
−4 =
5
5
Anzahl Schüler 234
korrekt
220 (94%)
unvollständig
0 (0%)
fehlerhaft
12 (5%)
nicht bearbeitet
2 (1%)
Rechengraph C-20: Übungsblatt 3, Aufgabe 3e
Von
Nach
Anzahl Diagnosen
28 8
5 - 45
0
5
6
ugbok, mnok, anok, sbok, snok
ugbok, mnok, anok, sb0, snn, anok, snok, kok, dnok, dnok
ugbok, mnok, anok, sb0, snn, anok, snok, k1/1, dnok
28 8
5 - 45
28 28
5 - 5
4
ugbok, mnok, anok
28 28
5 - 5
1
2
sb0, snn, snok, anok, kok, dnok, dnok, k1/1, dnok, kok, dnok, dnok, kokn
sb1, mnok, mnok, ubgok, ugb1, anok, k1/2, dnok, kok, dnok, dnok, kokn
[8 weitere Diagnosen]
179
Übungsblatt 2
Aufgabe 3b
2
6
5
−1 =
18 6
Anzahl Schüler 300
korrekt
200 (66%)
unvollständig
14 (5%)
fehlerhaft
86 (29%)
nicht bearbeitet
0 (0%)
Vereinfachung keine Einfachkanten (114 Kanten, 90 Knoten, 6 Kanten höherer Ordnung)
Rechengraph C-21: Übungsblatt 2, Aufgabe 3b
Von
Nach
6 5
218 - 16
6 15
218 - 118
25
6 5
218 - 16
9
18
18
9
18
6 5
218 - 16
6 15
218 - 118
1
9
12
k1/1, dnok
42 11
18 - 6
9
118
10
ugbok, mnok, anok, ugbok, mnok, anok
7
keine Diagnose
9
118
1
12
7
6 5
218 - 16
3
6
5
6 15 24 15
218 - 118 118 - 118
42 22
20
18 - 18
18
Anzahl Diagnosen
sghok/3, sghok/6, mnok, mnok
kok, dnok, dnok, sghok/3, sghok/6, mnok, mnok
[2 weitere Diagnosen]
sgok/3, snok, sghok/1, sghok/4, mnok, mnok, ugbok, mnok, anok, sbok, snok
sghok/3, sghok/6, mnok, mnok, sgok/3, snok, ugbok, mnok, anok, sbok, snok
sgok/3, snok, sghok/1, sghok/4, mnok, mnok, sgok/1, snok, ugbok, mnok, anok
[13 weitere Diagnosen]
kok, dnok, dnok
kok, dnok, dnok, kok, dnok, dnok
ugbok, mnok, anok, kok, dnok, dnok, ubgok
[4 weitere Diagnosen]
sgok/3, snok, kok, dnok, dnok, ugbok, mnok, anok, sbok, snok
sgok/3, snok, kok, dnok, dnok, sgok/1, snok, ugbok, mnok, anok
ugbok, mnok, anok, ugbok, mnok, anok, kok, dnok, dnok, sbok, snok
[6 weitere Diagnosen]
5
keine Diagnose
4
sbok, snok
180
Übungsblatt 3
Aufgabe 3b
4 15
3 −1 =
7 21
Anzahl Schüler 234
korrekt
190 (81%)
unvollständig
20 (8%)
fehlerhaft
24 (10%)
nicht bearbeitet
0 (0%)
Rechengraph C-22: Übungsblatt 3, Aufgabe 3b
Von
Nach
4 15
37 - 121
4 15
37 - 121
4 15
37 - 121
25 36
7 - 21
18
121
12 15
321 - 121
25 36
7 - 21
75 36
21 - 21
4 15
37 - 121
75 36
21 - 21
29
21
45 36
21 - 21
8
121
9
21
Anzahl Diagnosen
17
keine Diagnose
12
sghok/3, sghok/6, mnok, mnok
7
ugbok, mnok, anok, ugbok, mnok, anok
3
sbhok/1, sbhok/2, mnok, mnok
2
ugbok, mnok, anok, sghok/2, sghok/5, mnok, mnok, ugbok, mnok, anok
ugbok, mnok, anok, ugbok, mnok, anok, sbhok/1, sbhok/2, mnok, mnok
ugbok, mnok, anok, sghok/1, sghok/4, mnok, mnok, ugbok, mnok, anok
sghok/3, sghok/6, mnok, mnok, ugbok, mnok, anok, ugbok, mnok, anok
2
ubgok
2
sbok, snok
181
Übungsblatt 1
Aufgabe 3e
1
2 −1 =
4
Anzahl Schüler 505
korrekt
342 (68%)
unvollständig
4 (1%)
fehlerhaft
107 (21%)
nicht bearbeitet
52 (10%)
Vereinfachung keine Einfachkanten (81 Kanten, 58 Knoten, 1 Kante höherer Ordnung)
Rechengraph C-23: Übungsblatt 1, Aufgabe 3e
Von
1
2 - 14
1
2 - 14
1
2 - 14
1
2 - 14
1
2 - 14
Nach
1
14
3
14
3
4
2 5
2-4
2 5
1-4
Anzahl Diagnosen
27
sngok/1, snok
sng0/1, snok
18
keine Diagnose
10
keine Diagnose
6
keine Diagnose
6
keine Diagnose
8 6
4-4
2
4
4
2
4
1
2
4
2 5
2-4
1
2 - 14
1
2 - 14
8 2
4-4
4 5
4-4
1
12
2
2-4
6
4
4
2
sbok, snok
sb1, mnok, mnok, kok, dnok, dnok, k1/2, dnok
sb0, snn, anok, snok, k1/2, dnok
sb1, mnok, mnok, k1/1, dnok, k1/2, dnok
sb1, mnok, mnok, k1/2, dnok, k1/2, dnok
kok, dnok, dnok
k1/2, dnok, k1/1, dnok
sbhok/1, sbhok/2, mnok, mnok
sbhok/1, kok, dnok, dnok, sbhok/2, mnok, mnok
ugbok, mnok, anok, snb1/3, mnok, kok, dnok, dnok, ubgok, ugb1, anok, ubgok
ugbok, mnok, anok, snb1/1, mnok, mnok, k1/1, dnok, ubgok, ugb1, anok, ubgok
2
ugb1, anok
2
sbok, snok
182
Übungsblatt 2
Aufgabe 3d
1
5−2 =
3
Anzahl Schüler 300
korrekt
233 (78%)
unvollständig
17 (6%)
fehlerhaft
46 (15%)
nicht bearbeitet
4 (1%)
Rechengraph C-24: Übungsblatt 2, Aufgabe 3d
Von
1
5 - 23
1
5 - 23
1
5 - 23
1
5 - 23
5 7
1-3
15 7
3 -3
8
3
5 7
5-3
15 1
3 - 23
Nach
8
3
5 7
1-3
1
33
5 7
5-3
15 7
3 -3
8
3
1
23
15 35
15 - 15
14
23
Anzahl Diagnosen
16
keine Diagnose
9
keine Diagnose
9
sngok/1, snok
sng0/1, snok
6
keine Diagnose
5
sbhok/1, sbhok/2, mnok, mnok
4
sbok, snok
sb2, anok, ubgok, ugb1, anok
4
keine Diagnose
3
sbhok/1, sbhok/2, mnok, mnok
sbhok/1, kok, dnok, dnok, sbhok/2, mnok, mnok
3
keine Diagnose
183
Übungsblatt 3
Aufgabe 3d
2
7−3 =
5
Anzahl Schüler 234
korrekt
208 (89%)
unvollständig
0 (0%)
fehlerhaft
24 (10%)
nicht bearbeitet
2 (1%)
Rechengraph C-25: Übungsblatt 3, Aufgabe 3d
Von
2
7 - 35
2
7 - 35
35 17
5 - 5
17
5
2
7 - 35
18
5
Nach
7 17
1- 5
35 17
5 - 5
17
5
2
35
18
5
2
35
Anzahl Diagnosen
3
keine Diagnose
3
keine Diagnose
3
keine Diagnose
3
ubgok
2
keine Diagnose
2
keine Diagnose
184
C.2.4 Addition und Subtraktion mit drei Operanden
Übungsblatt 1
Aufgabe 3f
2
2
1
+ 3 +1 =
21 15
Anzahl Schüler 505
korrekt
286 (57%)
unvollständig
6 (1%)
fehlerhaft
84 (17%)
nicht bearbeitet
129 (26%)
Vereinfachung keine Einfachkanten (375 Kanten, 333 Knoten, 4 Kanten höherer Ordnung)
Rechengraph C-26: Übungsblatt 1, Aufgabe 3f
185
Übungsblatt 2
Aufgabe 3f
3
4
7
+8 −3=
20
15
Anzahl Schüler 300
korrekt
256 (85%)
unvollständig
9 (3%)
fehlerhaft
33 (11%)
nicht bearbeitet
2 (1%)
Vereinfachung keine Einfachkanten (94 Kanten, 85 Knoten, 1 Kante höherer Ordnung)
Rechengraph C-27: Übungsblatt 2, Aufgabe 3f
Übungsblatt 3
Aufgabe 3f
5
3
8
−1 + 4 =
21 14
Anzahl Schüler 234
korrekt
150 (64%)
unvollständig
14 (6%)
fehlerhaft
58 (25%)
nicht bearbeitet
12 (5%)
Vereinfachung keine Einfachkanten (166 Kanten, 152 Knoten, 2 Kanten höherer Ordnung)
Rechengraph C-28: Übungsblatt 3, Aufgabe 3f
186
C.2.5 Multiplikation
Übungsblatt 1
Aufgabe 5a
2 3
⋅ =
3 8
Anzahl Schüler 505
korrekt
394 (78%)
unvollständig
41 (8%)
fehlerhaft
58 (11%)
nicht bearbeitet
12 (2%)
Rechengraph C-29: Übungsblatt 1, Aufgabe 5a
Von
Nach
Anzahl Diagnosen
2 3
3⋅8
6
24
37
mbok, mnok, mnok
mb2, mnok, mnok, mnok, mnok, kok, dnok, dnok
mb3/2, mnok, mnok, mnok, k1/1, dnok
[2 weitere Diagnosen]
2 3
3⋅8
16 9
24 ⋅ 24
11
keine Diagnose
16 9
24 ⋅ 24
144
24
7
mb3a, mnok
kok, dnok, dnok, mb3/2, mnok, mnok, mnok
kok, dnok, dnok, kok, dnok, dnok, mb3/2, mnok, mnok, mnok
[6 weitere Diagnosen]
2 3
3⋅8
2⋅3
3⋅8
6
mbok
144
24
6
5
kok, dnok, dnok, kokn
kok, dnok, dnok, kok, dnok, dnok, kokn
kok, dnok, dnok, kok, dnok, dnok, kok, dnok, dnok, kokn
[8 weitere Diagnosen]
2 3
3⋅8
5
24
4
mb0/2, mnok, anok
187
Übungsblatt 2
Aufgabe 5b
2 3
⋅3 =
3 4
Anzahl Schüler 300
korrekt
203 (68%)
unvollständig
26 (9%)
fehlerhaft
68 (23%)
nicht bearbeitet
3 (1 %)
Vereinfachung keine Einfachkanten (75 Kanten, 58 Knoten, 3 Kanten höherer Ordnung)
Rechengraph C-30: Übungsblatt 2, Aufgabe 5b
Von
Nach
2 3
3 ⋅ 34
5
2
2 3
3 ⋅ 34
2 3
3 ⋅ 34
3
2
1⋅3
1⋅2
2⋅4
3⋅15
2 3
3 ⋅ 34
5
2
2 15
3⋅ 4
2⋅15
3⋅4
1
12
3
2
8
45
2⋅4
3⋅15
1
25
Anzahl Diagnosen
19
ugbok, mnok, anok, mbok, mnok, mnok, kok, dnok, dnok
ugbok, mnok, anok, mbok, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok
ugbok, mnok, anok, mb2, mnok, mnok, mnok, mnok, kok, dnok, dnok
[6 weitere Diagnosen]
17
ugbok, mnok, anok
11
ugbok, mnok, anok, mbok
10
ubgok
7
mnok, mnok
7
mnok, mnok
6
ugbok, mnok, anok, mb1
5
keine Diagnose
188
Übungsblatt 3
Aufgabe 5b
4 5
⋅2 =
5 8
Anzahl Schüler 234
korrekt
209 (89%)
unvollständig
8 (2%)
fehlerhaft
17 (7%)
nicht bearbeitet
0 (0%)
Rechengraph C-31: Übungsblatt 3, Aufgabe 5b
Von
Nach
Anzahl Diagnosen
4 5
5 ⋅ 28
4 21
5⋅ 8
4 5
5 ⋅ 28
21
10
6
4 21
5⋅ 8
84
40
2
21
10
1
110
2
6
ugbok, mnok, anok
ugbok, mnok, anok, mbok, mnok, mnok, kok, dnok, dnok
ugbok, mnok, anok, mbok, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok
ugbok, mnok, anok, mb2, mnok, mnok, mnok, mnok, kok, dnok, dnok
[4 weitere Diagnosen]
mbok, mnok, mnok
mb2, mnok, mnok, mnok, mnok, kok, dnok, dnok
mb2, mnok, mnok, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok
[2 weitere Diagnosen]
keine Diagnose
189
Übungsblatt 1
Aufgabe 5c
3 2
1 ⋅2 =
4 3
Anzahl Schüler 505
korrekt
255 (50%)
unvollständig
47 (9%)
fehlerhaft
176 (35%)
nicht bearbeitet
27 (5%)
Vereinfachung keine Einfachkanten (189 Kanten, 136 Knoten, 3 Kanten höherer Ordnung)
Rechengraph C-32: Übungsblatt 1, Aufgabe 5c
Von
Nach
Anzahl Diagnosen
3 2
14 ⋅ 23
7 8
4⋅3
29
3 2
14 ⋅ 23
6
212
27
3 2
14 ⋅ 23
14
3
22
3 2
14 ⋅ 23
6
312
16
3 2
14 ⋅ 23
56
12
11
3 2
14 ⋅ 23
3 2
14 ⋅ 23
3 2
14 ⋅ 23
1 1
12 ⋅ 21
8
412
7⋅8
4⋅3
3 2
14 ⋅ 23
1
32
ugbok, mnok, anok, ugbok, mnok, anok
mg2, mnok, mnok, mnok
mg3/2, mnok, ag1, mnok, mnok
[5 weitere Diagnosen]
ugbok, mnok, anok, ugbok, mnok, anok, mbok, mnok, mnok, kok, dnok, dnok
[eine weitere Diagnose]
mg3/1, anok, ag1, mnok, mnok
mg3/3, anok, mg1/5, mnok, mnok
[5 weitere Diagnosen]
ugbok, mnok, anok, ugbok, mnok, anok, mbok, mnok, mnok
ugbok, mnok, anok, ugbok, mnok, anok, mb3/2, mnok, mnok, mnok, k1/1, dnok
[eine weitere Diagnose]
10
keine Diagnose
8
keine Diagnose
7
ugbok, mnok, anok, ugbok, mnok, anok, mbok
6
mg3/1, anok, ag1, mnok, mnok, kok, dnok, dnok
mg3/1, anok, ag1, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok
mg3/1, anok, ag1, mnok, mnok, ugbok, mnok, anok, kok, dnok, dnok, ubgok
[21 weitere Diagnosen]
190
Übungsblatt 1
Aufgabe 5e
1
3 2
⋅ =
13 3
Anzahl Schüler 505
korrekt
286 (57%)
unvollständig
6 (1%)
fehlerhaft
164 (32%)
nicht bearbeitet
49 (10%)
Vereinfachung keine Einfachkanten (136 Kanten, 109 Knoten, 3 Kanten höherer Ordnung)
Rechengraph C-33: Übungsblatt 1, Aufgabe 5e
Von
Nach
3 2
113 ⋅ 3
3 2
113 ⋅ 3
6
139
3 2
113 ⋅ 3
3 2
113 ⋅ 3
24
13
6
139
16 2
13 ⋅ 3
2
113
16⋅2
13⋅3
2
113
11
113
3 2
113 ⋅ 3
3 2
113 ⋅ 3
Anzahl Diagnosen
33
mg1/5, mnok, mnok
29
ugbok, mnok, anok
19
kok, dnok, dnok
ugbok, mnok, anok, kok, dnok, dnok, ubgok
13
ugbok, mnok, anok, mbok
13
mg1/5, mnok, mnok, kok, dnok, dnok
mg1/5, mnok, mnok, ugbok, mnok, anok, kok, dnok, dnok, ubgok
13
ubgok
32
39
10
ugbok, mnok, anok, mbok, mnok, mnok
ugbok, mnok, anok, mb2, mnok, mnok, mnok, mnok, kok, dnok, dnok
ugbok, mnok, anok, mb3/2, mnok, mnok, mnok, k1/1, dnok
[eine weitere Diagnose]
1 2
113 ⋅ 1
8
keine Diagnose
191
Übungsblatt 2
Aufgabe 5e
1 5
3 ⋅2 =
4 4
Anzahl Schüler 300
korrekt
139 (46%)
unvollständig
15 (5%)
fehlerhaft
141 (47%)
nicht bearbeitet
5 (2%)
Vereinfachung keine Einfachkanten (88 Kanten, 71 Knoten, 1 Kante höherer Ordnung)
Rechengraph C-34: Übungsblatt 2, Aufgabe 5e
Von
Nach
1 5
34 ⋅ 24
1 5
34 ⋅ 24
1 5
34 ⋅ 24
1 5
34 ⋅ 24
1
1
1 5
34 ⋅ 24
13 13
4 ⋅ 4
13⋅13
4⋅4
169
16
13⋅4
4⋅13
Anzahl Diagnosen
32
ugbok, mnok, anok, ugbok, mnok, anok
29
ugbok, mnok, anok, ugbok, mnok, anok, mbok
20
ugbok, mnok, anok, ugbok, mnok, anok, mbok, mnok, mnok
12
ugbok, mnok, anok, ugbok, mnok, anok, mb1
1
9
5
616
8
13 13
4 * 4
169
4
7
169
4
1
424
7
13⋅4
4⋅13
1
7
13 4
4 ⋅ 13
1
6
kokn
k1n/2
mg2, mnok, mnok, mnok
mg3/2, mnok, ag1, mnok, mnok
mbk1/2, dnok, dnok, mbok, mnok, mnok
mb3a, mnok
mbk1/2, dnok, dnok, mb0/3, mnok, anok
ubgok
mnok, mnok, kok, dnok, dnok, kokn
mnok, mnok, kok, dnok, dnok, kok, dnok, dnok, kokn
[12 weitere Diagnosen]
mbok, mnok, mnok, kok, dnok, dnok, kokn
mbok, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok, kokn
[11 weitere Diagnosen]
192
Übungsblatt 3
Aufgabe 5e
2 1
2 ⋅3 =
3 2
Anzahl Schüler 234
korrekt
206 (88%)
unvollständig
3 (1%)
fehlerhaft
25 (11%)
nicht bearbeitet
0 (0%)
Rechengraph C-35: Übungsblatt 3, Aufgabe 5e
Von
Nach
2 1
23 ⋅ 32
2 1
23 ⋅ 32
2 1
23 ⋅ 32
2 1
23 ⋅ 32
8 7
3⋅3
28
3
8 2
3⋅7
8 7
3⋅2
2 1
23 ⋅ 32
2 1
23 ⋅ 32
Anzahl Diagnosen
5
keine Diagnose
4
ugbok, mnok, anok, ugbok, mnok, anok, mbok, mnok, mnok, kok, dnok, dnok
[10 weitere Diagnosen]
3
keine Diagnose
3
ugbok, mnok, anok, ugbok, mnok, anok
2
56
2
mg3/1, anok, ag1, mnok, mnok
mg3/3, anok, mg1/5, mnok, mnok
mg3/1, anok, aghok/1, agh1/1, ag1a, mnok
[5 weitere Diagnosen]
8 5
3⋅2
2
keine Diagnose
193
C.2.6 Division
Übungsblatt 1
Aufgabe 5b
5 3
: =
8 4
Anzahl Schüler 505
korrekt
393 (78%)
unvollständig
21 (4%)
fehlerhaft
112 (22%)
nicht bearbeitet
58 (11%)
Vereinfachung keine Einfachkanten (119 Kanten, 76 Knoten, 2 Kanten höherer Ordnung)
Rechengraph C-36: Übungsblatt 1, Aufgabe 5b
Von
Nach
Anzahl Diagnosen
5 3
8:4
5⋅4
8⋅3
16
5
5
1
15
5 3
8:4
20
24
14
5 3
8:4
5⋅3
8⋅4
10
5 3
8:4
5⋅3
8⋅4
6
5
5 4
8⋅3
15
32
1
15
10
dbok, mbok
db0, mb1
db3, mnok, mnok, db0, kok, dnok, dnok, mb1
kok, dnok, dnok, kokn
kok, dnok, dnok, k1n/2
dbok, mbok, mnok, mnok
dbok, mb2, mnok, mnok, mnok, mnok, kok, dnok, dnok
db3, mnok, mnok, dbok, mbok, mnok, mnok, kok, dnok, dnok
9 weitere Diagnosen fehlen
db0, mbok
dbok, mb1
db3, mnok, mnok, db0, kok, dnok, dnok, mbok
dbok
db3, mnok, mnok, dbok, kok, dnok, dnok
10
mnok, mnok
10
ubgok
194
Übungsblatt 1
Aufgabe 5f
3 6
: =
4 8
Anzahl Schüler 505
korrekt
308 (61%)
unvollständig
34 (7%)
fehlerhaft
92 (18%)
nicht bearbeitet
71 (14%)
Vereinfachung keine Einfachkanten (90 Kanten, 54 Knoten, 1 Kante höherer Ordnung)
Rechengraph C-37: Übungsblatt 1, Aufgabe 5f
Von
Nach
Anzahl Diagnosen
3 6
4:8
2
2
38
3 6
4:8
3 8
4⋅6
10
3 6
4:8
3⋅8
4⋅6
9
3 6
4:8
1
1
8
3 6
4:8
3 6
4:8
4 8
3⋅6
4 6
3⋅8
3 6
4:8
3⋅6
4⋅8
dbok, mbok, mnok, mnok, kok, dnok, dnok
dbok, mbok, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok
db1/1, mnok, mnok, kok, dnok, dnok
[52 weitere Diagnosen]
dbok
db3, mnok, mnok, dbok, kok, dnok, dnok
dbok, mbok
db0, mb1
db3, mnok, mnok, db0, kok, dnok, dnok, mb1
dbok, mbok, mnok, mnok, kok, dnok, dnok
dbok, kok, dnok, dnok, mbok, mnok, mnok, kok, dnok, dnok
dbok, kok, dnok, dnok, mb0/1, anok, anok, kok, dnok, dnok
[58 weitere Diagnosen]
8
keine Diagnose
7
keine Diagnose
6
db0, mbok
dbok, mb1
db3, mnok, mnok, db0, kok, dnok, dnok, mbok
195
Übungsblatt 2
Aufgabe 5a
2 3
:
=
3 4
Anzahl Schüler 300
korrekt
252 (84%)
unvollständig
0 (0%)
fehlerhaft
45 (15%)
nicht bearbeitet
3 (1%)
Vereinfachung keine Einfachkanten (39 Kanten, 23 Knoten, 3 Kanten höherer Ordnung)
Rechengraph C-38: Übungsblatt 2, Aufgabe 5a
Von
Nach
Anzahl Diagnosen
2 3
3:4
2 4
3⋅3
13
2 3
3:4
2⋅4
3⋅3
9
2 3
3:4
1
2
6
2 3
3:4
2 3
3:4
2 3
3:4
1 1
1:2
3⋅4
2⋅3
3 3
2⋅4
3
dbok
db3, mnok, mnok, dbok, kok, dnok, dnok, kok, dnok, dnok
db3, mnok, mnok, dbok, k1/2, dnok, kok, dnok, dnok, k1/2, dnok
[eine weitere Diagnose]
dbok, mbok
db0, mb1
db3, mnok, mnok, db0, kok, dnok, dnok, kok, dnok, dnok, mb1
[eine weitere Diagnose]
db0, mbok, mnok, mnok, kok, dnok, dnok
dbok, mb1, mnok, mnok, kok, dnok, dnok
dbok, mb1, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok
[30 weitere Diagnosen]
dbk1/1, dnok, dnok, dbk1/2, dnok, dnok
[eine weitere Diagnose]
2
db1/2
2
keine Diagnose
196
Übungsblatt 2
Aufgabe 5d
5 10
:
=
8 16
Anzahl Schüler 300
korrekt
267 (89%)
unvollständig
5 (2%)
fehlerhaft
24 (8%)
nicht bearbeitet
4 (1%)
Rechengraph C-39: Übungsblatt 2, Aufgabe 5d
Von
Nach
Anzahl Diagnosen
5 10
8 : 16
2
2
5 10
8 : 16
5 10
8 : 16
5 16
8 ⋅ 10
8⋅16
5⋅10
5 10
8 : 16
1
1
2
5 10
8 : 16
25
64
2
10
6
2
dbok, mbok, mnok, mnok, kok, dnok, dnok
kok, dnok, dnok, dbok, mbok, mnok, mnok, kok, dnok, dnok
db1/1, mnok, mnok, kok, dnok, dnok
[53 weitere Diagnosen]
dbok
db3, mnok, mnok, dbok, kok, dnok, dnok
db1/2
dbok, mbok, mnok, mnok, kok, dnok, dnok
dbok, kok, dnok, dnok, mbok, mnok, mnok, kok, dnok, dnok
dbok, kok, dnok, dnok, mb0/1, anok, anok, kok, dnok, dnok
[69 weitere Diagnosen]
db2, mnok, mnok, kok, dnok, dnok
dbok, mb1, mnok, mnok, kok, dnok, dnok
db0, mbok, mnok, mnok, kok, dnok, dnok
[21 weitere Diagnosen]
197
Übungsblatt 3
Aufgabe 5a
3 5
:
=
5 6
Anzahl Schüler 234
korrekt
221 (94%)
unvollständig
0 (0%)
fehlerhaft
13 (6%)
nicht bearbeitet
0 (0%)
Rechengraph C-40: Übungsblatt 3, Aufgabe 5a
Von
Nach
3 5
5:6
3 6
5⋅5
18
5
3 6
5⋅5
3
35
18
5
3 5
5:6
3⋅6
5⋅5
Anzahl Diagnosen
5
dbok
db3, mnok, mnok, dbok, kok, dnok, dnok, kok, dnok, dnok
[eine weitere Diagnose]
5
ubgok
4
mb3a, mnok
2
dbok, mbok
db0, mb1
db3, mnok, mnok, db0, kok, dnok, dnok, kok, dnok, dnok, mb1
[eine weitere Diagnose]
198
Übungsblatt 3
Aufgabe 5d
4 16
:
=
9 36
Anzahl Schüler 234
korrekt
222 (95%)
unvollständig
0 (0%)
fehlerhaft
12 (5%)
nicht bearbeitet
0 (0%)
Rechengraph C-41: Übungsblatt 3, Aufgabe 5d
Von
Nach
Anzahl Diagnosen
dbok
db3, mnok, mnok, dbok, kok, dnok, dnok
db3, mnok, mnok, dbok, kok, dnok, dnok, kok, dnok, dnok
dbok, mbok
db0, mb1
dbok, mbok, mnok, mnok, kok, dnok, dnok
dbok, mbok, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok
dbok, mbok, mnok, mnok, kok, dnok, dnok, kok, dnok, dnok, kok, dnok, dnok
15 weitere Diagnosen fehlen
4 16
9 : 36
4 36
9 ⋅ 16
4
4 16
9 : 36
4⋅36
9⋅16
2
4 16
9 : 36
4
4
2
4 16
9 : 36
4
3
1⋅3
1⋅4
4⋅36
9⋅16
1 16
9: 9
1
13
3
4
2
dbk1/1, dnok, dnok
2
ubgok
2
mnok, mnok
1⋅3
1⋅4
2
keine Diagnose
199
Übungsblatt 1
Aufgabe 5d
2 3
2 : =
3 7
Anzahl Schüler 505
korrekt
208 (41%)
unvollständig
29 (6%)
fehlerhaft
193 (38%)
nicht bearbeitet
75 (15%)
Vereinfachung keine Einfachkanten (192 Kanten, 135 Knoten, 5 Kanten höherer Ordnung)
Rechengraph C-42: Übungsblatt 1, Aufgabe 5d
Von
Nach
2 3
23 : 7
56
9
2 3
23 : 7
2 3
23 : 7
2 3
23 : 7
8
7
14
29
8 3
3:7
8 7
3⋅3
2 7
23 ⋅ 3
1
17
5
39
2 3
23 : 7
8⋅7
3⋅3
2 3
23 : 7
8 7
3⋅3
2⋅7
2
3⋅3
56
9
Anzahl Diagnosen
38
ugbok, mnok, anok, dbok, mbok, mnok, mnok
ugbok, mnok, anok, db0, mb1, mnok, mnok
ugbok, mnok, anok, db3, mnok, mnok, db0, mb1, mnok, mnok, kok, dnok, dnok
[eine weitere Diagnose]
31
ugbok, mnok, anok
20
ugbok, mnok, anok, dbok
[eine weitere Diagnose]
16
keine Diagnose
15
ubgok
15
ugbok, mnok, anok, ubgok
14
ugbok, mnok, anok, dbok, mbok
ugbok, mnok, anok, db0, mb1
[eine weitere Diagnose]
11
dg2/7
10
mbok, mnok, mnok
200
Übungsblatt 2
Aufgabe 5c
2
6 8
:
=
8 7
Anzahl Schüler 300
korrekt
179 (60%)
unvollständig
29 (10%)
fehlerhaft
87 (29%)
nicht bearbeitet
5 (2%)
Vereinfachung keine Einfachkanten (129 Kanten, 106 Knoten, 4 Kanten höherer Ordnung)
Rechengraph C-43: Übungsblatt 2, Aufgabe 5c
Von
Nach
Anzahl Diagnosen
6 8
28 : 7
22 7
8 ⋅8
23
6 8
28 : 7
77
32
19
6 8
28 : 7
22⋅7
8⋅8
18
6 8
28 : 7
22 7
8 ⋅8
22⋅7
8⋅8
12
232
6
216
26
264
154
64
154
64
6
216
3
28
ugbok, mnok, anok, dbok
[eine weitere Diagnose]
ugbok, mnok, anok, dbok, mbok, mnok, mnok, kok, dnok, dnok
ugbok, mnok, anok, db0, mb1, mnok, mnok, kok, dnok, dnok
[eine weitere Diagnose]
ugbok, mnok, anok, dbok, mbok
ugbok, mnok, anok, dbok, kok, dnok, dnok, mb2, mnok, mnok
ugbok, mnok, anok, db0, mb1
7
keine Diagnose
6
mbok, mnok, mnok
kok, dnok, dnok, mb2, mnok, mnok, mnok, mnok
6
mnok, mnok
5
kok, dnok, dnok
5
kok, dnok, dnok
ugbok, mnok, anok, kok, dnok, dnok, ubgok
201
Übungsblatt 3
Aufgabe 5c
2
6 7
:
=
7 5
Anzahl Schüler 234
korrekt
203 (87%)
unvollständig
3 (1%)
fehlerhaft
27 (12%)
nicht bearbeitet
1 (<1%)
Rechengraph C-44: Übungsblatt 3, Aufgabe 5c
Von
Nach
Anzahl Diagnosen
6 7
27 : 5
100
49
10
ugbok, mnok, anok, dbok, mbok, mnok, mnok
ugbok, mnok, anok, db0, mb1, mnok, mnok
ugbok, mnok, anok, db3, mnok, mnok, db0, mb1, mnok, mnok, kok, dnok, dnok
[eine weitere Diagnose]
6 7
27 : 5
6 5
27 ⋅ 7
4
keine Diagnose
6 7
27 : 5
20⋅5
7⋅7
4
ugbok, mnok, anok, dbok, mbok
ugbok, mnok, anok, db0, mb1
[eine weitere Diagnose]
100
49
2
2100
6 5
27 ⋅ 7
2
2100
1
250
30
249
4
keine Diagnose
4
kok, dnok, dnok
ugbok, mnok, anok, kok, dnok, dnok, ubgok
3
mg1/5, mnok, mnok
202
LITERATURVERZEICHNIS
Anderson (1976):
Anderson, John R.: Language, Memory and Though. Hillsdale: Erlbaum 1976.
Anderson (1983):
Anderson, John R.: The Architecture of Cognition. Auflage von 1983. Cambridge, Mass., London:
Harvard University Press 1947.
Avenhaus (1995):
Avenhaus, Jürgen: Reduktionssysteme, Rechnen und Schließen in gleichungsdefinierten Strukturen. Berlin,
Heidelberg: Springer 1995.
Baffes (1994):
Baffes, P.: Automatic Student Modeling and Bug Library Construction using Theory Refinement. Ph.D. thesis. Austin, Texas: Universiy of Texas 1994.
Baffes, Mooney (1996):
Baffes, P.; Mooney, R.: Refinement-Based Student Modeling and Automated Bug Library Construction. Journal of Artificial Intelligence in Education (1996), 7(1), S. 75-117.
Barr, Feigenbaum (1986):
Barr, Avron; Feigenbaum, Edward A.: The Handbook of Artificial Intelligence. Band 2. Reading,
Mass. [u.a.]: Addision-Wesley 1986.
Booch, Rumbaugh, Jacobson (1998):
Booch, Grady; Rumbaugh, James; Jacobson, Ivar: The unified modeling user guide. The AddisonWesley object technology series. Reading, Mass.: Addison Wesley Longman, Inc 1998.
Brown et. al. (1975):
Brown, John Selly [u.a.].: Steps toward a theoretical foundation for complex knowledge-based
CAI. BBN Report 3135 (ICAI Report 2). Cambrigde, Mass.: Bolt Beranek and Newman, Inc. 1975.
Brown et. al. (1977a):
Brown, John Selly; [u.a.]: Aspects of a theory for automated student modeling. BBN Report 3549
(ICAI Report 4). Cambridge, Mass.: Bolt Beranek and Newmann, Inc. 1977.
Brown et. al. (1977b):
Brown, John Selly; Burton, Richard R.; Larkin, K.M.: Representing and using procedural bugs
for educational prupose. Proceedings of the National ACM Conference (1977). Seattle, Washington:
Association for Computing Machinery, S. 247-255.
203
Brown, Burton (1978):
Brown, John Selly; Burton, Richard R.: Diagnostic Models for Procedural Bugs in Basic Mathematical Skills. Cognitive Science (1978) Nr. 2, S. 155-192
Brown, Burton, de Kleer (1982):
Brown, John Selly; Burton, Richard R.; de Kleer, J.: Knowledge engineering and pedagogical
techniques in SOPHIE I, II, and III. Sleeman, D; Brown, J.S. (Eds.): Intelligent tutoring systems. Boston [u.a.]: Academic Press 1982.
Brown, VanLehn (1980):
Brown, John Selly; VanLehn, K.: Repair theory: A generative theory of bugs in procedural skills.
Cognitive Science (1980) Nr. 4, S. 379-426.
Burton (1982):
Burton, Richard R.: Diagnosing bugs in simple procedural skills. Sleemann, D.H. and Brown, J.S.
(Hrsg.): Intelligent Tutoring Systems. Chapter 8. London: Academic Press 1982.
Burton, Brown (1976):
Burton, Richard R.; Brown, John Selly: A tutoring and student modeling paradigm for gaming
environments. Computer Science and Education. ACM SIGCSE Bulletin (1976) 8(1), S. 236-246.
Burton, Brown (1979):
Burton, Richard R.; Brown, John Selly: An investigation of computer coaching for informal learning activities. International Journal of Man-Machine Studies (1979) 11, S. 5-24.
Carbonell (1970a):
Carbonell, J.R.: AI in CAI: an artificial intelligence approach to computer-assisted instruction.
IEEE Transactions on Man-Machine Systems (1970) 11(4), S. 190-202.
Carbonell (1970b):
Carbonell, J.R.: Mixed-Initiative Man-Computer Instructional Dialogues. BBN Report No. 1971.
Cambrigde: Bolt Beranek and Newman Inc. 1970.
Carr, Goldstein (1977):
Carr, B.; Goldstein, I.: Overlays: A theory of modeling for computer aided instruction.
AI Memo 406. Massachusetts Institute of Technology 1977.
Clancey (1979):
Clancey, W. J.: Transfer of rule-based expertise through a tutorial dialogue. Rep. No.
STAN-CS-769, Computer Science Dept., Standfort University, Doctoral dissertation, 1979.
204
Clancey (1982):
Clancey, W. J.: Tutoring Rules for Guiding a Case Method Dialogue. Sleeman, D.; Brown, J.S.
(Hrsg.): Intelligent tutoring systems. Boston [u.a.]: Academic Press 1982. S. 201-225.
Clancey (1983):
Clancey, W. J.: GUIDON. Journal of Computer Based Instruction (1983), 1, 10, S. 8-15
Clocksin, Mellish (1987):
Clocksin, William F.; Mellish, Christopher S.: Programmieren in Prolog, Berlin, Heidelberg: Springer
1987.
Daubert, Gerster (1983):
Daubert, Kurt; Gerster, Hans-Dieter: Differenzierende Maßnahmen zur Vorbeugung und zur
Behebung von Schülerfehlern beim Rechnen mit Brüchen. Päd. Welt (1983) Heft 12.
Dershowitz, Jouannaud (1990):
Dershowitz, Nachum; Jouannaud, Jean-Pierre: Rewrite Systems. van Leeuwen, Jan: Handbook of
Theoretical Computer Science. Vol. B. Amsterdam: Elsevier 1990. Kap. 6, S. 244-320.
Dijkstra (1968):
Dijkstra, E. W.: Cooperating sequential processes. Technical Report EWD-123. Technological University, Eindhoven, the Netherlands (1965). Nachdruck in Genuys, F. (Hrsg.): Programming Languages, New York, London: Acacdemic Press 1968.
Ehrich, Gogolla, Lipeck (1989):
Ehrich, Hans-Dieter; Gogolla, Martin; Lipeck, Udo Walter: Algebraische Spezifikation abstrakter Datentypen. Stuttgart: Teubner 1989.
Ehrig, Mahr (1985):
Ehrig, G.; Mahr, B.: Fundamentals of Algebraic Specification 1, Equations and Initial Semantics. In der
Reihe Brauer, W.; Rozenberg, G.; Salomaa, A.: EATCS, Monographs on Theoretical Computer
Science. Volume 6. Berlin, Heidelberg: Springer-Verlag 1985.
Friš (1968):
Friš, J.: Grammars with partial ordering of the rules. Information Control (1968), 17, S. 415-425.
Gentner (1979):
Gentner, Donald R.: Toward an Intelligent Computer Tutor. O’Neil, H.F. Jr. (Hrsg.): The Educational Technology Series. Procedures for Instructional Systems Development. New York: Academic
Press 1979, S. 253-272.
205
Gerster (1979):
Gerster, Hans-Dieter: Analyse von Schülerfehlern bei den schriftlichen Rechenverfahren. Freiburg, Br.:
Herder 1979.
Gerster, Grevsmühl (1983):
Gerster, Hans-Dieter; Grevsmühl, Ulrich: Diagnose individueller Schülerfehler beim Rechnen
mit Brüchen. Päd. Welt (1983) Heft 11.
Goldstein (1979):
Goldstein, I.: The genetic epistemology of rule systems. International Journal of Man-Machine Studies
(1979) 11, S. 51-77.
Fuchssteiner et. al. (1993):
Fuchsteiner, Benno; et. al.: MuPAD: Multi Processing Algebra Data Tool. Basel: Birkhäuser Verlag
1993.
Hart (1981):
Hart, K.M. (Editor): Children’s Understanding of Mathematics: 11-16, New-Castle upon Tyne: Athenaeum Press 1981. Kapitel 5: Fraction, S. 66-81, Kapitel 13: The hierarchies, S. 187-207.
Hasemann (1985):
Hasemann, Klaus: Die Beschreibung von Schülerfehlern mit kognitionstheoretischen Modellen,
Der Mathematikuntericht (1985) Heft 6, Vol. 31.
Hennecke (1997a):
Hennecke, Martin: Adaptive Fehleranalyse für ein intelligentes Lernsystem: Analyse, Entwurf, Implementierung. Diplomarbeit, Institut für Mathematik, Universität Hildesheim 1997.
Hennecke (1997b):
Hennecke, Martin: Computergestützte Analyse von Schülerfehlern bei der Bruchrechnung. Beiträge zum Mathematikunterricht 1997, Hildesheim: Franzbecker 1997.
Hoppe (1987):
Hoppe, Rüdiger: Fehleranalyse auf der Basis von Regelsystemen, Ein Ansatz zur Analyse von Mathematikleistungen auf Individual- und Klassenebene. Dissertation, Fakultät für Sozial- und Verhaltenswissen-
schaften der Universität Heidelberg, 1987.
Klop (1992):
Klop, Jan Willem: Term Rewriting Systems. Abramsky, S.; Gabbay, Dov. M.; Maibau, T.S.E.:
Handbook of Logic in Computer Science. Vol. 2. Oxford: Oxford University Press 1992. S. 1-116.
206
Knuth (1973):
Knuth, Donald E.: The Art of Computer Programming: Sorting and Searching. Vol. 3. Addision-Welsey
Publishing Co. 1973. Neuauflage: 1998.
Kube (1999):
Kube, Dirk: Diagnostische Aufgabengenerierung für intelligente mathematische Lernsysteme, Analyse, Entwurf
und Implementierung als paralleles System. Diplomarbeit, Institut für Mathematik und Angewandte In-
formatik, Universität Hildesheim, 1999.
Langley, Ohlsson (1984):
Langley, P.; Ohlsson, S: Automated cognitive modeling. Proceedings of the National Conference on Artificial Intelligence (1984), Austin, Texas, S. 193-197.
Langley et. al. (1990):
Langley, P.; Wogulis, J.; Ohlsson, S.: Rules and principles in cognitive diagnosis. Frederiksen, N.;
Glaser, R.; Lesgold, A.; Shafto, M. (Hrsg.): Diagnostic Monitoring of Skill and Knowledge Acquisition.
Kapitel 10, S. 217-250, Hillsdale, NJ: Lawrence Erlbaum Associates 1990.
Lippert (1989):
Lippert, R.C.: Expert Systems: Tutors, Tools and Tutees. Journal of Computer-Based Instruction
(1989) 1, 16, S. 11-19.
Loeckx, Ehrich, Wolf (1996):
Loeckx, Jacques; Ehrich, Hans-Dieter; Wolf, Markus: Specification of abstract data types. Chichester;
Stuttgart, Leipzig: Wiley-Teubner 1996.
Lörcher (1982):
Lörcher, Gustav Adolf: Diagnose von Schülerschwierigkeiten beim Bruchrechnen. Päd. Welt
(1982) Heft 3.
Marshall (1980):
Marshall: Procedural networks and production systems in adaptiv diagnosis. Instructional Science
(1980) Heft 9, S. 129-143.
Murray (1991):
Murray, W.: An endorsement-based approach to student modeling for planner-controlled tutors.
Proceedings of the Twelfth International Joint Conference on Artificial Intelligence, S. 1100-1106. Sydney,
Australia.
207
Oestereich (1998):
Oestereich, Bernd: Objektorientierte Softwareentwicklung: Analyse und Design mit der Unified modeling language. 4. aktualisierte Auflage. München, Wien: Oldenbourg 1998.
Ostermeier (1998):
Ostermeier, Jan: Datenbankdesign für ein intelligentes Lernsystem. Diplomarbeit, Institut für Mathematik und Angewandte Informatik, Universität Hildesheim, 1998.
Padberg (1986):
Padberg, Friedhelm: Über typische Schülerschwierigkeiten in der Bruchrechnung - Bestandaufnahme und Konsequenzen. Der Mathematikunterricht (1986) Heft 3.
Padberg (1995):
Padberg, Friedhelm: Didaktik der Bruchrechnung, Gemeine Brüche, Dezimalbrüche. 2. erw. Auflage.
Heidelberg, Berlin, Oxford: Spektrum 1995.
Padberg (1996):
Padberg, Friedhelm: Über Schülerschwierigkeiten im Umgang mit gemeinen Brüchen und Dezimalbrüchen. Müller, K.P. (Hrsg.): Vorträge auf der 30. Bundestagung für Didaktik der Mathematik
vom 4. bis 8.3.1996 in Regensburg. Hildesheim: Franzbecker 1996.
Payne (1986):
Payne, Joseph N.: Über Schülerschwierigkeiten beim Bruchzahlbegriff, beim Erweitern, Kürzen
und Ordnen von Brüchen. Mathematikunterricht (1986) Heft 3.
Plasmeijer, van Eeklen (1993):
Plasmeijer, Rinus; van Eeklen, Marko: Functional Programming and Parallel Graph Rewriting. International Computer Science Series, Reading, Mass.: Addison-Wesley 1993.
Plump (1998):
Plump, Detlef: Term Graph Rewriting. Ehrig, H.; Engels, G.; Kreowski, H.-J.; Rozenberg, G.:
Handbook of Graph Grammars and Computing by Graph Transformation, Vol. 2: Applications, Languages
and Tools. World Scientific. Kapitel 1 (erscheint).
Radatz (1979):
Radatz, Hendrik: Fehleranalysen im Mathematikunterricht. Braunschweig, Wiesbaden: Vieweg 1979.
Rumbaugh [u.a.] (1993):
Rumbaugh, James; Blaha, Michael; Premerlani, William; Eddy, Frederick; Lorensen, William: Objektorientiertes Modellieren und Entwerfen. München, Wien: Hanser. London: Prentice-Hall Internat.
1993.
208
Rumbaugh, Jacobson, Booch (1999):
Rumbaugh, James; Jacobson, Ivar; Booch, Grady: The unified modeling language reference manual. The
Addison-Wesley object technology series. Reading, Mass.: Addison Wesley Longman, Inc. 1999.
Salomaa (1970):
Salomaa, Arto K.: Periodically time-variant context-free grammars. Information Controll (1970) 17,
S. 294-311.
Salomaa (1973/78):
Salomaa, Arto K.: Formal Languages, New York: Academic Press 1973. Alt. Formale Sprachen, Berlin, u.a.: Springer-Verlag 1978.
Schulmeister (1997):
Schulmeister, Rolf: Grundlagen hypermedialer Lernsysteme: Theorie, Didaktik, Design. 2. aktualisierte
Auflage. München [u.a.]: Oldenbourg 1997. 3. Auflage in Vorbereitung.
Self (1974):
Self, J.A.: Student models in computer-aided instruction. International Journal of Man-Machine Studies
(1974) 6, S. 261-267.
Siegler (1996):
Siegler, Robert S.: Emerging Minds, The Process of Change in Children’s Thinking. Oxford: Oxford University Press 1996.
Siegler, Jenkins (1989):
Siegler, Robert S.; Jenkins, Eric: How Childrens Discover New Strategies. Hillsdale, New Jersey: Lawrence Erlbaum 1989.
Sleeman, Smith (1981):
Sleeman, D.H.; Smith, M.J.: Modelling students‘ problem solving. Artificial Intelligence (1981) 16,
S. 171-187.
Sleeman, Brown (1982):
Sleeman, D.; Brown, J.S. (Hrsg.): Intelligent Tutoring Systems. Boston [u.a.]: Academic Press 1982.
Sleeman (1982):
Sleeman, D.H.: Assessing aspects of competence in basic algebra. Sleeman, D.H.; Brown, John
Selly (Hrsg.): Intelligent Tutoring Systems. London: Academic Press 1982.
209
Sleeman (1983):
Sleeman, D.: Inferring student models for intelligent computer-aided instruction. Michalski, R.S.;
Carbonell, J.G.; Mitchell, T.M. (Hrsg.): Machine Learning: An Artificial Intelligence Approach. Palo Alto, California: Morgan Kaufmann 1983.
Sleeman (1987):
Sleeman, D.H.: PIXIE: a shell for developing intelligent tutoring systems. Lawler, R.; Yazdani,
M. (Hrsg.): AI and Education: Learning Enviorments and Intelligent Tutoring Systems. Norwood, New
Jersey: Ablex Publishing 1987.
Sleeman et. al. (1990)
Sleeman, D.H.; Hirsh, H.; Ellery, I.; Kim, I.: Extending domain theories: two case studies in student modeling. Machine Learning (1990) 5, S. 11-37.
Sleep, Plasmeijer, van Eekelen (1993):
Sleep, M.R.; Plasmeijer, Rinus; van Eeklen, Marko (Hrsg.): Term Graph Rewriting, Theory and Practice. Chichester, New York: Wiley & Sons 1993.
Spada, Opwis (1985):
Spada, H.; Opwis, K.: Intelligente tutorielle Systeme aus psychologischer Sicht. In Mandl, H.; Fischer, P.M. (Hrsg.): Lernen im Dialog mit den Computer. München, Wien, Baltimore: Urban &
Schwarzenberg 1985. S. 12-23.
Stern, Beck, Woolf (1996):
Stern, Mia; Beck, Joseph; Woolf, Beverly Park: Adaptation of Problem Presentation and Feedback in an Intelligent Mathematics Tutor. Frasson, Claude; Gauthier, Gilles, Lesgold, Alan
(Hrsg.): Intelligent Tutoring Systems, Proceedings of the 3rd International Conference, IST’96, Montréal, Canada, June 1996, Berlin, Heidelberg [u.a.]: Springer 1996. Lecture Notes in Computer
Science, Band 1086.
Sterling, Shapiro (1988):
Sterling, Leon; Shapiro, Ehud: Prolog - Fortgeschrittene Programmiertechniken. Bonn; Reading, Mass.
[u.a.]: Addison-Wesley 1988.
Stevens, Collins, Goldin (1978):
Stevens, A.L.; Collins, A.; Goldin, S.: Diagnosing student’s misconceptions in causal models.
BBN Rep. No. 3786. Cambridge, Mass.: Bolt Beranek and Newman, Inc. 1978.
Strube (1996):
Strube, Gerhard mit Becker, B.; Freksa, Ch.; Hahn, U.; Opwis, K.; Palm, G. (Hrsg): Wörterbuch
der Kognitionswissenschaft. Stuttgart: Klett-Cotta 1996.
210
211
Tappe [u.a.] (1984):
Tappe, Friedhelm; Schmiedl, Ferdinand; Viet, Ursula: Entwicklung und Erprobung von Materialien für
den Förderunterricht in Mathematik (Sekundarstufe I). Osnabrücker Schriften zur Mathematik, Reihe
D: Mathematisch-didaktische Modelle. Fachbereich Mathematik, Universität Osnabrück (1984)
Heft 4.
VanLehn (1982):
VanLehn, Kurt: Bugs are not enough: empirical studies of bugs, impasses and repairs in procedural skills. Journal of Mathematical Behavior. Vol. 3, S. 3-72, 1982. Auch CIS Report 11, Cognitive
and Instructional Sciences Series, Xerox Palo Alto Research Center, Palo Alto, California.
VanLehn (1989):
VanLehn, Kurt: Mind Bugs: the origins of procedural misconceptions. Cambridge: MIT Press
1989.
Wenger (1987):
Wenger, Etienne: Artificial Intelligence and Tutoring Systems, Computational and Cognitive Approaches to
the Communication of Knowledge. Los Altos: Morgan Kaufmann Publishers, Inc 1987.
Young, O’Shea (1981):
Young, R.M.; O’Shea, T. (1981): Errors in children’s subtraction. Cognitive Science (1981) Heft 5,
S. 151-177.
212
Zugehörige Unterlagen
Herunterladen