Einleitung

Heutzutage wird der Unterricht mehr und mehr online angeboten [1, 2]. Es ist möglich, einen kompletten Master- oder Bachelor-Studiengang in einem MOOC (Massive Open Online Course) [3] wie in courseraFootnote 1 oder MOODLE [4, 5] durchzuführen. Studien hatten eine hohe Abwanderungsrate von MOOCs gezeigt, z. B. wegen der fehlenden Gelegenheiten, online mit einem Dozenten oder anderen Studierenden zu sprechen [6]. Infolgedessen fühlten sich die Studierenden beim Studieren und Zuhören des Dozenten isoliert. Eine andere Möglichkeit, online in einer virtuellen Umgebung zu unterrichten, ist ein Videokonferenzsystem für E‑Learning-Zwecke, in das sich die Studierenden integriert und nicht isoliert fühlen [6]. Ein Beispiel für ein solches E‑Learning-System ist Adobe ConnectFootnote 2, in dem eine Online-Diskussion mit einem Dozenten und Gruppenräumen möglich ist. Diese Umgebung bietet viele Möglichkeiten, online zu lehren und die Vorlesungen einzurichten, indem sie die effektivsten Phasen (z. B. Üben durch Ausprobieren, andere unterrichten oder Gruppendiskussionen [7]) in der typischen Lernpyramide [7, 8] abdeckt und den Studierenden Feedback gibt, um bessere Lernergebnisse zu erzielen [9, 10].

Missverständnisse in Bezug auf das Verständnis der OOP-Terminologie und -Konzepte sind ein bekanntes Problem [11]. Mit den Möglichkeiten, die Adobe Connect bietet, um die Studierenden in den Lernprozess einzubeziehen und ihnen Feedback [9, 10, 12] im gleichen Lehr- und Lernkontext zu geben, wollen wir die Missverständnisse vermeiden und ihre Bedürfnisse im Lernprozess [9] während der Vorlesung in der OOP abdecken. Zudem können Sie sich durch das Lernen im Kontext des zukünftigen Arbeitskontextes – der virtuellen Umgebung- leichter an die Inhalte zu OOP erinnern [13], da Sie sich wieder im demselben Kontext wie im Lernkontext befinden [2, 13].

Viele Studierende beschreiten Ihr Studium heutzutage nebenberuflich [14]. Ein effektives Anwenden der heute bekannten Lehr- und Lernmethoden [15] ist heute umso wichtiger, sodass die Studierenden, weniger belastend die komplexen Inhalte insbesondere im Objektorienten Programmieren erlernen können und diese im Arbeitskontext handlungsfähig sind.

Kurs-Aufbau

Einzelheiten zum Kurs

Die Modulvorlesung in objektorientierter Programmierung (OOP) wird in einem zweisemestrigen Kurs an der DIPLOMA Fachhochschule im Studiengang Wirtschaftsinformatik gehalten. In einem Semester wird der Kurs Grundlegende Programmiertechniken und im nachhergehenden Semester wird der Kurs Objektorientiertes Programmieren gehalten.

Tab. 1 Verwendete Pods (Lehr- und Lernfunktionen) in der Adobe Connect-Anwendung
Tab. 2 Deckung der Bloom’s Pyramide (neue Version) [16] mit Studienbuch und virtuellem Lehr- und Lernkontext [2]
Abb. 1
figure 1

Live-Meeting-Anwendung mit Adobe Connect

Abb. 2
figure 2

Definitionen des Fragebogens und Antworten des Fragebogens mit Adobe Connect

Abb. 3
figure 3

Lernpyramide nach National Training Laboratories (NTL), Bethel Maine [7, 8]

Im Kurs Grundlegende Programmiertechniken lernen die Studierenden grundlegende Methoden der objektorientierten Programmierung in Java kennen. Die Lehrveranstaltung behandelt die Grundelemente von Java wie Kontrollstrukturen, Klassen und Vererbung sowie Algorithmen wie Bubble Sort. Im Kurs Objektorientierte Programmierung werden ausgewählte API-Elemente in Java wie Netzwerkverbindungen, Sockets oder UI-Programmierung mit dem Abstract Window Toolkit (awt) behandelt. Zu jedem Kurs gibt es ein Kursbuch von ca. 80 Seiten mit Beispielen und Übungen, die speziell für das Selbststudium der objektorientierten Programmierung geschrieben sind.

In der Vorlesung verteilten wir Vortragsfolien, die ein OOP-Thema aus dem Kursbuch zusammenfassten und Online-Übungen zu einem Thema als Kontrollstrukturen in OOP enthielten. Wir diskutierten jedes Thema unter Verwendung von Adobe Connect und seinen Lehr- und Lernfunktionen. Die Präsenzzeit jeder Vorlesung beträgt etwa 20 Stunden (insgesamt für das OOP-Modul 40 Stunden), so dass die Online-Vorlesung das Selbststudium der Studierenden erweitert. In der Regel treffen sich die Studierenden mit dem Dozenten am Samstag von 09:30–12:45 Uhr oder nachmittags von 13:15–16:30 Uhr (in der Regel in einem Block von insgesamt 4–5 Wochenenden nacheinander).

Durch die Kombination von Studienbüchern und der virtuellen Lehr- und Lernumgebung können alle Aspekte der Bloom-Taxonomie [16] abgedeckt werden, wie Tab. 2 zeigt. Das Studienbuch enthält Übungen, die die Studierenden innerhalb des Semesters lösen können. Die Dozentin oder der Dozent stellt Übungen in den Gruppenräumen zur Verfügung. Die Studierenden können ihre Aufgabe am Whiteboard lösen und die Lösungen sowohl online mit der Gruppe als auch mit dem Dozenten diskutieren. Die Studierenden können auch ihre Lösungen aus den Übungen im Studienbuch mit der Lösung der Übung vergleichen und analysieren. Die Studenten können die Lösungen in der Live-Coding, in der Online-Debugging-Sitzung sowie in den Code-Beispielen analysieren. Die Studierenden können das Wissen über OOP in ihrer IDE oder in der virtuellen Umgebung in den Gruppenräumen, in der Live-Codingsitzung und am Whiteboard anwenden. Die Studierenden führen einen Selbsttest durch, in dem sie ihr Verständnis und ihre Erinnerung an den OOP-Inhalt im Online-Fragebogen unter Beweis stellen.

Studenten

Die Lerngruppe besteht in der Regel aus 6–10 Studierenden. Die Studierenden haben seit 1–2 Jahren Erfahrungen mit Informatik-Themen (sie haben bereits die Programmiersprache C++ gelernt). Die Studierenden haben in der Regel einen starken technischen Hintergrund, aber nicht konsequenterweise in Informatik als im Maschinenbau als Techniker. Die Studierenden studieren samstags in Teilzeit und nebenberuflich nach einer 35–40-Stunden-Woche. Alle Vorlesungen werden online in einer virtuellen Lehr- und Lernumgebung gehalten, in der die Studierenden mit ihren Videokameras und Mikrophonen anwesend sind. Die Studierenden verbinden sich in der Regel zu Hause mit dem Dozenten.

Infrastruktur

Für diesen Kurs verwenden wir die Live-Meeting-Anwendung Adobe Connect (siehe Abb. 1 und Abb. 2). Die Lehr- und Lernfunktionen in Adobe Connect werden als pods [17, 18] bezeichnet. Wir haben die Vorlesungsfolien online mit der File-Sharing-Funktion geteilt und während der Vorlesung mehrere Pods verwendet. Wir beschreiben kurz die Pods in Tab. 1.

Abb. 4
figure 4

Lernprozess nach Phil Race [10, 19]

Fernlehren und Fernlernen

Im Folgenden beschreiben wir unsere Erfahrungen nach vier Semestern Vorlesungszeit der Modulvorlesung OOP. Wir haben die Modulvorlesung Objektorientierter Programmierung vor acht Studentengruppen (zu jeweils 4 Gruppen in Grundlegende Programmiertechniken und Objektorientierte Programmierung; ca. 160 Stunden mit ca. 5–10 regulären Studierenden) gehalten. Zur Strukturierung unserer Lehre, verwendeten wir die Lernpyramide (siehe Abb. 3) und das Lernmodell von Race (siehe Abb. 4). Die Lernpyramide stellt ein Effektivitätsmaß je Lehr- und Lernmethode im Rahmen der Vorlesung dar. Die Lernkreise von Race stellen die Lernmethoden dar, welche für effektives Lernen durchlaufen werden.

Abb. 5
figure 5

Debugging in the Eclipse IDE with Adobe Connect (sharing screen pod)

Aktivierung

Wir stellten fest, dass Aktivierung und eine aktive Beteiligung der Studierenden sehr nützlich waren, um unsere Lehr- und Lernziele zu erreichen und Missverständnisse beim Verständnis der OOP-Terminologie und -Konzepte zu vermeiden [11]. Wir verwendeten verschiedene Methoden, um unsere Studierenden zu aktivieren und einzubeziehen. Wir aktivierten die Studierenden durch direkte Fragen und Diskussionen, Fragebögen (siehe Abb. 2) mit einer Frage und Mehrfachantworten. Die Online-Fragen und -Diskussionen waren in der Online-Umgebung sehr gut möglich. Die Studierenden nahmen sehr oft am Online-Fragebogen teil. Sie beteiligten sich auch sehr aktiv an der Diskussion über ihre Fehler.

Wir nutzten auch die Bildschirmfreigabe- oder Remote-Funktion zur Aktivierung der Studierenden während der Online-Vorlesung (siehe Abb. 1). Die Studierenden konnten in die Rolle eines Dozenten schlüpfen, damit sie anderen Studierenden zeigen konnten, wie sie ihr Programm programmieren (die Lehrmethode heißt umgekehrter Klassenraum [12, 20, 21]). Der Dozent konnte einige Änderungen am Code vornehmen oder den Code mit den Studenten debuggen.

Online-Coding

Die Online-Coding war die effektivste Lehrmethode im Hinblick auf die Evaluations- und Feedback-Phase des Kurses am Ende des Semesters. Wir denken auch, dass die virtuelle Lehr- und Lernumgebung diese Methode ideal unterstützt, da der Dozent und die Studierenden den Lernkontext [2] nicht gewechselt haben. Die Studierenden verwenden in ihrem Betriebssystem (OS) die Lehrsoftware Adobe Connect und die Eclipse Integrated Development Environment (IDE)Footnote 3 für Entwickler im gleichen Lehr- und Lernkontext [2].

Wir haben Online-Coding in jedem OOP-Thema in der Vorlesung verwendet und unsere Code-Beispiele über den Debugger der Eclipse-IDE gedebuggt (siehe Abb. 5). Wir haben den Debugger verwendet, um zu zeigen, wie Zeichenketten gespeichert werden, z. B. an welcher Position ein Zeichen gespeichert wird. Wir haben den Debugger auch verwendet, um Zustände eines Objekts oder im Programm an einem bestimmten Zustand zu zeigen, sowie z. B. zu zeigen, wie sich der Datenstruktur-Stack in der Programmierumgebung verhält.

Die Studenten sagten, dass das Online-Coding sehr hilfreich war, wenn das Online-Coding direkt nach der Vermittlung eines Programmierkonzepts durchgeführt wurde. Den Studenten einfach zu erklären, wie API-Elemente zu verwenden sind, ohne dies in einer IDE zu zeigen, war sehr unbefriedigend und frustrierend für sie, da sie die Wirkung und das Ergebnis z. B. einer Methode oder eines Programmierkonzepts nicht verstehen konnten.

Gruppenräume

Wir bildeten Gruppen über die Gruppenfunktion von Adobe Connect, bei der wir die Schüler nach dem Zufallsprinzip in Gruppen mit einer Größe von 4–5 Mitgliedern unterteilten (siehe Abb. 1). Ihnen standen Pods als White-Board und andere zur Verfügung, um ein Programmierproblem zu lösen und ein Programmierkonzept, z. B. eine Klasse, zu visualisieren. Sie wurden mit Aufgaben wie dem Verständnis der Verwendung der API-Elemente oder eines kleinen Programms mit mehreren Klassen und Methoden konfrontiert und mussten die Lösung gemeinsam erarbeiten. Nach einem Gruppentreffen präsentierte jede Gruppe ihre Ergebnisse den anderen Gruppenmitgliedern. Wir fanden, dass diese Methode sehr nützlich war, um ein tieferes Verständnis der Programmierkonzepte zu erhalten.

Fragebögen

Eine Vorlesung dauerte 3 Stunden und 15 Minuten. In der Hälfte der Vorlesung (nach ca. zwei Stunden) machten wir eine Pause von 10 Minuten. Nach der Pause wurden den Studierenden mehrere Fragen zu den Vorlesungsinhalten zu den zwei Stunden der Vorlesung gestellt. Wir werteten die Antworten direkt aus und gaben ein positives Feedback (mit Lob und Anerkennung [22]). Wir konnten so die missverstandenen Konzepte gleich nach ihrer Erläuterung klären. Wir konnten auch verstehen, welche Konzepte der OOP in Java nicht verstanden wurden und intensiver behandelt werden mussten.

Chat für Fragen und Weblinks

Wir nutzten die Chat-Funktion von Adobe Connect während der Vorlesung als Gelegenheit, zusätzliche Links oder Informationen auszutauschen, die die Vorlesung erweiterten. Während der Online-Codingsitzungen hatten wir auch API-Methoden verwendet. Wir haben Sie mit den Studierenden gemeinsam nachgeschlagen, indem wir die Weblink-Funktion von Adobe Connect nutzten. Bei der Verwendung der Web-Link-Funktion von Adobe Connect wurden die Studierenden von ihrem Dozenten und Adobe Connect in ihrem Webbrowser zur entsprechenden Java-API-Website geleitet. So konnten die Studierenden lernen, wie man eine Online-Ressource für Entwicklungsprobleme zu dem Zeitpunkt nutzen kann, zu dem sie im Entwicklungskontext [23, 24] benötigt wird. Diese Episode [25] und wir als Modell [26] konnten dadurch eine Problemlösung mittels externer Ressource aufzeigen, was den Lerneffekt verstärkte und die Handlungsfähigkeit in solchen Problemkontexten förderte.

Zusammenfassung der Ergebnisse

Unsere Ergebnisse zur Wirksamkeit unseres Unterrichts orientierten sich an der Lernpyramide (siehe Abb. 3) und dem Modell von Race (siehe Abb. 4) und zeigten deren Effektivität auf. Wir versuchten wie in der Lernpyramide aufgezeigt, die Studierende direkt am Lernprozess teilzunehmen. Wie liesen die Studierende miteinander diskutieren und Sie konnten auch andere in der gleichen Gruppe mit Begleitung des Dozenten unterrichten. Insbesondere das Üben durch tun in diesem problemorientierten Fach, motivierte die Studierende, trotz der Komplexität des Faches OOP weiter die Inhalte aktiv zu studieren. Wie nach Race (siehe Abb. 4) wollten die Studierenden lernen, in OOP zu programmieren. Wir erklärten ihnen OOP-Konzepte und -Methoden, und lieferten ein OOP-Beispiel, das die Wirkung der angewandten Methoden und OOP-Konzepte aufzeigte. Wir gaben nach den Fragebögen Feedback, und die Studierenden konnten ihre Problemlösungen in den Gruppenräumen und in der Online-Diskussion mit dem Dozenten verbalisieren.

Threats to Validity und Einschränkungen

Die Idee der Vorlesung besteht darin, ein Studienbuch für das Selbststudium zu erweitern. Bei anderen Vorlesungen, in denen OOP gelehrt wird und kein Studienbuch vorhanden ist, könnten unsere erklärten Methoden und Erfahrungen weniger Gültigkeit haben, da die Studierende vemittelte Inhalte nicht nochmals nachlesen können. Basierend auf den Ergebnissen der Lernpyramide [7] erwarten wir ähnliche Ergebnisse. Alle Studenten hatten einen starken technischen beruflichen Hintergrund, was auch die Ergebnisse in anderen OOP-Vorlesungen mit Studenten, die einen anderen Hintergrund haben, beeinflussen könnte.

Die gesamte Modulvorlesung zu OOP hat eine Länge von insgesamt 40 Stunden. Wir konnten im Rahmen dieser Zeit nur begrenzt auf alle Übungen im Studienheft Bezug nehmen und ein Feedback geben. Wir boten den Studierenden an, offenstehende Übungen und aufgetretende Probleme, die im Selbststudium des Übungsheftes aufkamen, in der Vorlesung zu besprechen. Wir fanden es sehr nützlich, diese Einschränkung mit Lernmöglichkeiten von Online-Lernplattformen wie code.org oder codeacademy.com zu unseren Vorlesungsinhalten zu ergänzen. Die Lernplattformen ermöglichen den Studierenden direktes Feedback zu den behandelten Themen und den Vorlesungsinhalten. Sie konnte zudem zu vielen Umsetzungsproblemen [28] in OOP weitere Vorschläge erhalten.

Wir empfahlen den Studierenden auch, interne Foren mit ihren Kommilitonen zu nutzen, die nicht regelmäßig genutzt wurden. Wir stellten fest, dass die Studierenden es sich mehr wünschen, sich innerhalb der Vorlesung mit dem Dozenten (wie auch Hölbl et al. für eine MOODLE-Vorlesung [5] herausfanden) oder in den Gruppenräumen auszutauschen.

Schlussfolgerung

Wir fanden heraus, dass im Fernlehren und Fernlernen in OOP Inklusion und Aktivierung die Schlüsselmethoden sind. Wir aktivierten die Studenten, indem wir Gruppenräume einrichteten und Diskussionen mit den Studenten führten oder Fragebögen zur Verfügung stellten. Dadurch blieben die Studenten während der gesamten Vorlesung motiviert. Wir zeigten in einer IDE die gelehrten Programmiermethoden und -konzepte bröckchenweise und lieferten zu abstrakten Erklärungen konkrete OOP-Beispiele. Dies war sehr nützlich, um Frustrationen bei den Studierenden beim Lernen von OOP zu verringern und die Zufriedenheit unserer Studenten zu erhöhen. OOP-Vorlesungen, die in einer virtuellen Lern- und Lehrumgebung abgehalten werden, könnten die hohe Abbruchrate von OOP-Kursen mit der Anwendung einer Vielzahl von Lehr- und Lernmethoden im gleichen Lernkontext verringern, z. B. durch den Einsatz von Adobe Connect mit seinen Pods und Funktionalitäten.

Danksagung

Wir danken der DIPLOMA Fachhochschule Bad Sooden-Allendorf und Prof. Dr. Michael Namokel für die Veröffentlichung dieser Forschungsergebnisse. Wir danken auch Haitam Ben Yahia und Felix Schmidt für das Korrekturlesen der Arbeit.