Refine
Year of publication
Document Type
- Report (9)
- Bachelor Thesis (6)
- Conference Proceeding (5)
- Master's Thesis (2)
Has Fulltext
- yes (22)
Is part of the Bibliography
- no (22)
Keywords
- Programmierung (12)
- E-Learning (11)
- Grader (11)
- Computerunterstütztes Lernen (10)
- Autobewerter (9)
- Übung <Hochschule> (9)
- Lernaufgabe (8)
- E-Assessment (7)
- Programmieraufgabe (7)
- Softwaretest (7)
Die automatisierte Bewertung studentischer Übungsabgaben in Programmieren-Lehrveranstaltungen weist Parallelen zum automatisierten Test in der professionellen Softwareentwicklung auf. Allerdings muss ein Autobewerter (Grader), um lernförderlich zu sein, andere Zielsetzungen erfüllen als üblicherweise im professionellen Softwaretest eingesetzte Analyse- und Testwerkzeuge. Dieser Beitrag identifiziert wesentliche Unterschiede und beschreibt, wie sich diese Unterschiede in dem an der Hochschule Hannover entwickelten und seit mehreren Jahren im Einsatz befindlichen Autobewerter "Graja" niederschlagen.
Automatisiert bewertbare Programmieraufgaben dienen Studierenden zum Einüben von Programmierfertigkeiten. Die Verfügbarkeit von mehreren verschiedenen Aufgaben, die denselben Stoff abdecken, ist für verschiedene Zwecke hilfreich. Eine Programmieraufgabe lässt sich durch Einführung von Variationspunkten variabel gestalten. Die hierbei entstehende Aufgabenschablone ist Ausgangsbasis der sogenannten Materialisierung, der automatischen Generierung konkreter Aufgaben. Der vorliegende Beitrag stellt ein Datenmodell mit dem Ziel vor, sowohl die Auswahl von Variationspunktwerten als auch die automatische Materialisierung auf verschiedenen Systemen in verschiedenen Programmiersprachen zu unterstützen. Das vorgeschlagene Datenformat ermöglicht Lernmanagementsystemen die Unterstützung variabler Programmieraufgaben bei gleichzeitiger Unkenntnis des eingesetzten Autobewerters.
Automatische Bewertungssysteme für Programmieraufgaben (Grader) sind komplexe Softwaresysteme. Automatisch ausführbare Regressionstests können kostengünstig potenzielle Fehler im Grader aufdecken. Im vorliegenden Beitrag soll beschrieben werden, wie Musterlösungen als Eingabedaten für automatische Regressionstests fungieren können. Es geht also um die Vorstellung einer Lösung eines Software Engineering Problems für E-Learning-Systeme. Wir betrachten, welche Eigenschaften des ProFormA-Aufgabenformats für automatische Regressionstests genutzt werden können und schlagen Erweiterungen des Formats vor. Der Beitrag beschreibt die beispielhafte Implementierung eines automatischen Black Box Systemtests für den Autobewerter Graja und geht dabei u. a. auf die Gestaltung eines Record-Playback-Vorgehens, auf einen unscharfen Soll-Ist-Vergleich sowie auf die Frage der Lokalisierbarkeit von entdeckten Regressionen ein.
Wir beschreiben und belegen anhand eines Pilotprojekts in einer zweiten Grundschulklasse, dass Informatik in der Grundschule das Potential hat, fächerübergreifend Kompetenzen in fast allen Fächern des Grundschulkanons zu fördern. Wir erläutern mehrere Unterrichtseinheiten eines ScratchJr-Einsatzes und dokumentieren positive Wirkungen auf vielfältige Kompetenzen, die Kinder im Grundschulalter erwerben sollen. Der Beitrag stellt einen Erfahrungsbericht und qualitative Ergebnisse zur Verfügung. Eingesetzte Arbeitsmaterialien werden online zur Verfügung gestellt. Die bisherigen positiven Erfahrungen haben uns veranlasst, die Arbeit mit ScratchJr in der Pilotklasse auf mehrere Monate auszudehnen.
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.
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.
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.
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.
Automatisiert bewertbare Programmieraufgaben definieren Tests, die auf Einreichungen angewendet werden. Da Testergebnisse nicht mit Bewertungsergebnissen gleichzusetzen sind, schlagen wir ein Beschreibungsformat vor, das Testergebnisse auf Bewertungsergebnisse abbildet. Lehrkräfte können die Abbildungsvorschrift an ihren Lehrkontext anpassen. Der Vorschlag ist unabhängig von den beteiligten Autobewertern, von den eingesetzten Benutzungsschnittstellen und von der zu lernenden Programmiersprache einsetzbar. Das Format basiert auf verschachtelten Bewertungskategorien, welche um ein Nullifikationen-Konzept ergänzt werden. Letzteres sucht einen Ausgleich im Spannungsfeld zwischen einem für Studierende einfach verständlichen Bewertungsergebnis und den Eigenarten der eigentlich nicht für Bewertungszwecke erfundenen, nichtsdestotrotz regelmäßig und sinnvollerweise für Bewertungszwecke eingesetzten Softwarewerkzeuge.
„Grappa“ ist eine Middleware, die auf die Anbindung verschiedener Autobewerter an verschiedene E-Learning-Frontends respektive Lernmanagementsysteme (LMS) spezialisiert ist. Ein Prototyp befindet sich seit mehreren Semestern an der Hochschule Hannover mit dem LMS „moodle“ und dem Backend „aSQLg“ im Einsatz und wird regelmäßig evaluiert. Dieser Beitrag stellt den aktuellen Entwicklungsstand von Grappa nach diversen Neu- und Weiterentwicklungen vor. Nach einem Bericht über zuletzt gesammelte Erfahrungen mit der genannten Kombination von Systemen stellen wir wesentliche Neuerungen der moodle-Plugins, welche der Steuerung von Grappa aus moodle heraus dienen, vor. Anschließend stellen wir eine Erweiterung der bisherigen Architektur in Form eines neuentwickelten Grappa-php-Clients zur effizienteren Anbindung von LMS vor. Weiterhin berichten wir über die Anbindung eines weiteren Autobewerters „Graja“ für Programmieraufgaben in Java. Der Bericht zeigt, dass bereits wichtige Schritte für eine einheitliche Darstellung automatisierter Programmbewertung in LMS mit unterschiedlichen Autobewertern für die Studierenden absolviert sind. Die praktischen Erfahrungen zeigen aber auch, dass sowohl bei jeder der Systemkomponenten individuell, wie auch in deren Zusammenspiel via Grappa noch weitere Entwicklungsarbeiten erforderlich sind, um die Akzeptanz und Nutzung bei Studierenden sowie Lehrenden weiter zu steigern.