Aufgabentyp CODE READING (Jack2)
Der Aufgabentyp CODE_READING steht einen speziellen Aufgabentyp für die Programmierausbildung bereit, bei dem Studierende die Bedeutung eines Programmcodes durch schrittweise Nachverfolgung seiner Ausführung ermitteln sollen. Ihnen wird dazu ein kurzer Programmcode und ein konkrter Aufruf einer darin befindlichen Methode vorgegeben und sie sollen eine sogenannte Trace-Tabelle ausführen, die die Entwicklung der Variablenwerte des Codes zeilenweise für jeden Programmschritt auflistet. JACK stellt dazu in der Benutzeroberfläche eine Tabelle bereit, die dynamisch um Spalten und Zeilen erweitert werden kann. Automatisches Feedback weist auf verschiedene mögliche Fehler hin. Um dieses Feedback zu erzeugen, ist es notwendig, der Aufgabe den "Code Reading Checker" zuzuweisen. Allgemeine Informationen zum Hinzufügen von Checkern zu Aufgaben befinden sich auch auf der Übersichtsseite zur Aufgabenkonfiguration. Die automatische Auswertung ist bisher nur für Java-Code möglich.
Um die Aufgabe vollständig zu konfigurieren, sind insgesamt folgende Einstellungen nötig:
- Die Aufgabenstellung muss in der externen Beschreibung abgelegt werden. Diese sollte insbesondere den konkreten Aufruf erhalten, mit dem der zu betrachtende Code gestartet wird.
- Eine Datei mit dem zu betrachtenden Code muss als Resource vom Typ "INSTRUCTION_SHEET" an die Aufgaben angehangen werden.
- Eine weitere Datei mit einem Treiber für die automatische Auswertung muss als Resource vom Typ "HIDDEN_SHEET" an die Aufgaben angehangen werden. Darin muss sich genau eine Methode befinden, die mit einer @Test("Name")-Annotation versehen ist, und die einen Methodenaufruf auf den betrachteten Code wie in der Aufgabenstellung vorgegeben durchführt.
- In den Einstellungen des Checkers muss der Name der im Code vorhandenen Klasse im Feld "Classes to trace" eingetragen werden.
- In den Einstellungen des Checkers muss die Codedatei im Feld "Reference Source" ausgewählt werden.
- In den Einstellungen des Checkers muss die Treiberdatei im Feld "Test driver class" ausgewählt werden.
JACK führt für die Bewertung den betrachteten Code durch den Testtreiber aus und erzeugt dadurch die Musterlösung. Diese wird anschließend mit der studentischen Einreichung verglichen.