MLTutor Konzept

Aus Physik
Zur Navigation springen Zur Suche springen

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, ...