Design und Implementierung eines Online-Editors zur Aufzeichnung und Auswertung individuellen Codierungsverhaltens von Programmieren

Offizieller Start der Bearbeitung: 12. Februar 2018

Hintergrund

Die Bebobachtung individuellen Eingabe- und Interaktionsverhaltens von Programmieren kann eine wesentliche Stütze für das bessere Verständnis der entsprechenden Vorgänge sowie die bessere Ausgestaltung der genutzten Werkzeuge darstellen. Für gewinnbringenden Analysen und anschließende Modellbildung ist eine initiale Untersuchung der eigentlichen Codierarbeit notwendig. Dabei muss der Schwerpunkt die möglichst vollständige Aufzeichnung realistischer Programmiersitzungen sein. Aus diesen Daten können verschiedene Erkenntnisse gewonnen werden, die als Ausgangslage zur tiefer gehenden Untersuchung des Codierverhaltens genutzt werden können. Zu den Daten gehören klassiche Metriken wie Performanz oder Fehlerkorrektur aber auch darüber hinausgehende Analysen, die die entstehenden Code-Fragment hinsichtlich Syntax, Formatierung und Refactoring-Vorgängen untersuchen. Im besten Fall erfolgt diese initiale Untersuchung anhand realistischer Szenarien in den gewohnten Arbeitsumgebungen der Testpersonen. In einem solchen Versuchsaufbau ist die Beobachtung einer ausreichenden Anzahl an Testpersonen jedoch schwierig. Auch die Aufzeichnung und Auswertung ist aufgrund der heterogenen Werkzeuglandschaft als schwierig anzusehen. Als Kompromiss kann für eine erste Versuchsreihe auf eine webbasierte Plattform zugegriffen werden, auf der Teilnehmer die Möglichkeit haben, verschiedene Programmieraufgaben zu lösen, während dabei ihr Eingabe- und Interaktionsverhalten aufgezeichnet und ausgewertet wird.

Zielsetzung der Arbeit

Ziel der Arbeit ist die Entwicklung einer Onlineplattform zur Aufzeichnung und Analyse individuellen Codierverhaltens von Programmierern. Angelehnt an das Prinzip der Design Science, soll ein Artefakt entstehen, dass im Anschluss für weitere Untersuchungen des Forschungsgegenstandes genutzt werden kann. Die zu entwickelnde Plattform soll Nutzern die Möglichkeit geben, vorgegebene Programmieraufgaben zu lösen. Während der Arbeit an den Aufgaben wird das komplette Interaktionsverhalten des Nutzers mit der Plattform (dem Editor) aufgezeichnet. In einem zusätzlichen Bereich der Plattform besteht die Möglichkeit individuelle Sitzungen vollständig wiederzugeben sowie unterschiedliche Statistiken und Metriken zum Verhalten der Programmierer einzusehen. Die Inhalte der Plattform sollen für die Programmiersprache Javascript entworfen werden.

Konkrete Aufgaben

Recherche gängiger Metriken zur Analyse von Eingabeverhalten (Schreibverhalten)

Recherche möglicher Ansätze zur syntaktischen und zeitlichen Aufzeichnung bzw. Auswertung von Programmiersitzungen

Recherche möglicher Inhalte (Programmieraufgaben) für die Plattform

Anforderungserhebung für den zu implementierenden Editor

Implementierung des Editors sowie der Auswertungskomponenten auf der Basis gängiger Patterns

Evaluation der Gebrauchstauglichkeit im Rahmen eines Programmierkurses

Erwartete Vorkenntnisse

Gute Kenntnisse im Bereich des Software Engineerings

Gute Programmierkenntnisse (Java, Javascript)

Erfahrungen in der client- und serverseitigen Webentwicklung

Weiterführende Quellen

Relevante Konferenzen: IEEE EDUCON Global Engineering Education Conference

Keywords: Writing Behaviour, Code reading and writing, novice vs experts