arbeiten:debugging-assistent

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
arbeiten:debugging-assistent [28.02.2021 16:31] eit02435arbeiten:debugging-assistent [14.02.2022 08:35] (aktuell) – [Data-Entry] Alexander Bazo
Zeile 2: Zeile 2:
  
 ---- dataentry StudentischeArbeit ---- ---- dataentry StudentischeArbeit ----
-Thema                       : IDE-integrierte Assistenz- und Lernsysteme zur Untersützung von ProgrammieranfängerInnen beim Erlernen von Debugging-Strategien +Thema                                  : IDE-integrierte Assistenz- und Lernsysteme zur Untersützung von ProgrammieranfängerInnen beim Erlernen von Debugging-Strategien  
-Art_thesistypes             : BA +Art_thesistypes                        : BA  
-BetreuerIn_thesisadvisor    : Alexander Bazo +BetreuerIn_thesisadvisor               : Alexander Bazo  
-BearbeiterIn                : Tim Eichinger +BearbeiterIn                           : Tim Eichinger  
-ErstgutachterIn_thesisprofessor  N.N. +ErstgutachterIn_thesisprofessor        Christian Wolff #  
-ZweitgutachterIn_secondthesisprofessor : N.N. +ZweitgutachterIn_secondthesisprofessor : Niels Henze #  
-Status_thesisstate          ausgeschrieben +Status_thesisstate                     abgeschlossen #  
-Stichworte_thesiskeywords   : Software Engineering, Softwaretechnik, Lernstysteme +Stichworte_thesiskeywords              : Software Engineering, Softwaretechnik, Lernstysteme, Assistentssysteme für die Programmierausbildung #  
-angelegt_dt                 : 2021-02-25 +angelegt_dt                            : 2021-02-25  
-Anmeldung_dt                :  +Anmeldung_dt                           2021-06-01 #  
-Antrittsvortrag_dt          :  +Antrittsvortrag_dt                     2021-04-26 #  
-Abschlussvortrag_dt         :  +Abschlussvortrag_dt                     #  
-Abgabe_dt                   :  +Abgabe_dt                               #  
-Textlizenz_textlicense      : ##Lizenz|## +Textlizenz_textlicense                  # #Lizenz|## 
-Codelizenz_codelicense      : ##Lizenz|##+Codelizenz_codelicense                  # #Lizenz|##
 ---- ----
 +
 +
 +
 +
 +
 +
 +
  
 === Hintergrund === === Hintergrund ===
  
-Ein wesentlicher Teil der Softwareentwicklung ist das sogenannte "Debugging", bei dem versucht wird Softwarefehler ("Bugs") zu identifizieren und bereinigen (Debugging2021).+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 Ideeprofessionelle Entwicklungsumgebungen durch entsprechende Modifikationen für Lernende zugänglicher zu machen und zur konkreten Vermittlung von Methodenkompetenz einzusetzen. 
  
 === Zielsetzung der Arbeit === === 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 bei der Debugging-Strategie "Logging" bzw"Print Debugging" unterstützt und begleitet. Das Plugin soll dabei nicht nur als Hilfsmittel für das Debugging von Android-Anwendungen dienensondern auch als didaktisches Mittel innerhalb der Lehre zur Programmierausbildung benutzt werden können[Konkrete Forschungsfrage]. Das Plugin soll nach der Implementierung innerhalb des Kurses "Einführung in die Anwendungsentwicklung mit Android" durch eine Nutzerstudie mit Studierenden evaluiert werden.+Diese Arbeit untersucht die Effektivität unterschiedlich interkativ-gestalteter IDE-Integration zur Vermittlung von Grundlagenwissen im Bereich systematischer Debugging-Strategien. Zu diesem Zweck werden zwei Varianten eines Plugin für die Entwicklungsumgebung *Android Studio* erstellt. Das Plugin leitet die Studierenden bei der Verwendung von *printlining*-basierten Debugging-Ansätzen im eigenen Quellcode anNeben einer passiven, auf die kontext-nahe Informationsvermittlung beschränkten Variante wird zusätzlich eine interaktivestärker assistierende Version umgesetzt. Beide Varianten werden kursbegleitetend unter möglichst realistischen Bedingungen im Rahmen einer Langzeitstudie untersuchtIm Rahmen einer Laborstudie wird im Anschluss an die Feldstudie die Auswirkung beiden Apparate auf einen kurzfristig messbaren Lerneffekt untersucht. 
 + 
 +==== Forschungsfragen ==== 
 + 
 +- Wirkt sich eine stärker assistierende Unterstützung von Studierenden positive auf das Erlernen und selbständige Anwenden systematischer Debugging-Strategien aus? 
  
 === Konkrete Aufgaben === === Konkrete Aufgaben ===
  
-Recherchieren von Verwandten Arbeiten (v.a. Debugging u. Anwendungsentwicklung) und Tools+Zentrale Literaturthemen sammeln und relevante Arbeiten/Quellen suchen. 
-- Implementierung des Plugins für Android Studio +- Konkreten Vorschlag für die didaktisch sinnvolle Vermittlung einer Debugging-Strategie erarbeiten
-Evaluation des Plugins durch eine Nutzerstudie +Zweistufige Implementierung des Plugins (wenig u. viel Interaktivität) 
-Schreiben der Arbeit+Studiendesign planen 
 +Durchführung der Feldstudie und erheben des kurzfristigen Lerneffekts (ggf. extra Studie) 
 +- Auswertung und Ergebnispräsentation (Schriftliche Ausarbeitung)
  
 === Erwartete Vorkenntnisse === === Erwartete Vorkenntnisse ===
  
 - Java (OOP) - Java (OOP)
-- Android (Andwendungsentwicklung)+- Android (Anwendungsentwicklung)
 - Fortgeschrittene Erfahrung mit verschiedenen Debugging-Strategien - Fortgeschrittene Erfahrung mit verschiedenen Debugging-Strategien
  
 === Weiterführende Quellen === === Weiterführende Quellen ===
  
-[1] Debugging. (2021). In Oxford English Dictionary. https://www.lexico.com/definition/debugging+[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