MLTutor Konzept
Zur Navigation springen
Zur Suche springen
Inhaltsverzeichnis
- 1 Ziele des Projekts
- 1.1 Automatisierte Überprüfung von Matlab Übungsbeispielen
- 1.2 Selbstüberprüfung der StudentInnen beim Erlernen des Stoffes
- 1.3 Unmittelbares Feedback über den Lernerfolg
- 1.4 Unterstüzung der StudentInnen bei der Lösung der Beispiele (elektronischer Tutor)
- 1.5 Plattformübergreifend (Linux, Windows, MacOSX)
- 1.6 Graphische Oberfläche (IDE)
- 1.7 Benutzung freier Software
- 1.8 Keine private Matlab Lizenz erforderlich
- 1.9 So wenig Einschränkungen wie möglich bei der Erstellung der Beispiele
- 1.10 Erweiterbarkeit auf beliebige interpretierte (z.B. Python, Ruby, Javascript, C-Interpreter) und vielleicht auch kompilierte Sprachen.
- 1.11 Automatisierte Überprüfung
- 1.12 Selbstüberprüfung der StudentIn
- 1.13 Unterstützung der StudentInnen bei der Lösung der Beispiele
- 1.14 Erstellung der Beispiele
- 2 Voraussetzungen
- 3 Umsetzung
Ziele des Projekts
Automatisierte Überprüfung von Matlab Übungsbeispielen
Selbstüberprüfung der StudentInnen beim Erlernen des Stoffes
Unmittelbares Feedback über den Lernerfolg
Unterstüzung der StudentInnen bei der Lösung der Beispiele (elektronischer Tutor)
Plattformübergreifend (Linux, Windows, MacOSX)
Graphische Oberfläche (IDE)
Benutzung freier Software
Keine private Matlab Lizenz erforderlich
So wenig Einschränkungen wie möglich bei der Erstellung der Beispiele
Erweiterbarkeit auf beliebige interpretierte (z.B. Python, Ruby, Javascript, C-Interpreter) und vielleicht auch kompilierte Sprachen.
Automatisierte Überprüfung
Erstellen der Angabe
- Angabe muss Formeln und Graphiken beinhalten können.
- "Leichte" Erstellung der Angabe (LaTeX, Musterdokumente, Templates)
- Angabe muss in verschiedenen Sprachen vorliegen können.
Erstellen der Musterlösung
- Bereitstellung einer Musterlösung, deren Ergebnisse mit der Lösung der StudentIn
verglichen werden. (Variablenvergleich)
- Musterlösung kann aus mehreren Funktionen und Skripten bestehen
- Lösung des Beispiels kann externe Dateien erfordern (Graphiken, Datensätze)
- Musterlösung kann aus Teilaufgaben bestehen, die voneinander abhängig sind
Überprüfung
- Bereitstellung von Testszenarien (Funktionstests, Scripttests)
- Testszenarien sollen auf Anfordernisse flexibel reagieren können (Anzahl an zu überprüfenden Variablen, Anzahl der Parameter von Funktionen)
- Beliebig viele Tests pro Beispiel (z.B. Funktionen, die mit Skalaren, Matrizen und komplexen Zahlen umgehen können müssen)
- Testszenarien können auch Zufallszahlen beinhalten
- Anpassungen an Matlab (Funktionen befinden sich in einer eigenen Datei, Datentypen, implizit definierte Funktionen)
- Erforderte Genauigkeit der Ergebnisse muss regulierbar sein.
- Ergebnis kann graphisch sein. Vergleich?
- Verbotene Funktionen um verschiedene Lösungswege vorgeben zu können und auf Matlab-spezifische Einschränkungen aufmerksam zu machen
Ergebnisse
- Ergebnisse müssen vom Lehrbeauftragten eingesehen werden können
- Ergebnisse müssen detailliert vorliegen (Welche Tests wurden bestanden und welche nicht, welche Variablen wurden falsch gesetzt)
- Lösung der StudentIn muss zusammen mit dem Ergebnis abgelegt werden (Nachvollziehbarkeit, Softwarefehler)
Selbstüberprüfung der StudentIn
- Musterlösung muss in bestimmten Fällen vom Studenten eingesehen werden können.
- StudentIn muss privaten Zugang zur Software erhalten
- Student muss Ergebnisse der Tests einsehen können (Was wurde getestet?, Welche Tests sind fehlgeschlagen?)
- Student muss einen Überblick über alle verfügbaren Beispiele bekommen und welche Lernziele damit erreicht werden. (Aussagekräftige Namen, Einteilung in beliebig verschachtelbare Kategorien)
Unterstützung der StudentInnen bei der Lösung der Beispiele
Hilfestellungen in der Angabe:
- Hyperlinks
- Verweise ins Skriptum
- Empfohlene Kapitel aus der Matlab Hilfe
- Hilfestellung bei den Tests: Welcher Test ist fehlgeschlagen?
- Aussagekräftige Namen der Tests
- Warum könnte er fehlgeschlagen sein? -> Gleiche Hilfestellungen wie in der Angabe
- Möglichkeit den Autor des Beispiels direkt per mail zu kontaktieren
Erstellung der Beispiele
Verschiedene Arten von Beispielen
- Klassische Programmieraufgaben (Variable x soll den Wert y beinhalten, Datei x soll nach Ausführung des Programmes einen bestimmten Inhalt haben)
- Einfache Anleitungen zum Selberprobieren
- Multiple Choice Fragen (basierend auf selbem Prinzip)
- Symbolische Aufgaben ?
Beispiele sollen beliebig verschachtelbar sein (Punkt (b) abhängig von der Lösung von (a)
Überprüfbare Variablen sollen beliebigen Typs sein (Matrizen, Strukturen, Grafiken?)
Voraussetzungen
Netzwerkstruktur
- Durch die Firewall, die die TU-Graz nach außen hin abschottet, wurde das Schreiben eines "normalen" Servers für die Abgabe und die Überprüfung der Beispiele unmöglich gemacht.
- Überprüfung des Zugangs soll jedoch mit den üblichen Zugangsdaten vonstatten gehen
Lösung: Webservices
- Vorteile:
- Kommen durch jede Firewall
- Sind aus fast jeder Programmiersprache verwendbar
- Nachteile:
- Langsamkeit
Umsetzung
Viewer
Wird von der StudentIn dazu benutzt, die Beispiele anzuschauen und Lösungen einzureichen
Drei verschiedene Umsetzungen:
- Webbasierter Viewer für Beispiele: Hat den Vorteil, dass die StudentIn keine zusätzliche Software zu Hause installieren muss. Funktioniert zur Zeit nur mit Mozilla oder Mozilla Firefox, da der Internet Explorer keine Möglichkeit zur Erzeugung komplexer Benutzerinterfaces bietet. Authentifizierung basiert auf Kerberos, dh. nur StudentInnen mit einem Zugang am Institut für theoretische Physik können auf diese Seite zugreifen.
- Eclipse RCP basierter Viewer für Beispiele: wahrscheinlich die beste Lösung. Kann von der StudentIn durch JavaWebstart fast wie ein Applet gestartet werden, bietet durch SWT auch gleiches Aussehen und Performance wie ein herkömmliches Programm.
- Python basierter Viewer: zu viele Probleme mit nicht erfüllten Abhängigkeiten
Editor
Wurde auf der Basis von Eclipse entwickelt
Folgende Features werden zur Zeit implementiert
Matlab
- Syntaxhighlighting für Matlab
- Ausführung von Matlab, Octave und Scilab Programmen (zur Zeit auf Matlab eingeschränkt, damit Kompatibilitätsproblemen aus dem Weg gegangen wird)
- Autoformatierung von Sourcecode
- Debug Unterstützung mit Watch, Breakpoints, Step in/out/over, multiple threads und Variablenviewer
- Matching brackets highlighted
- Comment and Uncomment commands
- Code completion
- Templates completion
- Syntaxcheck durch mlint od. MatlabSyntaxCheck.py
- Unterstützung von doxygen für Codekommentierung
- Workspace-Viewer (Projekt im Rahmen der LV Applikationssoftware für Fortgeschrittene)
Latex Unterstützung
Basierend auf texlipse
MLTutor
- Editierung von MLTutor Dateien (XML-Files) durch einen Formbasierten Editor, wird auf richtige Syntax durch XMLSchema überprüft.
- Testerstellung
- Hinweise, Verweise ins Skriptum, ...