IDE-integriertes Assistenzsystem zur Unterstützung von Programmieranfänger*innen bei der Adaption guter Praktiken der VCS-Nutzung.

Thema:
IDE-integriertes Assistenzsystem zur Unterstützung von Programmieranfänger*innen bei der Adaption guter Praktiken der VCS-Nutzung.
Art:
BA
BetreuerIn:
Alexander Bazo
BearbeiterIn:
Sandro Michl
ErstgutachterIn:
Christian Wolff
ZweitgutachterIn:
Niels Henze
Status:
abgeschlossen
Stichworte:
Softwaretechnik, Assistentssysteme für die Programmierausbildung
angelegt:
2021-12-02
Anmeldung:
2022-02-07
Antrittsvortrag:
2021-12-20

Hintergrund

Der effektive Einsatz von Versionskontrollsystemen gehört zu den wichtigsten Fähigkeiten von Softwareentwickler*innen, da moderne Entwicklungsprozesse in der Regel entsprechende Kompetenzen im Umgang gängiger VCS-Software voraussetzen. Von vielen der inhärenten Vorteile[1], die durch die Nutzung dieser Systeme entstehen, profitieren auch Programmieranfänger*innen. Grundsätzlich sollten entsprechende Fähigkeiten daher bereits früh in der Programmierausbildung gelehrt werden. Ein grundsätzliches Problem ist dabei häufig die Gleichzeitigkeit, mit der die ersten Programmierkenntnisse und die Anwendung notwendiger Werkzeuge gelehrt werden [2]. Zusätzlich erfordert der bewusste Einsatz von Versionskontrollsystemen in der Regel auch Wissen über den Entwicklungsprozess, das bei Anfänger*innen nicht vorausgesetzt werden kann. Ein möglicher Lösungsansatz sind assistierende Systeme, die Abläufe der Versionskontrolle unaufdringlich und zielgruppenangemessen in die Arbeitsabläufe der Lernenden integrieren [3].

Zielsetzung der Arbeit

Im Rahmen der Arbeit wird ein Assistenzsystem entwickelt, das wesentliche Abläufe eines VCS-Workflows anfängerfreundlich in eine bestehende Entwicklungsumgebung integriert. Das System unterstützt Programmieranfänger*innen bei der Dokumentation Ihrer Arbeit und erlaubt die Exploration der somit entstehenden Versionsgeschichte. Der umgesetzte Ansatz wird unter realen Bedingungen im Rahmen einer qualitativen Feldstudie evaluiert. Die Arbeit untersucht dabei die Frage, inwieweit ein solches, indirekt wirkendes, System das Bewusstsein über und die Akzeptanz guter VCS-Praktiken innerhalb der Zielgruppe erhöhen kann. Zu diesem Zweck wird die Verwendung des implementieren Systems durch potenzielle Nutzer*innen über einen längeren Zeitraum begleitet und ausgewertet.

Forschungsfrage: Kann ein indirekt wirkendes Assistenzsystem für Programieranfänger*innen Bewusstsein und Akzeptanz guter VCS-Praktiken steigern?

Konkrete Aufgaben

  • Aufarbeitung verwandter Arbeiten zu u.a. den Themen: Assistenzsysteme in der Programmierausbildung und Versionskontrolle als Lerninhalt
  • Design und Implementierung, des Assistenzsystems (Prototyp)
  • Technische Validierung den Prototypen
  • Qualitative Evaluation im Rahmen einer Feldstudie unter realistischen Bedingungen

Erwartete Vorkenntnisse

  • Programmiererfahrung
  • Kenntnisse im Studiendesign

Weiterführende Quellen

[1]: Raymond, Understanding Version-Control Systems, o.D., online: http://www.catb.org/~esr/writings/version-control/version-control.html

[2]: Isomöttönen & Cochez, Challenges and Confusions in Learning Version Control with Git, 2014, online: https://jyx.jyu.fi/bitstream/handle/123456789/44859/1/dvcsmisconceptionsfinal%203.pdf

[3]: Matthew D. Beckmana et al., Implementing Version Control With Git and GitHub as a Learning Objective in Statistics and Data Science Courses, 2021, online: https://www.tandfonline.com/doi/pdf/10.1080/10691898.2020.1848485