IDE-integrierte Assistenz- und Lernsysteme zur Untersützung von ProgrammieranfängerInnen beim Erlernen von Debugging-Strategien

Hintergrund

Der Begriff Debugging beschreibt das Suchen und Beheben schadhafter Stellen (Bugs) in Computerprogrammen. Debugging gehört dabei zu den wichtigsten Aufgaben von Programmieren und Programmiererinnen die zu diesem Zweck unterschiedliche Methoden einsetzten. Die Fähigkeit zur systematischen Fehleranalyse wird dabei bereits während der Ausbildung, z.B. im Rahmen klassischer Einführungskurse (CS 101) oder konkreten, studentischen Softwareprojekten benötigt. Die Notwendigkeit einer entsprechenden Vermittlung dieser Fähigkeiten im Rahmen der schulischen oder akademischen Ausbildung wurde bereits in zahlreichen Publikationen nachgewiesen [1]. Dabei wurden sowohl grundlegende Untersuchungen studentischen Debugging-Verhaltens vorgenommen [2][3] als auch konkrete Frameworks [4] oder Vorgehensmodelle [5] entworfen. Diese Arbeit kombiniert diese Ansätze mit der Idee, professionelle Entwicklungsumgebungen durch entsprechende Modifikationen für Lernende zugänglicher zu machen und zur konkreten Vermittlung von Methodenkompetenz einzusetzen.

Zielsetzung der Arbeit

Ziel der Arbeit ist es, auf Basis einschlägiger Literatur, ein Plugin für die Android Studio IDE zu implementieren, das ProgrammieranfängerInnen hilft Debugging-Strategien, insbesondere „Logging“ bzw. „Print Debugging“, zu erlernen. Das Plugin soll Programmier-Novizen die Möglichkeit bieten, das Ziel des erfolgreichen Debuggings durch IDE-integrierte interaktive Elemente besser und nachhaltiger zu erreichen. Dabei soll das Tool nicht nur als Hilfsmittel für das Debugging von Android-Anwendungen dienen, sondern hauptächlich auch als didaktisches Mittel innerhalb der Lehre zur Programmierausbildung benutzt werden können. Konkret soll daher in dieser Arbeit eruiert werden, wie sich unterschiedliche Grade der Interaktivität von einem solchen Assistenzsystem zur Vermittlung von Debugging-Methoden auf den Lerneffekt auswirkt. Das Plugin soll kursbegleitend zum Kurs Einführung in die Anwendungsentwicklung mit Android implementiert werden und anschließend anhand einer Feldstudie mit TeilnehmerInnen aus diesem Kurs im Hinblick auf den kurfristigen Lerneffekt evaluiert werden.

Konkrete Aufgaben

Recherchieren von Verwandten Arbeiten (v.a. Debugging u. Anwendungsentwicklung) und Tools.

Implementierung des Plugins für Android Studio

Evaluation des Plugins durch eine Nutzerstudie

Schreiben der Arbeit

Erwartete Vorkenntnisse

Java (OOP)

Android (Andwendungsentwicklung)

Fortgeschrittene Erfahrung mit verschiedenen Debugging-Strategien

Weiterführende Quellen

[1] Renée McCauley, Sue Fitzgerald, Gary Lewandowski, Laurie Murphy, Beth Simon, Lynda Thomas & Carol Zander (2008) Debugging: a review of the literature from an educational perspective, Computer Science Education, 18:2, 67-92, DOI: 10.1080/08993400802114581

[2] Laurie Murphy, Gary Lewandowski, Renée McCauley, Beth Simon, Lynda Thomas, and Carol Zander. 2008. Debugging: the good, the bad, and the quirky – a qualitative analysis of novices' strategies. SIGCSE Bull. 40, 1 (March 2008), 163–167. DOI:https://doi.org/10.1145/1352322.1352191

[3] S. Fitzgerald, R. McCauley, B. Hanks, L. Murphy, B. Simon and C. Zander, „Debugging From the Student Perspective,“ in IEEE Transactions on Education, vol. 53, no. 3, pp. 390-396, Aug. 2010, doi: 10.1109/TE.2009.2025266.

[4] Chen Li, Emily Chan, Paul Denny, Andrew Luxton-Reilly, and Ewan Tempero. 2019. Towards a Framework for Teaching Debugging. In Proceedings of the Twenty-First Australasian Computing Education Conference (ACE '19). Association for Computing Machinery, New York, NY, USA, 79–86. DOI:https://doi.org/10.1145/3286960.3286970

[5] Paulina Haduong and Karen Brennan. 2018. Getting Unstuck: New Resources for Teaching Debugging Strategies in Scratch (Abstract Only). In Proceedings of the 49th ACM Technical Symposium on Computer Science Education (SIGCSE '18). Association for Computing Machinery, New York, NY, USA, 1092. DOI:https://doi.org/10.1145/3159450.3162248