arbeiten:onboarding_von_programmieranfaengern_in_professionellen_entwicklungsumgebungen

Onboarding von Programmieranfängern in professionellen Entwicklungsumgebungen

Thema:
Onboarding von Programmieranfängern in professionellen Entwicklungsumgebungen
Art:
BA
BetreuerIn:
Alexander Bazo
BearbeiterIn:
Daniela Krapf
ErstgutachterIn:
Christian Wolff
ZweitgutachterIn:
Niels Henze
Status:
abgeschlossen
Stichworte:
Software Engineering Education, Assistentssysteme für die Programmierausbildung
angelegt:
2019-11-28
Antrittsvortrag:
2020-03-09

Hintergrund

Der Einsatz professioneller Entwicklungsumgebung in der Softwaretechnikausbildung ist mit Vor- und Nachteilen verbunden. Während die frühe Heranführung an diese Werkzeuge wünschenswert und im Kontext der weiteren Ausbildung häufig notwendig ist, treten bei der Verwendung expertenorientierter Tools durch Novizen absehbare Probleme auf. Nutzer sind schnell verwirrt und werden dadurch langsamer, frustriert und neigen zu Fehlern [1].

Ein sauberes Onboarding des Nutzers kann solchen Problemen entgegenwirken. Onboarding ist ein Begriff, der aus dem Personalmanagement entlehnt ist [2] und für die Softwareentwicklung angepasst wurde.

Google definiert den Begriff in seinen Material Design Guidelines wie folgt und legt dabei Wert darauf, Onboarding nur neuen Nutzern zu zeigen: „Onboarding is a virtual unboxing experience that helps users get started with an app.“ [3]. Die Herangehensweisen dabei sind divers. Ein bewährtes Mittel ist die Bereitstellung von Anwendungstutorials [4]. Eine verbesserte Form der Schritt-für-Schritt-Anleitung, der follow-me doc wizard, wurde für Eclipse implementiert [5]. Daneben gibt es den Ansatz der Videotutorials, die auch schon zu tausenden in teils besserer, teils schlechterer Qualität auf YouTube zu finden sind. Dabei kommt es vor, dass Nutzer nicht schritthalten können mit der Videogeschwindigkeit oder Navigations-schwierigkeiten haben. Ein Ansatz, um dieses Problem zu umgehen, sind kontext-sensitive Kurzvideos, ToolClips [6] oder Pop-ups [1]. Das Navigationsproblem versuchen Banovic et al. [7] mit ihrem System Waken zu lösen, das es Nutzern ermöglicht, mit einem Videotutorial wie mit der Software selbst zu interagieren. Anderen reichen Videotutorials nicht aus, da diese nicht innerhalb einer Anwendung verfügbar und somit schlechter nutzbar sind. Stattdessen setzt man mit Ambient Help auf ausgelagerte kontext-sensitive Lernressourcen, um opportunistisches Lernen zu unterstützen [8].

Durch die Analyse speziell für Anfänger gemachter Entwicklungsumgebungen [9, 10] wird untersucht, worauf diese ihren Fokus legen, um die Einstiegshürde zu verringern und den Umgang damit zu erleichtern. Unter Berücksichtigung der Probleme, die Anfänger mit professionellen IDEs haben [11, 12, 13], soll eine Lösung für das Onboarding von Erstsemestlern bei der IDE IntelliJ gefunden werden.

Zielsetzung der Arbeit

Im Rahmen der Arbeit wird die Frage untersucht, wie die Adaption professioneller Werkzeuge für Programmiernovizen erleichtert werden kann, um es Einsteigern zu ermöglichen, den Fokus schnellstmöglich auf das Erlernen des Programmierens an sich zu legen. Zu diesem Zweck wird sich zunächst einen Überblick verschafft, welche Möglichkeiten es generell für das Onboarding in verschiedenen Situtationen gibt und evaluiert, welche davon am besten für den Kontext von Entwicklungsumgebungen geeignet ist.

Grundlage für die Umsetzung ist neben der Literatur eine nutzerzentrierte Anforderungserhebung, in deren Rahmen u.a. auch akute Probleme bei der Verwendung der Entwicklungsumgebung während der Übung aufgezeigt werden sollen. Darauf aufbauend wird voraussichtlich eine prototypisch Entwicklung einer in die IDE (hier IntelliJ) integrierten Onboarding-Lösung für Programmieranfänger des Programmier-Einführungskurs des Lehrstuhls für Medieninformatik entwickelt.

Eine Version von IntelliJ mit der prototypischen Erweiterung soll abschließend hinsichtlich ihrer Nutzbarkeit qualitativ von Probanden bewertet werden.

Konkrete Aufgaben

  • Überblick verschaffen über verschiedene Möglichkeiten des Onboardings
  • Probleme von Programmieranfängern mit IntelliJ identifizieren
  • Überblick über die von den Programmierkurs-Teilnehmern benötigten/verwendeten Funktionen verschaffen
  • Festlegen, welche Funktionen hilfreich sind und den Lernprozess unterstützen
  • Diese Funktionen durch ein Onboarding begreifbar machen
  • Den Prototypen qualitativ evaluieren
  • Auswertung

Stichwörter

Learnability, Onboarding, Ambient system, information interfaces and presentation, tooltips, programming-by-demonstration

Weiterführende Quellen

[1] Hucko, M., Gazo, L., Simun, P., Valky, M., Moro, R., Simko, J., & Bielikova, M. (2019). YesElf: Personalized Onboarding for Web Applications. In Adjunct Publication of the 27th Conference on User Modeling, Adaptation and Personalization (pp. 39-44). ACM.

[2] https://de.wikipedia.org/wiki/Onboarding, abgerufen am 12.12.2019

[3] https://material.io/design/communication/onboarding.html, abgerufen am 11.12.2019

[4] Fernquist, J., Grossman, T., & Fitzmaurice, G. (2011). Sketch-sketch revolution: an engaging tutorial system for guided sketching and application learning. In Proceedings of the 24th annual ACM symposium on User interface software and technology (pp. 373-382). ACM.

[5] Bergman, L., Castelli, V., Lau, T., & Oblinger, D. (2005). DocWizards: a system for authoring follow-me documentation wizards. In Proceedings of the 18th annual ACM symposium on User interface software and technology (pp. 191-200). ACM.

[6] Grossman, T., & Fitzmaurice, G. (2010). ToolClips: an investigation of contextual video assistance for functionality understanding. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 1515-1524). ACM.

[7] Banovic, N., Grossman, T., Matejka, J., & Fitzmaurice, G. (2012). Waken: reverse engineering usage information and interface structure from software videos. In Proceedings of the 25th annual ACM symposium on User interface software and technology (pp. 83-92). ACM.

[8] Matejka, J., Grossman, T., & Fitzmaurice, G. (2011). Ambient help. In Proceedings of the SIGCHI Conference on Human Factors in Computing Systems (pp. 2751-2760). ACM.

[9] Kölling, M. (2008). Using BlueJ to introduce programming. In Reflections on the Teaching of Programming (pp. 98-115). Springer, Berlin, Heidelberg.

[10] Lorenz, G. (2009). Modellieren & Programmieren Lernen mit DrScheme.

[11] Rigby, P. C., & Thompson, S. (2005, October). Study of novice programmers using Eclipse and Gild. In Proceedings of the 2005 OOPSLA workshop on Eclipse technology eXchange (pp. 105-109). ACM.

[12] Reis, C., & Cartwright, R. (2004). Taming a professional IDE for the classroom. In ACM SIGCSE Bulletin (Vol. 36, No. 1, pp. 156-160). ACM.

[13] Storey, M. A. et al. (2003). Improving the usability of Eclipse for novice programmers. In Proceedings of the 2003 OOPSLA workshop on eclipse technology eXchange (pp. 35-39). ACM.