90 likes | 151 Views
MathCoach Ein web-basierter Mathematik-Tutor. Die Autorensprache LaplaceScript. Überblick. Die Autorensprache LaplaceScript Was ist LaplaceScript? Beispiele. Was ist LaplaceScript?.
E N D
MathCoachEin web-basierter Mathematik-Tutor Die Autorensprache LaplaceScript
Überblick Die Autorensprache LaplaceScript • Was ist LaplaceScript? • Beispiele MathCoach Projekt HTW des Saarlandes
Was ist LaplaceScript? Die Autorensprache für MathCoach ist XML-basiert und sehr leicht zu erlernen. Sie ist schrittweise erlernbar, d.h. schon mit wenigen Befehlen kann ein Autor sehr wirkungsvolle Übungsaufgaben erstellen, wie auf den folgenden Folien beispielhaft gezeigt wird. Merkmale von LaplaceScript: • leicht zu erlernende Beschreibungssprache für interaktive Übungsaufgaben • bietet die wichtigsten Eigenschaften einer „echten“ Programmiersprache • für mathematische Aufgaben konzipiert (enthält Datentypen wie Matrizen, Vektoren) • XML-basiert • erlaubt den Einsatz von (X)HTML und MathML • erlaubt die direkte Verwendung von PROLOG-, R- und MuPAD-Syntax Auf der CD-ROM ist ein Tutorial für Autoren mit weiteren Informationen zu LaplaceScript enthalten. MathCoach Projekt HTW des Saarlandes
Beispiele <laplace> <startup> <button name="r-button" status="disabled"/><button name="rplot-button" status="disabled"/> <print> <h2>Wieviele Quadratmeter hat Arnolds Zimmer?</h2><hr/>Das Zimmer ist viereckig. Rechtwinklig sind allerdings nur zwei schräg gegenüberliegende Ecken des Zimmers.<br/>Alle vier Seiten des Raumes sind unterschiedlich lang, haben aber jeweils und stets in Metern gemessen eine ganzzahlige Länge.<p/>Arnolds Zimmer ist das kleinstmögliche, auf das diese Beschreibung zutrifft.<br/><p/> Zur Lösung der Aufgabe einfach die Anzahl der Quadratmeter ( ohne Maßeinheit ) eingeben!<br/><p/> </print> </startup> <interaction> <if>$_USR_INPUT_0 == 18</if><then><print>Stimmt!</print></then> <else-if>$_USR_INPUT_0 == 65</else-if> <then><print>Du scheinst auf dem richtigen Weg zu sein. Aber ist denn 65 wirklich schon die Quadratmeterzahl?!</print></then> <else><print>Leider falsch.</print></else> </interaction> <support> <subtask> <level> <define-help> <print>Hier ein <i>Grundriss</i> des Zimmers:<br/><img src="/laplus/lsfm/grundriss.png"/></print> </define-help> </level> </subtask> </support> </laplace> Interaktionssteuerung durch bedingte Verzeigungen modellierbar Darstellung der Aufgabe siehe nächste Folie MathCoach Projekt HTW des Saarlandes
Beispiele MathCoach Projekt HTW des Saarlandes
Beispiele eine einfache Multiple Choice Aufgabe <laplace> <procedure name="showQuestion">…</procedure> <startup> <layout name="slim"/> <console action="hide"/> <call-procedure name="showQuestion"/> </startup> <interaction> <clear/> <call-procedure name="showQuestion"/> <var name="answers"><get-parameter name="o"/></var> <var name="button"><get-parameter name="mcqOK"/></var> <vectorize target="answers">$answers</vectorize> <var name="dim"><vector-dim name="answers"/></var> <if>$dim == 1 AND @answers[0] == "c"</if> <then><print><fieldset><legend><h2>Answer</h2></legend><p>Richtig.</p></fieldset></print></then> <else-if>$dim > 1</else-if> <then><print><fieldset><legend><h2>Answer</h2></legend><p>Es kann nur ein Wert richtig sein.</p></fieldset></print></then> <else-if>$button == "OK"</else-if> <then><print><fieldset><legend><h2>Answer</h2></legend><p>Leider falsch.</p></fieldset></print></then> </interaction> <support/> </laplace> MathCoach Projekt HTW des Saarlandes
Beispiele Einfache Erzeugung von Zufallszahlen <laplace> <startup> <layout name="slim"/> <print><u>Zufallszahlen</u><p/></print> <var name="r1"><random set="real" min="-10" max="10" /></var> <var name="r2"><random set="real" min="0" max="1" /></var> <var name="r3"><random set="real" min="0" max="0.1" /></var> <var name="g1"><random set="integer" min="-10" max="10" /></var> <var name="g2"><random set="integer" min="0" max="1" /></var> <var name="g3"><random set="integer" min="0" max="1000000"/></var> <print> r = $r1 : r ∈ [-10,...,10)<br/> r = $r2 : r ∈ [0,...,1)<br/> r = $r3 : r ∈ [0,...,0.1)<br/> <hr/> r = $g1 : r ∈ {-10,...,10}<br/> r = $g2 : r ∈ {0, 1}<br/> r = $g3 : r ∈ {0,...,1000000}<br/> </print> </startup> <interaction><restart/></interaction> <support/> </laplace> MathCoach Projekt HTW des Saarlandes
Beispiele Verwendung von MuPAD <interaction> <if>$modus=="antworten"</if> <then> <var name="lsg"><mupad>int( $_USR_INPUT_0, x )</mupad></var> <var name="mi"><mathml source="swi-prolog">$_USR_INPUT_0</mathml></var> <var name="mlsg"><mathml source="swi-prolog">$lsg</mathml></var> <print>Eine Stammfunktion zu $mi ist z.B. $mlsg.<br/></print> <var name="modus">fragen</var> <var name="rn"><random set="integer" min="-10" max="+10"/></var> <var name="aufg"> <replace substring="\\d+" replacement="$rn">$_USR_INPUT_0</replace> </var> <var name="aufg"><mupad>simplify($aufg)</mupad></var> <var name="maufg"><mathml source="swi-prolog">$aufg</mathml></var> <print>Deine Aufgabe, finde eine Stammfunktion zu: $maufg</print> </then> <else> <var name="test"><mupad>is( diff( $_USR_INPUT_0, x ) - $aufg = 0 )</mupad></var> <if>$test == "TRUE"</if> <then> <print>Gut gemacht.</print> <var name="modus">antworten</var> </then> <else><print>$test, Leider falsch ...</print></else> </else> </interaction> MathCoach Projekt HTW des Saarlandes
Beispiele <laplace> <startup> <layout name="slim"/> <prolog name="sets"> <input-code> <![CDATA[ member( X, [X|Tail] ). member( X, [_|Tail] ) :- member( X, Tail ). is_set( [] ) :- !. is_set( [Head|Tail] ) :- member( Head, Tail ), !, fail. is_set( [_|Tail] ) :- is_set( Tail ). ]]> </input-code> </prolog> </startup> <interaction> <var name="result"><prolog name="sets"> <get-answer>is_set( $_USR_INPUT_0 ).</get-answer></prolog></var> <if>$result == "No."</if> <then><var name="result">$_USR_INPUT_0 ist keine Menge.</var></then> <else><var name="result">$_USR_INPUT_0 ist eine Menge.</var></else> <print>$result</print> </interaction> <support/> </laplace> Benutzung von PROLOG- Syntax direkt im Autorenskript möglich MathCoach Projekt HTW des Saarlandes