Zum Inhalt

Interaktive Übungen

Ein wenig Cinderella-Geschichte

Eine der Hauptmerkmale der älteren Versionen von Cinderella (bis 1.4) war die Möglichkeit, einfach interaktive Schülerübungen in elementarer Geometrie zu erstellen. Eine typische solche Übung könnte beispielsweise nach der Konstruktion des Mittelpunkts zweier gegebener Punkte fragen. Der Schüler erhielt eine interaktive Webseite, auf der nur die beiden Punkte (z. B. A und B) zusammen mit einer bestimmten Reihe von Konstruktionswerkzeugen zur Lösung der Übung vorhanden waren. Während er die Übung löste, überwachte der automatische Beweiser in Cinderella seine Aktivitäten und lieferte hilfreiche Hinweise und Kommentare. Schließlich erhielt der Schüler, wenn er die Konstruktionsaufgabe erfolgreich bewältigt hatte, eine Erfolgsmeldung.

Leider war diese Funktionalität ab Version 2.0 nicht mehr verfügbar. Es gab mehrere Gründe, warum wir diese Funktion eingestellt haben. Einer davon war unser Ziel, Schülerübungen und Skriptfunktionen zusammenzuführen, um mehr fortgeschrittene und flexible Übungsformate zu unterstützen. Ein weiterer Grund war, dass nur ein kleiner Teil der Benutzer die Möglichkeiten zur Erstellung von Übungen tatsächlich nutzte.

Mit der aktuellen Version bieten wir erneut die Möglichkeit, interaktive Übungen zu erstellen, indem wir den Operator createtool(...) einbinden. Dies und die ständige Überwachung der Konstruktion durch die integrierte Beweismaschine ist der Schlüssel zu interaktiven Übungen mit automatischer Überprüfung von Schülerantworten. Im Gegensatz zur alten Version von Cinderella gibt es keinen Übungseditor mehr, aber die Übung muss durch Schreiben eines geeigneten Skripts erstellt werden. Im Folgenden zeigen wir, dass dies nicht nur die alte Funktionalität für Übungen bietet, sondern auch die Kraft und Vielseitigkeit von CindyScript nutzt.

In diesem Abschnitt werden wir die grundlegenden Techniken beschreiben, die zum Erstellen solcher Übungen erforderlich sind, zusammen mit einigen technischen Erklärungen. Wir werden dies an einem sehr einfachen Beispiel tun und von vorne beginnen. Auf unserer Website unter http://cinderella.de stellen wir Vorlagen bereit, die als Ausgangspunkt für mehrere typische Übungstypen dienen können. Sie werden die Generierung von Übungen ganz einfach machen.

Werkzeuge exportieren

Unsere Aufgabe ist es, eine Übung zu erstellen, die nach der Konstruktion des Mittelpunkts zweier gegebener Punkte A und B fragt. Der Schüler sollte aufgefordert werden, dies mithilfe von Linien, Punkten und Kreisen zu lösen. Die erste Aufgabe besteht darin, eine Symbolleiste mit den wesentlichen Werkzeugen für die Übung zu erstellen. Dazu verwenden wir den createtool(...)-Operator wie zuvor beschrieben. Wir möchten eine kleine Sammlung von Werkzeugen bereitstellen, die für die Konstruktion erforderlich sind. Um dies zu erreichen, fügen wir die folgende Anweisung im init-Block von CindyScript hinzu:

createtool(["Move","Point","Line","Circle"],2,2);

Wir fügen auch die beiden Punkte manuell hinzu, die den Anfang der Übung darstellen sollen. Nun sieht unsere Konstruktion wie folgt aus:

Eine Beispielkonstruktion bereitstellen

Als nächster Schritt stellen wir eine Beispielkonstruktion für die Übung (Konstruktion des Mittelpunkts) bereit. Diese Beispielkonstruktion wird später verwendet, um Hinweise für den Schüler zu geben. Die Konstruktion wird manuell mit den Konstruktionswerkzeugen durchgeführt. Wir verwenden auch den Inspector, um die Konstruktion etwas schöner zu gestalten. Danach könnte die Konstruktion wie folgt aussehen.

Üben Sie den Text hinzu

Als nächster Schritt werden wir einen Text anzeigen, der den Schüler auffordert, die Übung zu lösen. Wir werden diesen Text später auch verwenden, um hilfreiche Meldungen zu geben, während der Schüler die Übung tatsächlich löst. So werden wir die eigentliche Nachricht von der Anweisung trennen, die sie anzeigt. Es gibt mehrere Möglichkeiten, dies zu tun. Hier geben wir im init eine Zeile ein

message="Construct the Midpoint of A and B";

In draw geben wir eine Zeile wie diese ein

drawtext((-8,0),message);

Wenn wir zur Konstruktion zurückkehren, sieht unser Beispiel so aus:

Die Beispielkonstruktion ausblenden

Wie bereits erwähnt, dient die Beispielkonstruktion nur als Vorlage, die mit der Lösung des Schülers verglichen wird. Wir müssen also diesen Teil der Konstruktion ausblenden, mit Ausnahme der Startpunkte. Wir könnten dies entweder manuell mithilfe des Inspector tun. Alternativ können wir eine Skriptzeile zum init-Block hinzufügen, die automatisch alle Elemente außer A und B unsichtbar macht.

apply(allelements()--[A,B],el,el.visible=false);

Danach ist die Übung in perfektem Zustand für den Schüler:

Erfolgsmeldung bereitstellen

Jetzt kommt der knifflige Teil. Wir möchten, dass der Schüler eine Erfolgsmeldung erhält, wenn er die Übung gelöst hat. Dazu müssen Sie die folgende wichtige Tatsache über Cinderella wissen: Wenn ein Element konstruiert wird, das bereits vorhanden ist, stellt Cinderellas Beweismaschine sicher, dass das alte Element tatsächlich wiederverwendet wird und kein zusätzliches überflüssiges doppeltes Element hinzugefügt wird. Dieser Mechanismus funktioniert sogar, wenn das alte Element unsichtbar war. In diesem Fall wird die Sichtbarkeitsflagge des alten Elements einfach auf den Zustand true zurückgesetzt. In unserem Fall wird der Prover, wenn der Schüler den Mittelpunkt von A und B auf irgendeine korrekte Weise konstruiert, sicherstellen, dass der alte unsichtbare Punkt E, der bereits in der Konstruktion vorhanden ist, wiederverwendet wird. Da der Prover alle Punkte akzeptiert, die sich immer an der gleichen Position wie E befinden, unabhängig von ihrer Konstruktion, kann der Schüler seine eigene kreative Konstruktion für den Mittelpunkt bereitstellen und erhält dennoch die Erfolgsmeldung.

Das Einzige, was wir tun müssen, um die Erfolgsmeldung anzuzeigen, ist zu überprüfen, ob Punkt E sichtbar wird. Wir können dies tun, indem wir die folgende Codezeile zum draw-Skript hinzufügen, bevor die Nachricht ausgegeben wird:

if(E.visible,message="YEAH, you got it")

Wenn der Schüler den Mittelpunkt konstruiert (durch eine beliebige Konstruktion!), wird der Punkt E automatisch sichtbar und die Nachricht "YEAH, you got it" wird angezeigt.

Zwischenbemerkungen geben

Wir können es noch besser machen. Wir können die Beispielkonstruktion verwenden, um jedes Mal eine Nachricht bereitzustellen, wenn der Schüler eines der Hilfselemente konstruiert. Dazu ersetzen wir die if(...)-Anweisung des letzten Abschnitts durch ein kleines Programm, das testet, welche Elemente unserer Konstruktion bereits sichtbar sind, und die Nachricht entsprechend anpasst. Hier ist ein Codebeispiel, das zeigt, wie man das macht (wir stellen den gesamten Code für den draw-Abschnitt bereit.)

clrscr();
chain=[
 [a,"Good start"],
 [C0,"You need circles"],
 [C1,"You need circles"],
 [b,"Almost done"],
 [E,"YEAH, you got it"]
];

visible=select(allelements(),#.visible);
found=select(chain,el,contains(visible,el_1));

if(found!=[],
  message=found_(-1)_2;
);

drawtext((-8,0),message);

In der Liste chain speichern wir Paare von Elementen und den zugehörigen Texten, die angezeigt werden sollen, wenn das Element konstruiert wird. Die Zeilen

visible=select(allelements(),#.visible);
found=select(chain,el,contains(visi,el_1));

sammeln alle Elemente von chain, die bereits sichtbar in der Liste found sind. Schließlich nehmen die folgenden Codezeilen das letzte Element dieser Liste (das zuletzt konstruierte) und speichern den zugehörigen Kommentar in message:

if(found!=[],
  message=found_(-1)_2;
);

Diese Nachricht wird dann angezeigt von:

drawtext((-8,0),message);

Was der Schüler erhält

Wenn der Schüler die Übung nun auf die Standardweise löst, hat er die folgenden Baustadien seiner Konstruktion:

Exportieren

Abschließend exportieren wir diese Übung ins Web, wie im Abschnitt zum HTML-Export beschrieben. Danach ist die interaktive Webseite leicht als allgemeine interaktive Schülerübung nutzbar. Es gibt aufwändigere Muster, wie man die Hinweise mit Teilen der ursprünglichen Konstruktion verbindet. Auf unserer Website unter http://cinderella.de stellen wir eine Sammlung nützlicher Vorlagen bereit, einschließlich Hinweisen, die bei der Konstruktionsfindung helfen, zeitgesteuerte Hinweisverzögerung und verzweigter Hinweisstruktur. Sie werden die häufigsten Anwendungsfälle bei der Erstellung von Schülerübungen abdecken.


🤖 Diese Seite wurde automatisch mit KI (Claude) übersetzt und wartet noch auf Überprüfung. → Alle KI-übersetzten Seiten