Navigation

Content Hotkeys
Distributed and Self-organizing Systems
Distributed and Self-organizing Systems

Bachelorarbeit / Masterarbeit

Web-based Programming Tasks
Web-based Programming Tasks

Research Area

Web Engineering

Advisers

heseba

gaedke

Description

Digital education has been a central challenge for universities even before the global pandemic. In computer science, an important didactic means is the consolidation of learned concepts through its application in concrete programming tasks, for instance in tutorials or for self-study at home. The effort for the manual checking, correction and providing of feedback to the learners can be immense for 20 and more participants. Online learning platforms like OPAL, Moodle etc. provide digital building blocks for task which support (partially) automatic processing of submitted solutions. Their applicability, however, is dependant on the subject and task. Programming tasks are currently not supported well.

This thesis focuses on the realization of a configurable web-based building block for programming tasks in university education. This building block needs to allow learners to enter source code solutions to the given tasks and should be easy to integrate into existing systems as WebComponent. Different levels of support (e.g. syntax highlighting, syntax correction) have to be configurable on a per-task basis. The challenge lies in the automatic evaluation of submitted solutions, which should support three different modi: strict (syntax-correct), moderate (with syntax corrections and automatic validation of outputs through execution of test cases), relaxed (no automatic output validation, but checking of the solution with regard to a set of criteria). To leave some room for individual solutions, heuristics should be used for checking identifier (variable/function names) naming.

The objective of this thesis is the creation of a solution or the combination of existing approaches to solve the problem of web-based programming tasks as described above. This comprises the analysis of the state of the art of automatic task evaluation in online learning platforms, code checking and online tutorials, and web-based code execution (Jupyter, Colab, etc.), as well as the demonstration of the solution by prototypical implementation and a suitable evaluation based on experimentation with realistic sample tasks and solutions.

Description (German)

Die Digitalisierung der Lehre ist eine zentrale Herausforderung für Universitäten, nicht erst seit Beginn der globalen Pandemie. Ein wichtiges didaktisches Mittel in der Informatik besteht im Vertiefen des Erlernten durch die Anwendung in Programmieraufgaben, zum Beispiel in Übungen oder auch im Selbststudium zu Hause. Der Aufwand für die manuelle Überprüfung, Korrektur und das Geben von Rückmeldungen an die Lernenden ist hierbei bereits bei Teilnehmerzahlen ab 20 immens. Online-Lernplatformen wie OPAL, Moodle etc. bieten digitale Aufgabenbausteine, welche eine (teil-)automatisierte Bearbeitung von abgegebenen Aufgaben ermöglichen. Deren Anwendbarkeit ist allerdings abhängig von Fach und Lerninhalten. Beispielsweise funktionieren Lückentexte gut in der Fremdsprachenausbildung. Programmieraufgaben hingegen werden aktuell nicht gut unterstützt.

Diese Arbeit beschäftigt sich mit der Umsetzung eines konfigurierbaren web-basierten Bausteins für Programmieraufgaben in der Lehre. Dieser muss den Lernenden die Eingabe von Quelltexten als Lösung der gestellten Aufgabe ermöglichen und sollte einfach in bestehende Systeme als WebComponent integrierbar sein. Verschiedene Unterstützungs-Niveaus (z.B. Syntax Highlighting, Syntax Correction) müssen aufgabenweise konfigurierbar sein. Die Herausforderung liegt in der automatisierten Auswertung der abgegebenen Lösungen. Diese sollte drei unterschiedliche Modi unterstützen: strict (Syntax Korrekt), moderate (mit Syntax-Korrekturen und automatischer Ergebnis-Überprüfung durch Ausführen von Testfällen), relaxed (keine automatische Ergebnis-Überprüfung, aber Überprüfung der Lösung anhand von Kriterien). Um einen gewissen Spielraum für individuelle Lösungen zu lassen, sollten Heuristiken für die Überprüfung von Bezeichnern (Variablen-/Funktionsnamen) verwendet werden.

Ziel dieser Arbeit ist es einen geeigneten Ansatz oder eine Kombination von Ansätzen zur Lösung des oben beschriebenen Problems von web-basierten Programmieraufgaben umzusetzen. Dies beinhaltet insbesondere die Untersuchung des Stands der Technik bezüglich automatisiert auswertbaren Aufgaben in Online-Lernplatformen, Code-Überprüfung und Online-Tutorials, und Web-basierten Codeausführung (Jupyter, Colab etc.), sowie die Demonstration der Lösung durch prototypische Implementierung des Konzeptes ebenso, wie eine geeignete Evaluation durch Experimente mit realistischen Beispielaufgaben und -Lösungen.


Powered by DGS
Edit list (authentication required)

Press Articles