Entwurf und Implementierung eines erweiterbaren Second Screen Feedback Systems zur Unterstützung von Programmieranfängern bei der Verwendung von ESLint

Hintergrund

Statische Quellcodeanalyse (Linting) kann als Feedbacksystem eingesetzt werden, um Programmieren direkte Hinweise zu dem von ihnen erstellen Code zu geben. Durch verschiedene Regelsätze, mit denen der produzierte Code abgeglichen wird, können dabei das Einhalten gegebene Qualitätsansprüche überprüft werden, formale und syntaktische Fehler festgestellt werden sowie individuelle Analysekriterien angewendet werden. Grade für Programmieranfänger ist automatisches Feedback notwendig und hilfreich, da so das Selbststudium unterstützt wird. Fehler- und Regelbeschreibungen sind dabei meist jedoch nicht auf den Wissensstand von Neulingen ausgerichtet und können von z.B. Studierenden zu Beginn der Beschäftigung mit einer neuen Programmiersprache nur schwer interpretiert werden. Ein sinnvolles Lintingsytem für Programmieranfänger muss daher die gefundenen fehlerhaften Stellen im Code zeitnah und verständlich beschreiben und dabei alle nötigen Informationen liefern, um dass Problem und vor allem dessen Lösung zu verstehen.

Zielsetzung der Arbeit

In dieser Arbeit soll ein exemplarische Feedbacksystem für Programmieranfänger umgesetzt werden. Grundlage dafür ist die Programmiersprache Javascript und deren Einsatz zur Implementierung von einfachen Browser-Anwendungen. Das System soll sich dabei als Plugin in einen verbreiteten Editor integrieren und die eigentlichen Fehlerbeschreibungen und Erklärungen auf einem zweiten System, einem Tablet anzeigen. Ziel dabei ist es, die zusätzliche Anzeigefläche sowie weitere Vorteile des Second Screen-Ansatzes zur optimalen Unterstützung der Programmieranfängern zu nutzen, ohne die eigentliche Arbeitsumgebung zu verändern. Das im Rahmen der Arbeit entwickelte System soll Grundlage für weitere Untersuchungen im angesprochenen Problemkontext sein.

Konkrete Aufgaben

Unterstüzung bei einer Vorstudie zum Einsatz von Lintern unter Programmieranfängern

Implementierung eines Plugins für einen beliebigen Text-Editor zur Weitergabe von ESLint-Fehlern und Warnung

Implementierung einer verwaltbaren Datenbank zur detaillierten Beschreibung von ESLint-Fehlern und Warnung

Implementierung einer Android-Anwendung zur Live-Darstellung der Fehler (mit Kontext) und entsprechenden Beschreibungen

Abschließende Evaluation des implementierten Systems mit dem Ziel, dessen Gebrauchstauglichkeit zu validieren

Erwartete Vorkenntnisse

Gute Programmierkenntnisse in Javascript und Java (Android)

Gute Kenntnisse auf den Gebieten Software Engineering im Allgemeinen und Codequalität im Speziellen

Erfahrungen mit dem Einsatz von ESLint bzw. Linting-Tools im Allgemeinen

Weiterführende Quellen

Nghi Truong, Paul Roe, and Peter Bancroft. 2004. Static analysis of students' Java programs. In Proceedings of the Sixth Australasian Conference on Computing Education - Volume 30 (ACE '04), Raymond Lister and Alison Young (Eds.), Vol. 30. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 317-325.

Nghi Truong, Paul Roe, and Peter Bancroft. 2005. Automated feedback for „fill in the gap“ programming exercises. In Proceedings of the 7th Australasian conference on Computing education - Volume 42 (ACE '05), Alison Young and Denise Tolhurst (Eds.), Vol. 42. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 117-126.

ESLint [http://eslint.org/]