Design, Implementierung und Evaluation eines intelligenten Systems zur Zeit- und Aktivitätserfassung für die Unterstützung des Selbsstudiums von Programmieranfängern

Hintergrund

Universitäre Einführungskurse auf dem Gebiet der Programmierung sind in der Regel auf Studierende ohne relevante Vorkenntnisse zugeschnitten. Die Studierenden müssen die theoretischen Grundlagen verstehen und das gelehrte praktisch umsetzten. Dazu werden in Vorlesungen oder Tutorien (labs) Teile der Kursinhalte unter Anleitung vorgestellt, erklärt und umgesetzt. Ein nicht unwesentlicher Teil dieser Veranstaltungen wird jedoch im Selbststudium aufbereitet und vertieft. Die hohe inhaltliche Dichte dieser Kurse, in denen in der Regel die Grundlagen der Programmierung bzw. Softwaretechnik parallel zur Einführung einer ersten Programmiersprache vermittelt werden, erfordern von den Teilnehmern dabei einen hohen Grad an selbstständigem und selbstorganisiertem Lernen. Das fehlende Domänen-Wissen der Neulinge erschwert dabei deren Selbsteinschätzung im Bezug auf die erarbeiteten Inhalte. Der Bereich des Selbststudiums ist hier deshalb besonders kritisch zu betrachten, da, anders als in den gemeinschaftlich durchgeführten Vorlesungen und Tutorien keine Möglichkeit zur direkten Einflussnahme, z.B. durch konkretes Feedback, durch die Lehrenden besteht. Eine indirekte Hilfestellung für die Studierenden könnten daher solche Assistenzsysteme darstellen, die die persönliche Beschäftigung mit den Kursinhalten, insbesondere deren praktische Umsetzung, in aufbereiteter Form für den jeweiligen Lernenden bereitstellt. Diese Arbeit untersucht diese Möglichkeiten der systematischen Erfassung (tracking) und Aufbereitung des Selbststudiums der Studierenden am Beispiel der Einführung in die objektorientierte Programmierung am Lehrstuhl für Medieninformatik der Universität Regensburg.

Technischer Hintergrund

Technische Grundlagen für die Arbeit sind diejenigen Teilbereiche des Selbststudiums die sich aus dem Aufzeichnen und Auswerten des Interaktionsverhaltens der Studierenden in Bezug auf die im Kurs eingesetzte Entwicklungsumgebung ergeben. Dies umfasst im weitesten Sinne alle, durch den Einsatz eines entsprechenden Plugins erfassbaren, Interaktionen zwischen Nutzer und Entwicklungsumgebung.

Zielsetzung der Arbeit

Ziel der Arbeit ist die Entwicklung und Evaluation eines geeigneten Systems, das Programmieranfängern (hier: Teilnehmern der Vorlesung Einführung in die objektorientierte Programmierung) eine visuelle und inhaltliche Aufbereitung ihres Selbststudiums bietet. Für diesen Zweck sollten die Aktivitäten der Studierenden innerhalb der eingesetzten Entwicklungsumgebung aufgezeichnet und mit den Kursinhalten in Beziehung gesetzte werden. Das sich daraus ergebende Bild soll den Studierenden in aufbereiteter Form präsentiert werden um eine bessere Selbsteinschätzung des Lernprozesses zu erlauben.

Im Rahmen der Arbeit sollen zu diesem Zweck Antworten auf die folgenden Fragen gefunden werden:

Wie gestalten die Besucher der OOP-Vorlesung das Selbststudium der Kursinhalte? Wie schätzen Sie ihren persönlichen Lernfortschritt ein?

Wie kann das Selbststudium durch Beobachtung des individuellen Interaktionsverhaltens der Studierenden in Bezug auf die eingesetzte Entwicklungsumgebung erfasst und beschrieben werden?

Welche erfassbaren Aktivitäten können in diesem Kontext sinnvoll aufbereitet und präsentiert werden um diese Selbsteinschätzung zu erleichtern bzw. zu unterstützen?

Kann ein entsprechendes System positiven Einfluss auf die Selbsteinschätzung und dadurch auch auf den Lernfortschritt haben?

Konkrete Aufgaben

Systematische Erfassung und Beschreibung des aktuell im Kurs durchgeführten Selbststudiums durch Befragung der relevanten Zielgruppe mittels geeigneter Instrumente

Recherche der Möglichkeiten, Aktivitäten in der eingesetzten Entwicklungsumgebung (JetBrains Intellij IDEA) aufzuzeichnen

Recherche relevanter Größen im Kontext des Interaktionsverhaltens zwischen Nutzer und IDE

Prototypische Verknüpfung der erhobenen Größen mit inhaltlichen Aspekten des Kurses

Recherche passender Darstellungs- und Visualisierungsmöglichkeiten

Implementierung der Software als Mehrkomponenten-Systems, bestehenden aus IDE-Plugin und (webbasierter) Visualisierungssoftware

Evaluation der Software mit relevanter Zielgruppe und passenden Verfahren

Erwartete Vorkenntnisse

Fortgeschrittene Kenntnisse im Bereich der objektorientierter Programmierung und Softwareentwicklung

Weiterführende Quellen

tba