GrajaGrader for java programs     Documentation     Publications     Downloads     Contact

Graja is a JUnit-PMD-Checkstyle-based grader for java programs submitted by students in formative and summative assessment. This site provides publications, software, and information about Graja.

Selected Publications

Ein Schnittstellen-Datenmodell der Variabilität in automatisch bewerteten Programmieraufgaben

Garmann, Robert: Ein Schnittstellen-Datenmodell der Variabilität in automatisch bewerteten Programmieraufgaben. In Combined Proceedings of the Workshops of the German Software Engineering Conference 2018 (SE 2018), Ulm, Germany, March 06, 2018. CEUR-WS.org. (Online)

Zusammenfassung: Automatisch bewertete, variable Programmieraufgaben stellen besondere Schnittstellenanforderungen an Autobewerter (Grader) und Lernmanagementsysteme (LMS). Um Wiederverwendung von Aufgaben über Systemgrenzen hinweg zu begünstigen, schlagen wir vor, Aufgabenschablonen durch eine von allen beteiligten Systemen genutzte Middleware zu instanziieren und dabei Variabilitätsinformationen in einem Schnittstellen-Datenmodell zu transportieren. Wir stellen ein solches Datenmodell vor, welches für die Grader-unabhängige Kommunikation mit LMS ausgelegt ist und beispielhaft im Autobewerter Graja implementiert wurde. Zudem wird eine Dialogkomponente für die manuelle Werteauswahl vorgestellt, die auch bei großen Wertemengen effizient und Grader-unabhängig einsetzbar ist. Die Eignung des Dialogs und des Datenmodells wird anhand eines typischen Bewertungsszenarios diskutiert.

Abstract: Automatically graded, variable programming tasks put special interface requirements on auto-graders and learning management systems (LMS). To promote reuse of tasks across system boundaries, we propose that all involved systems should instantiate task templates through a middleware, while transporting variability information in an interface data model. We present such a data model, which is designed for grader-independent communication with LMS and was implemented exemplarily in the Graja auto-grader. In addition, a dialogue component for manual value selection is presented, which can be used efficiently and grader-independently, even with large value sets. We discuss the suitability of the dialogue and the data model for a typical grading scenario.

Garmann, Robert: Spezifikation von Variabilität in automatisch bewerteten Programmieraufgaben. Forschungsbericht, Fakultät IV - Wirtschaft und Informatik, Hochschule Hannover, 2018. (Online)

Zusammenfassung: Wir beschreiben eine Möglichkeit, Variationspunkte und deren Varianten in automatisiert bewerteten Programmieraufgaben zu spezifizieren. Solche Variationspunkte kommen bei individualisierbaren Programmieraufgaben zum Einsatz, bei denen jede Studentin und jeder Student eine eigene Variante einer Programmieraufgabe erhält. Die Varianten werden automatisch gebildet, indem an definierten Variationspunkten immer wieder andere, konkrete Werte eingesetzt werden. Schon bei sehr einfachen Aufgaben bestehen Abhängigkeiten zwischen den einzelnen Variationspunkten, die bei der Wahl der konkreten Werte zu berücksichtigen sind. Zudem kann die Menge der gültigen Werte auch bei einfachen Aufgaben so groß werden, dass die vollständige Auflistung aller Wertkombinationen an Ressourcengrenzen scheitert. Die vorgestellte Spezifikation verwendet eine kompakte und für Aufgabenautoren verständliche Sprache, die eine automatische Auswahl von korrekten, den Abhängigkeiten gehorchenden Wertekombinationen ermöglicht. Die Sprache ist unabhängig von den Erfordernissen eines bestimmten Autobewerters und versetzt Frontend- und Backendsysteme in verschiedenen technischen Ökosystemen in die Lage, ausgewählte Werte einer sehr großen Wertemenge zu generieren, deren Abhängigkeiten zu prüfen, sowie ggf. bestimmte Wertbelegungen in einem benutzerfreundlichen Dialog auszuwählen. Wir unterstützen Variationspunkte mit endlichen Mengen vorzugebender diskreter Werte sowie kontinuierliche Wertebereiche, die durch eine vorzugebende Anzahl von Samples diskretisiert werden. Wir beschäftigen uns insbesondere mit der Frage, wie lange Auflistungen gültiger Wertkombinationen durch die Angabe von Ableitungsvorschriften ersetzt werden können. Ein besonderes Augenmerk legen wir auf eine redundanzfreie Beschreibung der Variantenmenge. Die Notation setzt auf XML und Javascript in der Annahme, dass diese Technologien in allen beteiligten Systemen zur Verfügung stehen können.

Garmann, Robert: Eine Java-Bibliothek zur Spezifikation von Variabilität in automatisch bewerteten Programmieraufgaben. Forschungsbericht, Fakultät IV - Wirtschaft und Informatik, Hochschule Hannover, 2018. (Online)

Zusammenfassung: Wir führen schrittweise in den Einsatz einer Java-Bibliothek ein, um Variationspunkte und deren Wertemengen in automatisiert bewerteten Programmieraufgaben zu spezifizieren und als XML-Datei zu exportieren. Solche Variationspunkte kommen bei individualisierbaren Programmieraufgaben zum Einsatz, bei denen jede Studentin und jeder Student eine eigene Variante einer Programmieraufgabe erhält.

Moodle, Grappa, aSQLg, Graja - Neue Entwicklungen bei der Grading-Software der Hochschule Hannover

Garmann, Robert; Fricke, Peter; Reiser, Paul; Bersuch, Christopher; Bott, Oliver J.: Moodle, Grappa, aSQLg, Graja - Neue Entwicklungen bei der Grading-Software der Hochschule Hannover. In Proceedings of the Third Workshop “Automatische Bewertung von Programmieraufgaben” (ABP 2017), Potsdam, Germany, October 5-6, 2017. CEUR-WS.org. (Online)

Zusammenfassung: Die an der Hochschule Hannover entwickelte Grading-Software steigert seit mehreren Jahren die Qualität der Lehrveranstaltungen verschiedener Studiengänge der Hochschule. Qualitätsverbesserungen konnten durch mehrere Evaluierungen belegt werden. Im vorliegenden Beitrag stellen wir Verbesserungen der Software vor, die in den letzten beiden Jahren erreicht wurden. Wir werfen einen Blick auf alle beteiligten Softwareschichten: das Frontend “Moodle” und das hier eingesetzte Moodle-Plugin, die Grader “Graja” und “aSQLg” im Backend, sowie die zwischen diesen Komponenten vermittelnde Middleware “Grappa”. Wir beschreiben einige der erreichten Verbesserungen im Detail und illustrieren diese durch Diagramme und Bildschirmfotos.

Abstract: For several years the grading software developed at the Hanover University of Applied Sciences and Arts has increased the quality of various university courses. Increased quality had been confirmed by several evaluations. In this paper, we present improvements to the software that have been achieved in the past two years. We take a look at all software layers involved: the frontend “Moodle” with its Moodle plugin, the graders “Graja” and “aSQLg” in the backend, as well as the middleware “Grappa” mediating between these components. We describe some of the improvements in detail and illustrate them with diagrams and screen photos.

Der Grader Graja

Garmann, Robert: Der Grader Graja. In: Bott, Oliver J.; Fricke, Peter; Priss, Uta; Striewe, Michael (Hrsg.), Automatisierte Bewertung in der Programmierausbildung, S. 173-189, Waxmann, Münster, 2017. (Online)

Zusammenfassung: Graja ist ein Autobewerter für Java-Programmieraufgaben. Dieses Kapitel beschreibt die in Graja verfügbaren Funktionen, die technische Architektur, die Aufgabenstruktur sowie Einsatzerfahrungen mit Graja.

Graja - Autobewerter für Java-Programme

Garmann, Robert: Autobewerter für Java-Programme. Bericht, Fakultät IV - Wirtschaft und Informatik, Hochschule Hannover, 2016. (Online)

Zusammenfassung: In diesem Bericht wird der Autobewerter Graja für Java-Programme vorgestellt. Wir geben einen Überblick über die unterstützten Bewertungsmethoden sowie die beteiligten Nutzerrollen. Wir gehen auf technische Einzelheiten und Randbedingungen der in Graja eingesetzten Bewertungsmethoden ein und zeigen die Einbindung von Graja in eine technische Gesamtarchitektur. An einem durchgehenden Beispiel stellen wir die Struktur einer Programmieraufgabe sowie die von Graja unterstützten Feedback-Möglichkeiten dar. Informationen zum bisherigen Einsatz des Graders runden den Bericht ab.

Bewertungsaspekte und Tests in Java-Programmieraufgaben für Graja im ProFormA-Aufgabenformat

Garmann, Robert; Fricke, Peter; Bott, Oliver J.: Bewertungsaspekte und Tests in Java-Programmieraufgaben für Graja im ProFormA-Aufgabenformat. In: DeLFI, 11.-14.09.2016, Potsdam. (Online)

Zusammenfassung: Ein Autobewerter für von Studierenden eingereichte Programme führt die im ProFormA-Aufgabenformat sequentiell spezifizierten “Tests” aus, um die Einreichung zu prüfen. Bzgl. der Interpretation und Darstellung der Testausführungsergebnisse gibt es derzeit keinen graderübergreifenden Standard. Wir beschreiben eine Erweiterung des ProFormA-Aufgabenformats um eine Hierarchie von Bewertungsaspekten, die nach didaktischen Aspekten gruppiert ist und Referenzen auf die Testausführungen besitzt. Die Erweiterung wurde in Graja umgesetzt, einem Autobewerter für Java-Programme. Je nach gewünschter Detailaufschlüsselung der Bewertungsaspekte müssen in der Konsequenz Testausführungen in Teilausführungen aufgebrochen werden. Wir illustrieren unseren Vorschlag unter Einsatz der Testwerkzeuge Compiler, dynamischer Softwaretest, statische Analyse sowie unter Einsatz menschlicher Bewerter.

Garmann, Robert: Bewertungsaspekte und Tests in Java-Programmieraufgaben für Graja im ProFormA-Aufgabenformat. Forschungsbericht, Fakultät IV - Wirtschaft und Informatik, Hochschule Hannover, 2016. (Online)

Zusammenfassung: Ein Autobewerter für von Studierenden eingereichte Programme führt die im ProFormA-Aufgabenformat sequentiell spezifizierten “Tests” aus, um die Einreichung zu prüfen. Bzgl. der Interpretation und Darstellung der Testausführungsergebnisse gibt es derzeit keinen graderübergreifenden Standard. Wir beschreiben eine Erweiterung des ProFormA-Aufgabenformats um eine Hierarchie von Bewertungsaspekten, die nach didaktischen Aspekten gruppiert ist und Referenzen auf die Testausführungen besitzt. Die Erweiterung wurde in Graja umgesetzt, einem Autobewerter für Java-Programme. Je nach gewünschter Detailaufschlüsselung der Bewertungsaspekte müssen in der Konsequenz Testausführungen in Teilausführungen aufgebrochen werden. Wir illustrieren unseren Vorschlag unter Einsatz der Testwerkzeuge Compiler, dynamischer Softwaretest, statische Analyse sowie unter Einsatz menschlicher Bewerter.

E-Assessment mit Graja – ein Vergleich zu Anforderungen an Softwaretestwerkzeuge

Garmann, Robert: E-Assessment mit Graja – ein Vergleich zu Anforderungen an Softwaretestwerkzeuge. In: Workshop “Automatische Bewertung von Programmieraufgaben”, 6.11.2015, Wolfenbüttel. (Online)

Zusammenfassung: Automatisiert bewertbare Programmieraufgaben zu erstellen ist so aufwändig, dass man die Aufgaben häufig wiederverwenden und idealerweise auch zwischen verschiedenen Autobewertern (Gradern) portieren will. Da die automatisierte Bewertung studentischer Einrei-chungen Parallelen zum automatisierten Test in der professionellen Softwareentwicklung aufweist, setzen Autobewerter häufig de-facto-Standardwerkzeuge des Softwaretests wie JUnit ein. Dennoch sind viele Programmieraufgaben heute schlecht oder gar nicht auf andere Autobewerter portierbar. In diesem Beitrag zeigen wir zunächst Parallelen und grundsätzliche Unterschiede zwischen e-Assessment und Softwaretest auf. Wir identifizieren anschließend beispielhaft einige Anforderungen an Autobewerter, die nicht an Softwaretestwerkzeuge gestellt werden. Am Beispiel des an der Hochschule Hannover entwickelten und seit mehreren Jahren im Einsatz befindlichen Autobewerters “Graja” zeigen wir, dass diese Anforderungen aufgrund fehlender, Autobewerter-übergreifender Standards zu Abhängigkeiten zwischen Aufgabe und Autobewerter führen. Eine Schlussfolgerung ist, dass Standard-Schnittstellen für diejenigen Anforderungen, die das e-Assessment vom Softwaretest unterscheiden, erst noch entwickelt werden müssen.

Garmann, Robert: E-Assessment mit Graja – ein Vergleich zu Anforderungen an Softwaretestwerkzeuge. Forschungsbericht, Fakultät IV - Wirtschaft und Informatik, Hochschule Hannover, 2015. (Online)

Zusammenfassung: Automatisiert bewertbare Programmieraufgaben zu erstellen ist so aufwändig, dass man die Aufgaben häufig wiederverwenden und idealerweise auch zwischen verschiedenen Autobewertern (Gradern) portieren will. Da die automatisierte Bewertung studentischer Einrei-chungen Parallelen zum automatisierten Test in der professionellen Softwareentwicklung aufweist, setzen Autobewerter häufig de-facto-Standardwerkzeuge des Softwaretests wie JUnit ein. Dennoch sind viele Programmieraufgaben heute schlecht oder gar nicht auf andere Autobewerter portierbar. In diesem Beitrag zeigen wir zunächst Parallelen und grundsätzliche Unterschiede zwischen e-Assessment und Softwaretest auf. Wir identifizieren anschließend beispielhaft einige Anforderungen an Autobewerter, die nicht an Softwaretestwerkzeuge gestellt werden. Am Beispiel des an der Hochschule Hannover entwickelten und seit mehreren Jahren im Einsatz befindlichen Autobewerters “Graja” zeigen wir, dass diese Anforderungen aufgrund fehlender, Autobewerter-übergreifender Standards zu Abhängigkeiten zwischen Aufgabe und Autobewerter führen. Eine Schlussfolgerung ist, dass Standard-Schnittstellen für diejenigen Anforderungen, die das e-Assessment vom Softwaretest unterscheiden, erst noch entwickelt werden müssen.

Sicherheitsimplikationen beim Einsatz von Test Doubles zur automatisierten Bewertung studentischer Java-Programme mit Graja und mockito

Garmann, Robert: Sicherheitsimplikationen beim Einsatz von Test Doubles zur automatisierten Bewertung studentischer Java-Programme mit Graja und mockito. In: Workshop “Automatische Bewertung von Programmieraufgaben”, 28.10.2013, Hannover. (Online)

Zusammenfassung: Wir demonstrieren, dass der Einsatz von Test Doubles bei der automatisierten Bewertung studentischer Java-Programme besondere Sicherheitsfragen aufwirft. Wir skizzieren kurz eine mögliche Antwort auf diese Fragen. Im ersten Teil demonstrieren wir die Erstellung eines sog. AssignmentGraders, der in der Lage ist, interne Programm-schnittstellen eines maschinell zu bewertenden Java-Programms zu beobachten. Beispielhaft nutzen wir den Autobewerter Graja in Verbindung mit mockito Test Doubles. Wir zeigen, wie man Leistungsaspekte einer studentischen Lösung einzeln und gezielt automatisiert bewertet. Bei einer Beschränkung auf die Beobachtung externer Programmschnittstellen würden sich diese Aspekte der gezielten Bewertung entziehen. Im zweiten Teil beleuchten wir Bedrohungen des das zu bewertende Programm ausführenden Systems und gewichten ausgewählte Ursachen. Wir konzentrieren uns auf Bedrohungen, die mit Mitteln der Java-2-Sicherheitsarchitektur beherrschbar sind und liefern einige Beispiele zur Abgrenzung. Die Eigenheiten der Java-2-Sicherheitsarchitektur werfen im Kontext des Test Double Einsatzes Fragen auf, die wir im dritten Teil erörtern. Test Doubles sollten in einem anderen Schutzbereich der Java-2-Sicherheitsarchitektur als der studentische Code liegen. Um eine privilegierte Ausführung der Test Doubles auch dann zu forcieren, wenn der Aufruf aus studentischem Code erfolgt, schlagen wir den Einsatz von Proxy-Objekten vor. Um auch Nicht-Spezialisten der beschriebenen Sicherheitsbelange die Autorenschaft von AssignmentGradern zu ermöglichen, entwickeln wir eine Wrapper-Bibliothek für mockito, deren zentrale Entwurfsideen wir kurz skizzieren.

Evaluation automatisierter Programmbewertung bei der Vermittlung der Sprachen Java und SQL mit den Gradern “aSQLg” und “Graja” aus studentischer Perspektive

Stöcker, Andreas; Becker, Sebastian; Garmann, Robert; Heine, Felix; Kleiner, Carsten; Bott, Oliver J.: Evaluation automatisierter Programmbewertung bei der Vermittlung der Sprachen Java und SQL mit den Gradern “aSQLg” und “Graja” aus studentischer Perspektive. In: DeLFI, 8.-11.09.2013, Bremen. (Online)

Zusammenfassung: Als Bestandteil der Informatik-Lehre werden für die Programmierausbildung vermehrt Methoden der automatisierten Programmbewertung eingesetzt. Für die Programmiersprachen Java und SQL stehen hierfür an der Hochschule Hannover die Werkzeuge “Graja” und “aSQLg” zur Verfügung. In einer Evaluationsstudie wurde ermittelt, inwieweit diese beiden Werkzeuge Studierende und Dozenten unterstützen und wo die Grenzen der Bewertungshilfen dieser Systeme liegen. Befragt wurden 56 Studierende und die Tutoren eines 2. Semesters aus dem Studiengang Informatik im Bereich der Anwendung von Graja für einen Java-Kurs und 76 Studierende im 1. Semester des Studiengangs Medizinisches Informationsmanagement im Bereich der Anwendung von aSQLg für einen Datenbanken-Kurs mit SQL.