Fachhochschule Salzburg GmbH
Urstein Süd 1, 5412 Puch

Inverted Classroom in Software-Grundlagen-Lehrveranstaltungen

Ziele/Motive/Ausgangslage/Problemstellung

Ausgangspunkt waren zwei Grundlagenlehrveranstaltungen (Einführung Programmierung und Algorithmen und Datenstrukturen) im Bachelor-Studiengang MultiMediaTechnology an der FH Salzburg, die in einem Vorlesungs- und Übungsteil abgehalten wurden. Die über die Jahre gewonnene Erkenntnis war, dass Fertigkeiten wie Programmieren nicht in einer klassischen Vorlesung vermittelt werden können, da in der Regel erst nach dem theoretischen Input Verständnisfragen bei den Studierenden auftauchen.

Weiters ist es aufgrund der heterogenen Vorerfahrungen im Bereich Programmieren (vgl. Lehrplan HTL mit AHS) kaum möglich, einen "Unterricht für alle" zu gestalten. Personen mit viel Vorerfahrung haben einen Wissensvorsprung von vielen Monaten. Außerdem sollten die genannten Lehrveranstaltungen flexibler studiert werden können, d.h. die Studierenden sollten die Themen dann studieren, wenn es aus ihrer Sicht der richtige Zeitpunkt ist und nicht, wenn es der Stundenplan vorsieht.

Ein zusätzliches Problem stellten die bisherigen Übungseinheiten in den jeweiligen Lehrveranstaltungen dar, in denen im wöchentlichen Rhythmus Programmierübungen von den Studierenden abgegeben und anschließend von der Lehrveranstaltungsleitung bewertet wurden. Der Jahrgang umfasst mehr als 50 Personen, was zu einer erheblichen Belastung der Lehrveranstaltungsleitung führt und somit ein qualitativ hochwertiges Feedback erschwert.

Ab dem Wintersemester 2021 wurde der "Vorlesungsteil" der Lehrveranstaltung Einführung in die Programmierung vollständig auf ein Inverted Classroom Modell umgestellt. Die thematisch darauf aufbauende Lehrveranstaltung Algorithmen und Datenstrukturen wurde im darauffolgenden Sommersemester in ähnlicher Weise umgestellt.

Für den Übungsteil wurden Methoden aus dem Bereich der modernen Softwareentwicklung im Hinblick auf kontinuierliches und automatisiertes Testen eingesetzt, um den Studierenden ein zeitnahes Feedback zur Codeabgabe zu geben, so dass sich die LV-Leitung auf den formativen Teil der Evaluierung konzentrieren konnte.

Kurzzusammenfassung des Projekts

Die Lehrveranstaltungen Einführung Programmierung und Algorithmen und Datenstrukturen sind Pflichtveranstaltungen in den ersten beiden Semestern des Bachelorstudiums MultiMediaTechnlogy. Um der großen Heterogenität der Vorerfahrungen im Programmieren unter den Studienanfänger*innen gerecht zu werden und die Flexibilität zu erhöhen, wurde in beiden Veranstaltungen der Vorlesungsteil (Großgruppe) auf ein Inverted Classroom-Modell umgestellt.

Zur Vorbereitung auf jede Einheit standen den Studierenden themenspezifische Videos und Arbeitsblätter zur Lernkontrolle zur Verfügung. Innerhalb der Präsenzphasen wurde die Unterrichtszeit mit der Klärung von Verständnisfragen und vertiefenden praktischen Übungen gefüllt. Diese Übungen bestanden zum Teil aus selbst entwickelten Lernspielen, um Konzepte wie binäre Suche, Hashing oder Baum-Datenstrukturen an einem realitätsnahen Beispiel zu erlernen.

Neben den Einheiten in der Großgruppe gibt es für beide Vorlesungen einen Übungsteil, in dem die zuvor theoretisch erworbenen Kompetenzen durch Programmierung an größeren Beispielen gefestigt werden sollen. Um den Studierenden zeitnah ein Feedback über die funktionale Korrektheit ihrer Lösung geben zu können, wurden die Continiuous Delivery Fähigkeiten der Gitlab Plattform genutzt. Bei der Einreichung der studentischen Lösung über Git wurde der Code in einem automatisierten Prozess kompiliert, mit ersten Testfällen überprüft und das Ergebnis zur Rückmeldung an die Studierenden gegeben.

Kurzzusammenfassung des Projekts in englischer Sprache

The courses Introduction to Programming and Algorithms and Data Structures are compulsory courses in the first two semesters of the Bachelor's programme MultiMediaTechnlogy. In order to do justice to the great heterogeneity of previous experience in programming among the first-year students and to increase flexibility, the lecture part (large group) was changed to an inverted classroom model in both courses.

To prepare for each unit, the students were provided with topic-specific videos and worksheets for learning control. Within the classroom phases, the teaching time was filled with answering questions of understanding and in-depth practical exercises. These exercises partly consisted of self-developed learning games to learn concepts such as binary search, hashing or tree data structures on a reality-based example.

In addition to the units in the large group, there is an exercise part for both lectures in which the previously theoretically acquired competences are to be strengthened by programming on larger examples. In order to be able to give the students timely feedback on the functional correctness of their solution, the continuous delivery capabilities of the Gitlab platform were used. When the student solution was submitted via Git, the code was compiled in an automated process, checked with initial test cases and the result given to the students for feedback.

Nähere Beschreibung des Projekts

Ab dem Wintersemester 2021 wurde die Lehrveranstaltung Einführung Programmierung auf ein Inverted Classroom Format umgestellt. Die Veranstaltung besteht zum einen aus einem Großgruppenteil (alle Studierenden sind gleichzeitig anwesend) und einem Kleingruppenteil in dem die gesamte Kohorte in drei Übungsgruppen geteilt wird.

Der theoretische Input (z.B. was sind Schleifen und wie funktionieren sie) für die Großgruppe wurden insgesamt 13 zirka 15-minütige Videos verpackt und den Studierenden zu Beginn des Semesters zur Verfügung gestellt. Zusätzlich wurden pro Themenvideo ein Arbeitsblatt mit Lösungen zur Lernzielkontrolle bereitgestellt. In den Präsenzphasen konnten einerseits Verständnisfragen zum aktuellen Thema gestellt werden, andererseits wurde diese Zeit mit praktischen Übungen zur Vertiefung genutzt.

Die thematisch darauf aufbauende Veranstaltung Algorithmen und Datenstrukturen war vom Prinzip her gleich aufgebaut. Hier erfolgte die thematische Gliederung nach einzelnen Algorithmen (z.B. binäre Suche) oder Datenstrukturen (z.B. AVL-Bäume). Für diese Lehrveranstaltung wurden 21 Videos (15 Minuten) mit entsprechenden Arbeitsblättern erstellt.

Die Videos und Arbeitsblätter stehen den Studierenden über die Lernplattform Moodle permanent zur Verfügung, so dass eine Vorbereitung auf die Vorlesung zeit- und ortsunabhängig erfolgen kann.

In den Präsenzphasen der Großgruppe wurden neben der Klärung von Verständnisfragen in Anlehnung an das EIS-Prinzip (vgl. Bruner 1966) auch mit praktischen Übungen angereichert. So wurden im Zuge der Kursvorbereitung Lernspiele entwickelt (vgl. Bilke 2019), um die Prinzipien von Algorithmen/Datenstrukturen nicht nur theoretisch oder "am Quelltext" zu erlernen, sondern auch über andere Zugangsformen. So konnten über ein Kartenspiel mit aufgedruckten Namen und einem gruppenbasierten Spielsetting die Prinzipien von binärer Suche, Hashing und Inverted Lists nachvollzogen werden. Durch diese Erfahrung im Spiel konnte zusätzlich das Konzept der Laufzeit verstanden werden.

Das oben erwähnte Lernspiel sah ein Beispiel aus der Lebenswelt der Studierenden vor. Sie stellten sich vor, Server eines sozialen Netzwerks zu sein und Suchanfragen beantworten zu müssen. Die Runde begann mit einem unsortierten Stapel Spielkarten mit zufällig generierten Vor- und Nachnamen (insgesamt über 140). Gewonnen hat die Gruppe, die die meisten Namen aus dem Kartenstapel herausfinden konnte. In Vorbereitung auf die zweite Runde wurde den Gruppen Zeit gegeben, eine bessere Suchtaktik zu entwickeln. In der zweiten Runde mit dem gleichen Modus wurden entsprechend mehr Karten gefunden, da die Studierenden die Karten für Suchanfragen vorbereitet hatten. In der dritten Runde wurde der Suchmodus unangekündigt geändert, so dass die Sortierung der Karten nicht mehr geeignet war, um schnell Namen zu finden. Zum Abschluss wurde den Studierenden nochmals Zeit gegeben, ihr System anzupassen und in einer letzten Runde wurde überprüft, ob das neue System geeignet ist, die Suchanfragen schnell zu bearbeiten. Ziel des Spiels ist es, dass die Studierenden zum einen erste Algorithmen entwerfen und zum anderen lernen, welche Auswirkungen "schlechte" Suchsysteme auf die Laufzeit haben.

In den Übungseinheiten der Kleingruppe wurden den Studierenden wöchentlich Programmieraufgaben zum aktuellen Themenkomplex gestellt. Diese konnten dann selbstständig bearbeitet werden. Um den Studierenden ein zeitnahes Feedback zu geben, wurde aufbauend auf den Continuous-Delivery-Fähigkeiten der Code-Hosting-Plattform Gitlab ein System entwickelt, um die studentischen Beiträge automatisiert zu testen und somit ein schnelles erstes Feedback zur Korrektheit ihrer Lösung rückzumelden.

Die Studierenden luden ihre Lösung (pro Aufgabe) mit Hilfe des Versionsverwaltungssystems git auf die Code-Hosting-Plattform hoch. Die Verwendung von git für die Zusammenarbeit an Software-Quellcode ist ein Industriestandard und ermöglicht das frühestmögliche Erlernen dieser Kompetenz in der Softwareentwicklung.

Bei der Abgabe über die Plattform wird der Testzyklus für die jeweilige Aufgabe automatisch gestartet und auch auf dem Server ausgeführt. Die Schritte umfassen zum einen das Kompilieren und anschließende Ausführen von vordefinierten Testfällen (z.B. ob die Sortierung bei einem Sortieralgorithmus korrekt funktioniert). Das Ergebnis dieses automatischen Tests wird den Studierenden anschließend zur Verfügung gestellt.

Zusätzlich wird den Studierenden ein formatives Feedback hinsichtlich der Codequalität gegeben, da diese neben der rein funktionalen Korrektheit ein wichtiges Qualitätsmerkmal darstellt. Durch die Lehrveranstaltungsleitung kann im Anschluss (auch auf der Code-Hosting-Plattform) direkt Feedback auf Quelltextebene gegeben werden. In den beiden Lehrveranstaltungen wurde sich seit dem Wintersemester 2022 dafür entschieden Code-Abgaben in den Kleingruppen nicht mehr zu bewerten. Systeme wie ChatGPT oder noch spezialisiertere Anwendungen wie Github Copilot sind sehr leistungsfähig und können (gerade in dein Einführungsveranstaltungen) die gestellten Aufgaben in der Regel problemlos lösen. Auf eine Anhebung des erwarteten Niveaus bei den Abgaben wurde verzichtet, weil sonst gerade Studierende mit keiner Vorerfahrung die Aufgaben nicht mehr ohne Tool-Unterstützung lösen könnten.

Die Verwendung von Inverted Classroom als Unterrichtsmodell erlaubt hauptsächlich die orts- und zeitunabhängige Vorbereitung auf die Lehrveranstaltung. Um der inneren Differenzierung der Studierenden gerecht zu werden, wurde zusätzlich ein freiwilliges Additivum für leistungsstärkere Studierende vorgesehen. So konnten die Studierenden zum Beispiel am Advent of Code (https://adventofcode.com) teilnehmen um zusätzlich anspruchsvolle Aufgaben zu lösen.

  • Bilke, A. (2019). Informatik ohne Computer -- Algorithmen und Datenstrukturen. Bachelorarbeit, Universität Salzburg.
  • Bruner, J. S. (1966). Toward a theory of instruction. Harvard University Press.

Nutzen und Mehrwert

Der Mehrwert der Umsetzung liegt auf verschiedenen Ebenen.

Zum einen ermöglicht das Inverted Classroom Modell eine zeit- und ortsunabhängige Vorbereitung auf die Lehrveranstaltung und ist somit für unterschiedliche Lebenssituationen der Studierenden geeignet. Die Zeit im Hörsaal kann nun von der Lehrveranstaltungsleitung produktiver genutzt werden, da der Stoff nicht (über Jahre) wiederholt werden muss, sondern auf Verständnisprobleme und vertiefende Übungen fokussiert werden kann.

Die automatisierte Überprüfung der studentischen Code-Abgaben ermöglicht es, den Studierenden zeitnah ein erstes Feedback zu geben. Dadurch bleibt dem Lehrenden mehr Zeit für die formative Beurteilung, da die Prüfung auf funktionale Korrektheit deutlich weniger Aufwand verursacht. Falls die automatisierte Bewertung für eine Leistungsbeurteilung herangezogen wird, ist diese Bewertung gerechter unter den Studierenden, da es keine subjektive Komponente durch eine LV-Leitung gibt.

Das automatisierte Auslesen einer möglichen Bewertungen aus dem Gitlab-System beschleunigt die Verwaltung der vergebenen Punkte und reduziert den Verwaltungsaufwand weiter.

Nachhaltigkeit

Die Umstellung der Lehrveranstaltungen hat im Wintersemester 2021 begonnen und wird seitdem eingesetzt. Im Wintersemester 2022 wurde die Einführung Programmierung mit den im Jahr 2021 entwickelten Unterlagen wiederholt. Zur Zeit läuft im aktuellen Sommersemester die Wiederholung von Algorithmen und Datenstrukturen.

Die Grundlagen der Programmierung sind ein inhaltlich stabiles Thema, so dass bisher davon ausgegangen wird, dass diese Unterlagen (ggf. mit geringfügigen Anpassungen) weiter verwendet werden.

Insbesondere in der Lehrveranstaltung Algorithmen und Datenstrukturen sind die theoretischen Grundlagen zum Teil Jahrzehnte alt, so dass eine Änderung der bestehenden Unterlagen nicht erforderlich erscheint. Eventuelle thematische Erweiterungen können gemacht werden ohne die bestehenden Unterlagen zu ändern.

Das Lehrveranstaltungskonzept Inverted Classroom bietet sich auch für den Einsatz in anderen Lehrveranstaltungen mit stabilem inhaltlichem Charakter an. So soll in Zukunft die Veranstaltung Software Design Pattern entsprechend an dieses Format angepasst werden.

Dissemination/Transfer

Die entwickelten Lernspiele eigenen sich für andere Lehrveranstaltungen mit starkem Fokus auf Informatik bzw. Software-Entwicklung. Das System zum automatisiertem Testen von Quelltext eignet sich für jede Veranstaltung in dem die Studierenden Software schreiben. Dabei ist es unerheblich ob es sich um kleine Skripte oder um komplexe Software handelt.

Das beschriebene Lernspiel wurde auch außerhalb des FH-Unterrichts an einer Schule (BORG Nonntal, Salzburg) mit Schüler*innen und auf einem Tag der offenen Tür der FH-Salzburg mit Studieninteressierten erprobt.

Im Jänner 2022 wurden erste Erkenntnisse aus dem Unterricht interessierten Personen innerhalb der FH Salzburg in einem Vortrag vorgestellt. Im Februar 2023 wurde auf der Konferenz Inverted Classroom and Beyond das hier beschriebene Konzept einem Fachpublikum aus dem DACH-Raum gezeigt.

Institutionelle Unterstützung

Das Projekt wurde anfangs durch eine Reduktion der Lehrverpflichtung auf Studiengangsebene unterstützt. Ab dem Wintersemester 2022 erfolgt die Förderung über den Zukunftsfonds der FH Salzburg. Dabei handelt es sich um einen FH-weiten Fördertopf zur Erprobung innovativer Konzepte in der Lehre. Die Förderung erfolgt über eine Reduktion der Lehrverpflichtung und die Anstellung von zwei Studierenden als Assistenz.

Die für die Videoaufnahme notwendige Technik (Kamera, Laptop, Greenscreen-Raum) steht am Studiengang für alle Mitarbeiter*innen zur Verfügung.

Positionierung des Lehrangebots

Die zwei Lehrveranstaltungen Einführung Programmierung (1. Semester, 5 ECTS) und Algorithmen und Datenstrukturen (2. Semester, 5 ECTS) sind beide im Bachelor-Studiengang MultiMediaTechnology der Fachhochschule Salzburg verortet. Sie sind jeweils Pflichtlehrveranstaltungen und legen die Grundlagen für die Software-Ausbildung am Studiengang.

Links zu der/den Projektmitarbeiter/innen
Das Beispiel wurde für den Ars Docendi Staatspreis für exzellente Lehre 2023 nominiert.
Ars Docendi
2023
Kategorie: Lehre und Digitale Transformation
Ansprechperson
Andreas Bilke, M.Sc.
MultiMediaTechnology
+43 50 22111254
Nominierte Person(en)
Andreas Bilke, M.Sc.
MultiMediaTechnology
Themenfelder
  • Digitalisierung
  • Erfahrungslernen
  • Infrastruktur/Lehrmaterialien
  • Lehr- und Lernkonzepte
  • Flexibel Studieren
Fachbereiche
  • Mathematik, Informatik, Naturwissenschaften, Technik/Ingenieurwissenschaften