Detailseite
Automatische Fragengenerierung mit Feedback zur Förderung von Überlegungen zur Codequalität
Antragsteller
Professor Dr. Sven Strickroth; Professor Dr. Michael Striewe
Fachliche Zuordnung
Softwaretechnik und Programmiersprachen
Förderung
Förderung seit 2023
Projektkennung
Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 528518019
Software-Qualität ist ein wichtiges Thema sowohl in der Software-Engineering-Forschung als auch in der Praxis. Es gibt viele Softwarequalitätsattribute, von denen die funktionale Korrektheit oft als das wichtigste Attribut angesehen wird, da sie darüber entscheidet, ob eine Software überhaupt nützlich ist. Andere Attribute wie Robustheit, Performanz, Wartbarkeit und Verständlichkeit sind aber ebenfalls für den Erfolg einer Softwareentwicklung von großer Bedeutung. Im Gegensatz dazu fokussieren sich Programmieranfänger oft nur auf funktionale Korrektheit, weshalb der Code häufig eine geringe Codequalität aufweist. Ein Grund dafür könnte sein, dass sich gängige automatische Trainings- und Bewertungstools ebenfalls nur darauf konzentrieren oder (einfache) Rückmeldungen auf der Grundlage von Metriken geben, die für Lernende eventuell nicht verständlich oder umsetzbar sind. Obwohl Lehrkräften die Vermittlung von Codequalität häufig schwerfällt, existieren dazu didaktische Konzepte. Diese sind jedoch nicht für große Kurse geeignet und können keine Diskussionen über Codefragmente für jeden Lernenden anregen. Es gibt zwar Ansätze, die umfangreiches Feedback zum CodeStyle geben, aber diese befassen sich nicht mit den verschiedenen Aspekten der Codequalität wie Sicherheit, Robustheit oder Performanz. Das Hauptproblem ist also nicht ein Mangel an Ideen für die (didaktische) Gestaltung der Lehre, sondern ein Mangel an grundlegenden Konzepten, wie Diskussionen über verschiedene Aspekte der Codequalität auf automatisierte, skalierbare Weise angeregt werden können, ähnlich wie bei etabliertem automatisiertem Feedback zur Korrektheit. Diese Lücke zwischen der großen Relevanz von Codequalität in der Praxis und der geringen Verfügbarkeit von grundlegenden Konzepten, wie man Lernenden oder auch professionellen Entwicklern auf automatisierte, skalierbare Weise umsetzbares Feedback geben kann, ist der Ausgangspunkt für dieses Projekt. Ziel ist es, Fragen für einzelne studentische Abgaben zu generieren, die die verschiedenen oben genannten Dimensionen abdecken. Der Schwerpunkt des Projekts liegt nicht auf pädagogischen Fragen, wie z.B. wie und wann Codequalität diskutiert werden soll, sondern auf den Konzepten und Mechanismen, die erforderlich sind, um die Diskussion und Reflexion über Codequalität in automatisierten Systemen einzubeziehen. Dazu gehören sowohl die automatische Generierung geeigneter, individueller Fragen als auch die automatische Bereitstellung von individuellem Feedback zu den gegebenen Antworten. Letzteres ist wichtig, um sicherzustellen, dass die Prompts zur Reflexion und Diskussion von den Lernenden auch tatsächlich genutzt und verstanden wurden. Die übergreifende Forschungsfrage lautet daher, wie man automatisch Fragen generieren kann, die zum Nachdenken und zur Diskussion über die Codequalität anregen, und wie man die Antworten bewerten kann - sowohl auf der Grundlage des von den Studierenden eingereichten Codes als auch auf skalierbare Weise.
DFG-Verfahren
Sachbeihilfen