Fragebogen im CMS
Im CMS ist es möglich kleine Fragebögen zur Selbstkontrolle der Studierenden anzubieten. Hier ist beschrieben, wie man solche Fragebögen erstellt. Eine kleine Warnung vorweg: Diese Lösung ist dafür gedacht, dass wir Erfahrung sammeln können, und die Syntax nicht sehr einfach: Erst wenn der Bedarf und Nutzen besser bekannt ist, können komfortablere Lösungen angedacht werden. Fragen und Verbesserungsvorschläge zum System können gerne an Prof. Dr. Sebastian Ritterbusch gerichtet werden.
Diese Anleitung besteht den folgenden Teilen:
So sieht es aus
Illustriertes Beispiel
- Jedes Formular muss mit dem Link zum Auswertungs-Skript starten:
<html><form action="http://www.mathematik.uni-karlsruhe.de/user/ma2ki/auswertung.php" method="post"></html>
- Dann folgen globale Angaben, wie die Anzahl der Aufgaben in diesem Formular: (Hier könnten auch Text oder Links notiert werden, die auf der Auswertung erscheinen. Vorschläge sind erwünscht.) Wir haben drei Aufgaben in diesem Beispiel.
<html><input type="hidden" name="aufgaben" value="3" /></html>
- Nun folgen die Aufgaben, am Besten bezeichnet als Aufgabe n) oder An). Hier der Text der ersten Aufgabe:
'''A1)''' Gegeben sei die Funktion <math>f(x)=x^2</math>. :Wählen Sie die korrekten Aussagen aus:
- Die einzelnen Lösungsmöglichkeiten werden dann aufgeführt, für die Eingabefelder kann man am besten den Typ checkbox benutzen, aber auch andere Typen sind möglich. Wichtig ist, dass im name= der zur Aufgabe gehörende Bezeichner aufgeführt wird, hier A1, und im value= der Bezeichner dieser Lösungm hier a, b und c. Diese erscheinen dann auch in der Auswertung:
::'''a)''' <math>f(2)=4</math> <html><input type="checkbox" name="A1[]" value="a" /></html> ::'''b)''' <math>f(2)\not=f(-2)</math> <html><input type="checkbox" name="A1[]" value="b" /></html> ::'''c)''' <math>f(x)=\frac{x}2\,f'(x)</math> <html><input type="checkbox" name="A1[]" value="c" /></html>
- Anschließend wird die Lösung angegeben, bezüglich der die Auswertung dann bewertet:
<html><input type="hidden" name="L1" value="a,c"></html>
- In der zweiten Aufgabe sind die Auswahlmöglichkeiten nun in einer Tabelle angeordnet, natürlich könnte man dies auch mit dem Aufgabentext machen. Jetzt wird in den checkbox der Bezeichner A2 verwendet, auch sieht man hier, dass die value sprechende Bezeichnungen haben können und sehr frei sind, die dürfen nur kein "Komma" beinhalten. Hauptsache man versteht damit die Auswahl in der Auswertung.
'''A2)''' Ordnen Sie Groß- und Kleinbuchstaben zu: || ||<math>\gamma</math>||p|| ||P||<html><input type="checkbox" name="A2[]" value="Zeile1Spalte1" /></html>||<html><input type="checkbox" name="A2[]" value="Zeile1Spalte2" /></html>|| ||<math>\Gamma</math>||<html><input type="checkbox" name="A2[]" value="Zeile2Spalte1" /></html>||<html><input type="checkbox" name="A2[]" value="Zeile2Spalte2" /></html>|| <html><input type="hidden" name="L2" value="Zeile1Spalte2,Zeile2Spalte1" /></html>
- Im dritten Beispiel wird ein Eingabefeld, also type="input", verwendet. Auch hier wird name="A3" benutzt, man sollte aber auch mit size die Größe des Eingabefelds angeben. Die Antworten muss man eindeutig halten, also am Besten nur ganzzahlig und ebenso sind Kommata unmöglich richtig.
'''A3)''' Der Aufgabentext... :Welche Antworten hätten Sie gerne? ::'''a)''' Richtige Antwort <html><input type="checkbox" name="A3[]" value="a" /></html> ::'''b)''' Falsche Antwort <html><input type="checkbox" name="A3[]" value="b" /></html> ::'''c)''' Richtige Antwort ist 17: <html><input type="input" size="4" name="A3[]" /></html> <html><input type="hidden" name="L3" value="a,17" /></html>
- Abgeschlossen wird das Formular mit dem Button zur Überprüfung und dem abschliessenden </form>-tag.
<html><input type="submit" value=" Überprüfen " /></form></html>
Beispiel ohne Kommentare
Diesen Code kann man direkt in eine freie Seite im CMS kopieren, um daran zu experimentieren.
<html><form action="http://www.mathematik.uni-karlsruhe.de/user/ma2ki/auswertung.php" method="post"></html> <html><input type="hidden" name="aufgaben" value="3" /></html> '''A1)''' Gegeben sei die Funktion <math>f(x)=x^2</math>. :Wählen Sie die korrekten Aussagen aus: ::'''a)''' <math>f(2)=4</math> <html><input type="checkbox" name="A1[]" value="a" /></html> ::'''b)''' <math>f(2)\not=f(-2)</math> <html><input type="checkbox" name="A1[]" value="b" /></html> ::'''c)''' <math>f(x)=\frac{x}2\,f'(x)</math> <html><input type="checkbox" name="A1[]" value="c" /></html> <html><input type="hidden" name="L1" value="a,c" /></html> '''A2)''' Ordnen Sie Groß- und Kleinbuchstaben zu: || ||<math>\gamma</math>||p|| ||P||<html><input type="checkbox" name="A2[]" value="Zeile1Spalte1" /></html>||<html><input type="checkbox" name="A2[]" value="Zeile1Spalte2" /></html>|| ||<math>\Gamma</math>||<html><input type="checkbox" name="A2[]" value="Zeile2Spalte1" /></html>||<html><input type="checkbox" name="A2[]" value="Zeile2Spalte2" /></html>|| <html><input type="hidden" name="L2" value="Zeile1Spalte2,Zeile2Spalte1" /></html> '''A3)''' Der Aufgabentext... :Welche Antworten hätten Sie gerne? ::'''a)''' Richtige Antwort <html><input type="checkbox" name="A3[]" value="a" /></html> ::'''b)''' Falsche Antwort <html><input type="checkbox" name="A3[]" value="b" /></html> ::'''c)''' Richtige Antwort ist 17: <html><input type="input" size="4" name="A3[]" /></html> <html><input type="hidden" name="L3" value="a,17" /></html> <html><input type="submit" value=" Überprüfen " /></form></html>
Zeitlimit
Man kann mit Hilfe von Javascript-Funktionen ein Zeitlimit setzen- es gibt zwei Funktionen: Für eine Meldung nach einer bestimmten Zeit (in Millisekunden) fügt man folgende Zeile ein:
<html><script type="text/javascript">window.setTimeout("alert('Sie bearbeiten den Test seit 10 Minuten.')",600000);</script></html>
Diese Zeile würde nach 10 Minuten (also 600'000 ms) ein Informationsfenster mit dem obigen Text ausgeben. Solche Zeilen können mehrfach angegeben werden, auch um z.B. das Ende des Tests anzukündigen.
Es ist auch möglich einen Test automatisch auswerten zu lassen, dazu fügt man folgende Zeile ein:
<html><script type="text/javascript">window.setTimeout("document.forms[0].submit()",1200000);</script></html>
Hier wird das erste Formular (deswegen die 0 bei forms) nach 20 Minuten (also 1'200'000 ms) automatisch zur Auswertung geschickt. Selbstverständlich macht die automatische Auswertung nur Sinn, wenn nur ein Formular auf einer Seite ist, und jeder kann durch Neuladen der Seite die Zeit zurücksetzen, aber man kann so den Test ein wenig realistischer gestalten.
Ist gewünscht, dass ein Formular nicht vor Ablauf einer gewissen Zeit abgefragt werden kann, so ist dies durch diese Zeile unter dem Formular möglich:
<html><script type="text/javascript">function submitable(str){var i,t=document.getElementsByTagName("input");for(i=0;i<t.length;i++)if(t[i].type=="submit")t[i].disabled=str;} submitable("disabled");window.setTimeout("submitable('')",60000);</script></html>
Hier werden die Auswertebuttons nach dem Laden deaktiviert und nach 60 Sekunden (60'000 ms) wieder aktiviert.
Randomisierung
Mit Hilfe des folgenden Codes können die Zeilen von Tabellen vertauscht werden, damit die Antwortreihenfolgen nicht immer gleich bleiben. Genauer werden nur alle Zeilen ab der zweiten Zeile randomisiert damit die Titelzeile unberührt bleibt. Es werden alle voranstehenden Tabellen verwürfelt, d.h. diese Zeile sollte unter der Zeile für den Überprüfen-Button stehen.
<html><script type="text/javascript">var i,j,t=document.getElementsByTagName("table");for(i=0;i<t.length;i++){var r=t[i].rows;var p=r[0].parentNode,l=r.length-1;for(j=0;j<4;j++)p.insertBefore(r[Math.floor(Math.random()*l)+1],r[Math.floor(Math.random()*l)+1]);}</script></html>
Hier eine Beispiel-Tabelle zur Demonstration:
| ||||
Tipps
Um den Lerneffekt zu erhöhen können kleine Hilfen angegeben werden: Zum einen kann auf Informationen anderer Seiten verlinkt werden, wie dies auch sonst möglich ist, eine spezielle Möglichkeit sind aber kleine Infofenster, die folgendermaßen realisiert werden:
[javascript:alert('Diese Informationsfenster können wichtige Hinweise enthalten, damit die Fragen richtig beantwortet werden können!')|Wozu das ganze?]
So sieht das dann aus: Wozu das ganze?
Leider sind diese Tipps nur bei Browsern mit aktiviertem Javascript abrufbar, ohne Javascript bleiben die Hinweise verborgen, auch werden die zeitgesteuerten Ereignisse nicht funktionieren- das ist aber nicht sehr schlimm: Der grundsätzliche Fragebogen funktioniert weiter.
Abschliessend
- Die Fragebögen müssen natürlich lösbar sein, im Zweifel sollten die einzelnen Fragen nicht zu schwer sein: Ein positives Feedback unterstützt einen Lerneffekt, geratene Ergebnisse helfen niemandem. Besonders positiv sollten sich o.g. Hilfen zu den Aufgaben auswirken, da damit ein Raten eher vermieden werden kann.
- Komplizierte Zusammenhänge sollten in Teilaufgaben abgefragt werden, es gibt keinen Grund alles in eine Aufgabe zu stecken, vielmehr sollten sogar Teilschritte einzeln behandelt werden, da keine Rechenwege geprüft werden können.
- Unbedingt sollte auf jedem Bogen ein Ansprechpartner verzeichnet sein, denn es ist äußerst förderlich, wenn die Studierenden Fragen zum Stoff formulieren.
- Ein Fragebogen sollte nicht zu lang sein, oder zu viel Zeit beanspruchen. Ist die erforderliche Bearbeitungszeit zu lang, so wird nur das unproduktive "Ausprobieren" von Lösungen gefördert.
- Die Fragebögen können (außer im IE) gut ausgedruckt werden und auch "offline" bearbeitet werden, die Kontrolle kann man dann online durchführen.
- Man kann mehrere von einander unabhängige Formulare auf einer Seite haben, hier ein zweiter "Test":
Beispiele
Zu guter Letzt verschiedene Beispiele zu Fragebögen auf unseren Seiten (mit den internen Links zur Eigenverwendung):
- Zum Vorkurs Mathematik von PD Dr. Frank Hettlich
- Selbsttest zum Kapitel 1 - Vorkurs Mathematik: Eine ganze Menge Zahlen [[selbsttestkapitel1@hettlich]]
- Selbsttest zum Kapitel 2 - Vorkurs Mathematik: Alles ziemlich rational [[selbsttestkapitel2@hettlich]]
- Selbsttest zum Kapitel 3 - Vorkurs Mathematik: Jetzt funkt's richtig [[selbsttestkapitel3@hettlich]]
- Selbsttest zum Kapitel 4 - Vorkurs Mathematik: Vom Auf und Ab [[selbsttestkapitel3@hettlich]]
- Selbsttest zum Kapitel 5 - Vorkurs Mathematik: Global gesehen [[selbsttestkapitel4@hettlich]]
- Selbsttest zum Kapitel 6 - Vorkurs Mathematik: Mit Vektoren durch den Raum [[selbsttestkapitel5@hettlich]]
- Zum Jahr der Mathematik von Dr. Klaus Spitzmüller
- Fragebogen Nr. 1 [[fragebogen1@spitzmueller]]
- Fragebogen Nr. 2 [[fragebogen2@spitzmueller]]
- Fragebogen Nr. 3 [[fragebogen3@spitzmueller]]
- Fragebogen Nr. 4 [[fragebogen4@spitzmueller]]
- Fragebogen Nr. 5 [[fragebogen5@spitzmueller]]
- Fragebogen Nr. 6 [[fragebogen@spitzmueller]]
- Zu ausgewählten Themen der HM3 von Prof. Dr. Sebastian Ritterbusch
- Charakterisierung partieller Differentialgleichungen [[charakterisierung@ritterbusch]]
- Das Charakteristikenverfahren [[charakteristiken@ritterbusch]]
- Das Separationsverfahren [[separation@ritterbusch]]
- fragebogen@intglg2008s@iag1|Fragebogen zu linearen Integralgleichungen [[fragebogen@intglg2008s@iag1]]
- Zur Vorlesung hm22009s@iag1 von PD Dr. Frank Hettlich
- test01@hm22009s@iag1: Einfache Differentialgleichungen [[test01@hm22009s@iag1]]
- test02@hm22009s@iag1: Vektorraum, Lineare Unabhängigkeit [[test02@hm22009s@iag1]]
- test03@hm22009s@iag1: Lineare Abbildungen, Matrixrechnung [[test03@hm22009s@iag1]]
- test04@hm22009s@iag1: Determinanten, Basiswechsel [[test04@hm22009s@iag1]]
- test05@hm22009s@iag1: Eigenwerte, Eigenvektoren [[test05@hm22009s@iag1]]
- test06@hm22009s@iag1: Lineare homogene DGL höherer Ordnung [[test06@hm22009s@iag1]]