- Kunstpraktikum: Kunst und Nachhaltigkeit (Übung)
- Berufsfeld Migration - Flucht - Asyl
- Forschen - Vermitteln - Abbilden
- Geographische Exkursion "Migrant_innen in Österreich: Fokus Flucht und Asyl"
- Forschungspraktikum „Virtualisierung der Gesellschaft“
- Kunst des Widerstandes
- KS Game Theory
- Literaturwissenschaftliches Proseminar „Ladies, Start Your Engines: Women on the Road in American Film and Fiction“ – Lehrveranstaltung mit internationaler Konferenz und Workshop
- Das "globale" T-Shirt - ein interdisziplinäres Praktikum im Master Global Studies
- Didaktik-Werkstatt: Prüfungs- und Beratungskompetenz
- Die Nutzung digitaler Medien im Alltag mit dem Lernen im Hörsaal verbinden.
- Aktuelle Probleme im Arbeitsleben und Diversität, Seminar
- Einführung in die Sozialkunde (Vorlesung mit Übung)
- Sommerakademie Welterbe Österreich. Kultur- und Naturerbe, Forschung und Schutz, Management und Kommunikation
- Didaktik und Gestaltung der wirtschaftlichen Fächer
- Tradition und Innovation: lateinische Texte der Spätantike (Auswahl) (LV, Konversatorium)
- Care Ethik und Politik der Sorge (Seminar)
- Kurs „Verfassungsrecht und Allgemeine Staatslehre“ (2 Semesterstunden, 5 ECTS)
- Einführung in die Meteorologie und Klimaphysik (Vorlesung)
- „(Digitale) Lehre: Ausgezeichnet!“
- GEKo – Grazer Evaluationsmodell des Kompetenzerwerbs
- Teaching Analysis Poll (TAP) – Zwischenfeedback in Lehrveranstaltungen
- Instrumentebaukasten: Instrumente für studentisches Feedback
- VO Physikalische Chemie für Studierende der Molekularbiologie
- Proseminar "Wissenschaftliches Arbeiten"
- Kurs "English for Academic Purposes"
- KS Verwaltungsrecht und Verwaltungslehre
- VU Grundlagen der Programmierung
- Lehrveranstaltungsbündel Organische Chemie: Fachverständnis aufbauen und Handlungskompetenz fördern
- Kuratorische Praxis: Kunstsammlungen ausstellen
- Entrepreneurship Education und Wirtschaftsethik
- "Imperiale Lebensweisen": Eine transnationale Kooperation zu Global Citizenship Education
- Grundfragen der Fachdidaktik Ethikunterricht
VU Grundlagen der Programmierung
Ziele/Motive/Ausgangslage/Problemstellung
Auch in den Geisteswissenschaften haben digitale Methoden Einzug gehalten. An der Universität Graz wird dazu seit 2017/18 ein Masterstudium "Digitale Geisteswissenschaften" angeboten. Dieses Studium richtet sich an Studierende mit abgeschlossenem geisteswissenschaftlichem Studium, setzt aber keine Informatikkenntnisse voraus. Daher besteht eine der ersten Herausforderungen im Studium darin, diese Grundkenntnisse zu erwerben. Die LV "Grundlagen der Programmierung" gehört zu diesen einführenden Lehrveranstaltungen.
Ziel ist, Studierende, die nie zuvor programmiert haben, dazu zu befähigen, eigene Programme zu schreiben. Diese Fertigkeit ist Grundlage für weiterführende Lehrveranstaltungen, legt aber gleichzeitig das Fundament für typische berufliche Aufgaben, sei es im universitären Umfeld, wo ein neues Berufsfeld "Research Software Engineer" entstanden ist, oder in anderen, unseren Absolvent/inn/en offen stehenden Berufsfeldern. Ein weiteres Ziel liegt im Anspruch Programmieren als neue Kulturtechnik zu vermitteln, sowie durch Einblicke in die Softwareentwicklung im Sinne der Medienkompetenz eine kritische Distanz zu softwaregenerierten Ergebnissen zu erzeugen.
Die Erfahrung zeigt, dass die Aneignung einer Programmiersprache auf syntaktischer Ebene kaum Probleme verursacht. Auch das Verstehen von basalen Konzepten wie Datentypen, Kontroll- und einfachen Datenstrukturen stellt keine große Hürde dar. Größere Schwierigkeiten treten dann auf, wenn es darum geht, diese Konzepte bei der Lösung konkreter, über Codefragmente hinaus gehender Aufgabenstellungen anzuwenden, also wenn es darum geht, bisher erlernte, typisch geisteswissenschaftlich-hermeneutische Methoden mit informatischen Herangehensweisen ("How to Think Like a Computer Scientist", wie ein populäres Buch von A. Downey heißt) zu verbinden. Während ich in den ersten Jahren sehr viel Zeit auf die Vermittlung der Grundkenntnisse verwendet habe, lege ich seit einigen Semestern verstärkt Gewicht auf die Herangehensweisen.
Ein zweiter Bereich, auf den ich zunehmend Fokus lege, liegt im Handwerklichen. Dem liegt die Beobachtung zu Grunde, dass die Qualität von im Rahmen von Forschungsprojekten entstandener Software häufig fragwürdig ist. Dies liegt möglicherweise darin, dass aus Zeitgründen kein Wert auf Dinge wie Nachvollziehbarkeit, Wartbarkeit oder Testbarkeit gelegt wird. Oft fehlt aber einfach Wissen über diese Bereiche und ihre Bedeutung für qualitativ hochwertige Programme. Die didaktische Schwierigkeit liegt dabei darin, dass dies weitgehend informelles Wissen ist, das normalerweise erst in der praktischen Arbeit durch erfahrene Kolleg/inn/en vermittelt wird.
Die Lehrveranstaltung hat sich somit seit 2017 immer stärker von einer „Einführung in die Programmierung“ zu einer „Einführung in die Praxis des Programmierens“ gewandelt.
Kurzzusammenfassung des Projekts
Die Lehrveranstaltung "Grundlagen der Programmierung" führt Geisteswissenschaftler/innen ohne entsprechende Vorkenntnisse im Rahmen des Masterstudiums Digitale Geisteswissenschaften an das Programmieren heran.
In der ersten Semesterhälfte werden grundlegende Konzepte wie Datentypen, Kontroll- und Datenstrukturen, Bedingungen usw. eingeführt. Mediendidaktisch spielen hier neben Screencasts vor allem Jupyter Notebooks als interaktive Skripten eine tragende Rolle. Solche Notebooks ermöglichen es, erklärende Texte und Illustrationen mit direkt ausführbaren und veränderbaren Programmcodes zu integrieren und eignen sich deshalb hervorragend zum angeleiteten Selbststudium.
In der zweiten Hälfte des Semesters geht es vor allem darum, auf Basis der zuvor erworbenen Grundlagen komplexere Programmieraufgaben zu meistern. Als Hürde erweist sich hier vor allem die Art und Weise, wie man an eine solche Aufgabenstellung herangeht. Deshalb liegt im zweiten Teil der Fokus darauf, wie man Programmieraufgaben auf Teilprobleme herunterbricht, sowie welche Techniken und Werkzeuge dabei helfen, funktionierenden, nachvollziehbaren und wartbaren Programmcode zu schreiben. Didaktisch wird hier zum Teil auf informelles Lernen gesetzt.
Kurzzusammenfassung des Projekts in englischer Sprache
As part of the master's program in Digital Humanities, the course "Fundamentals of Programming" introduces humanities students with no previous knowledge to programming.
In the first half of the semester, basic concepts such as data types, control and data structures, conditions, etc. are introduced. In addition to screencasts, Jupyter notebooks play a key role as interactive scripts. Such notebooks enable to integrate explanatory texts and illustrations with directly executable and modifiable program codes and are therefore ideally suited for guided self-study.
In the second half of the semester the main focus is on mastering more complex programming tasks based on the previously acquired basics. The main hurdle here is the way in which such a task is approached. Therefore, the second part focuses on how to break down programming tasks into subproblems and which techniques and tools help to write functional, comprehensible and maintainable program code. Didactically, the focus is partly on informal learning.
Nähere Beschreibung des Projekts
Aufbau der Lehrveranstaltung
Als zweistündige Vorlesung mit Übung ist die Lehrveranstaltung auf 24 Teilnehmer/innen begrenzt. Sie findet im wöchentlichen Rhythmus statt, wobei Anwesenheitspflicht besteht. Die Beurteilung setzte sich zusammen aus 1) Mitarbeit (15%), 2) dem Ergebnis von zwei Klausuren (zusammen 25%), 3) den 8 Hausübungen (25%), 4) einem selbst verfassten Notebook (10%) und 5) dem selbstgewählten Abschlussprojekt (25%).
Die erste Semesterhälfte dient der Erarbeitung basaler Begriffe und Konzepte wie Datentypen, Datenstrukturen, Ablaufsteuerung, Funktionen und Fehlerbehandlung. Die zweite Semesterhälfte ist fortgeschritteneren Themen gewidmet: Verwendung der Standardbibliothek und externer Bibliotheken, Grundlagen objektorientierter Programmierung und Techniken im Umgang mit Text (reguläre Ausdrücke, Natural Language Processing). Parallel dazu werden wichtige Werkzeuge und Techniken vorgestellt.
Als Programmiersprache wird Python verwendet, weil anhand dieser Sprache viele Konzepte und Paradigmen der Programmierung einfach demonstriert werden können. Die Lehrveranstaltung erhebt aber den im Titel erhobenen Anspruch, eine "Einführung ins Programmieren" zu sein und keine "Einführung in die Programmiersprache Python".
Mediendidaktisches Konzept
Im mediendidaktischen Konzept spielen diese Werkzeuge eine wichtige Rolle: 1) Die Lernplattform Moodle als zentrale Drehscheibe für Unterlagen, Kommunikation und Abwicklung der Hausübungen 2) Jupyter Notebooks als "interaktive Skripten" 3) Screencasts über die Videoplattform der Universität Graz (Unitube) und 4) Git als Versionsverwaltungsprogramm. Während der Lockdowns wurde zusätzlich die BBB-Instanz der Universität (Unimeet) als Videoplattform eingesetzt.
Ich versuche Theorie und Praxis so weit als möglich zu verschränken. Nach kurzen theoretischen Erklärungen folgt ein praktischer Teil, wo das neue Wissen sofort an praktischen Beispielen erprobt wird. Die Lehrveranstaltung folgt einem "hands on" Ansatz, wofür sich dieses Thema besonders eignet, weil beim Programmieren Erfolg oder Misserfolg unmittelbar sichtbar werden. Da sich gezeigt hat, dass die üblicherweise in solchen Einführungen verwendeten Beispiele zu mathematiklastig sind, versuche ich nach Möglichkeit Beispiele aus dem Bereich der Geisteswissenschaft zu verwenden.
Die Lehrveranstaltung gliedert sich in zwei Hälften mit unterschiedlichen didaktischen Herangehensweisen. Im ersten, auf 7 Wochen angelegten Teil werden die absolut notwendigen Grundkenntnisse erworben. Der mediendidaktische Fokus liegt hier auf Jupyter Notebooks. Ein solches Notebook kann hier als interaktives Skriptum mit eingestreuten Illustrationen, Programmcode-Blöcken und spezifischen Literaturhinweisen beschrieben werden. Die Codeblöcke (im Sinne kleiner Programme) können direkt im Skriptum ausgeführt und nach Belieben verändert werden. Studierende können so auf spielerische Weise mit den Programmcodes experimentieren. Die Notebooks können auf einfache Weise mit eigenen Notizen, Ergänzungen und Codeblöcken erweitert werden. Die Verteilung und Aktualisierung der Notebooks und Beispieldaten erfolgt mit Hilfe der Versionsverwaltungssoftware Git. Damit ist sichergestellt, dass alle Unterlagen immer aktuell sind. Gleichzeitig wird damit ein niederschwelliger Einstieg in diese Software und den Themenbereich Versionierung erreicht.
Im Vergleich zu den ursprünglich eingesetzten Handouts und Skripten haben Notebooks den Lernfortschritt merklich beschleunigt. In den letzten beiden Semestern bin ich noch einen Schritt weiter gegangen: Die ersten 14 Notebooks müssen nun im Selbststudium als Vorbereitung auf die Präsenzeinheiten durchgearbeitet werden. Im Moodlekurs ist festgelegt, welche Notebooks bis zu welchem Termin vorzubereiten sind. Dort findet sich auch zu jedem Notebook ein Link zu einem von mir erstellen Video, in dem das jeweilige Thema zusätzlich aus einer leicht verschobenen Perspektive behandelt wird. Ebenfalls auf Moodle wird ein von mir moderiertes Hilfe- und Diskussionsforum für Rückfragen angeboten.
Um die Motivation zur Beschäftigung mit den Notebooks zu erhöhen, müssen zufällig ausgewählte Studierende während der nächsten Präsenzeinheit Lösungen für die in die Notebooks eingestreuten Übungen präsentieren. Zusätzlich gibt es regelmäßig von mir beurteilte und mit Feedback versehene Hausübungen zu einzelnen Themen.
Die durch das Selbststudium erzielte Zeitersparnis während der Präsenzeinheiten wird nun darauf verwendet, ausführlicher auf die Aufgaben und Übungsbeispiele einzugehen, Verständnisprobleme zu lösen und zusätzliche Beispiele zu programmieren.
Als Anreiz zur Beschäftigung mit der Theorie gibt es zur Hälfte und am Ende des ersten Teiles eine 15-minütige "Miniklausur" mit Verständnisfragen. Zur Vorbereitung werden im Moodle-Kurs einige Quizzes als (nicht bewertete) Selbsttests angeboten. Da diese zufällig aus Fragenpools zusammengestellt werden, können Studierende die Selbsttests beliebig oft wiederholen, was auch intensiv genutzt wird.
Der zweite Teil des Semesters steht unter dem Motto "Praxis des geisteswissenschaftlichen Programmierens". Hier wird zuerst vermittelt, dass es zusätzlich zum bisher behandelten Sprachkern zahlreiche Programmbibliotheken gibt, die verwendet werden sollten. Ich stelle einige wenige Bibliotheken vor, die den Umgang mit Texten erleichtern, fokussiere aber vor allem darauf, wie und wo man solche Bibliotheken findet und welche Kriterien anwendbar sind, um eine Auswahl zu treffen.
Um dieses Wissen zu festigen, muss jede/r Teilnehmer/in ein Notebook zu einer selbst gewählten Bibliothek erstellen. Das erzeugt nicht nur eine Flipped Classroom Situtation, sondern erzwingt auch, dass die Studierenden sich aktiv mit der Suche nach und der Dokumentation von Bibliotheken beschäftigen müssen. Ein weiterer Lerneffekt besteht in der Aneignung und Anwendung der Markupsprache Markdown. Diese kommt nicht nur bei der Erstellung von Notebooks zum Einsatz, sondern ist auch die populärste Sprache im Bereich der Softwaredokumentation. Die abgegeben Notebooks werden dann jeweils von drei Mitstudierenden (peer feedback) und mir anhand eines vorgegebenen Schemas bewertet. Anschließend werden die Notebooks für alle Kursteilnehmer/innen freigegeben, damit Kolleg/en/innen sich bei Interesse in Bibliotheken einarbeiten können, die in der Lehrveranstaltung nicht behandelt werden.
Im zweiten Teil liegt der Fokus aber vor allem darauf, die zuvor an kleinen Aufgabestellungen und Codefragmenten erworbenen Grundlagen auf komplexere Problemstellungen anzuwenden. Teilnehmer/innen lernen also, wie man längere Programme plant und schreibt. Bewährt hat sich dabei folgender Ansatz: Im Plenum wird ein zu lösendes Problem vorgestellt und anschließend werden Lösungsmöglichkeiten und Herangehensweisen diskutiert. Dabei wird die Aufgabe in Teilprobleme zerlegt. Jedes Teilproblem wird dann zur Lösung an mehrere Teilnehmer/innen vergeben, die es bis zur nächsten Einheit lösen müssen. Zusätzlich zur Lösung werden auch Unittests eingefordert, die Korrektheit der Teillösung demonstrieren sollen.
In der darauf folgenden Präsenzeinheit stelle ich dann ausgewählte Lösungen vor. Da immer mehrere Studierende parallel am selben Problem gearbeitet und sich mit der Materie bereits beschäftigt haben, während andere erstmalig damit konfrontiert werden, ergibt sich hier immer ein befruchtender Austausch.
Nach dieser Diskussion gehen wir daran, die Teillösungen zu einem ganzen Programm zusammenzusetzen. Ausgehend von einer abgegebenen Lösung und mit Bezugnahme auf die Diskussion schreibe ich diese um. Dabei bin ich bemüht, laut zu denken. Dabei geht es aber nicht darum, den hingeschriebenen Programmcode zu wiederholen, sondern laufend zu kommentieren, wie und warum ich manches genau so löse, welche Alternativen es gäbe und was die Vorteile und mögliche Nachteile meiner Lösung sind. Die Studierenden sind dabei aufgefordert, mich jederzeit zu unterbrechen um Fragen und Einwände vorzubringen.
Besonders wichtig ist mir dabei, Aspekte aufzuzeigen, die primär nichts mit der korrekten Funktionsweise zu tun haben, sondern z.B. die Nachvollziehbarkeit und Wartbarkeit von Code verbessern. Dazu gehören aber auch Fragen der Wiederverwendbarkeit von Codeteilen, der Testbarkeit und letztendlich der sinnvollen Verbindung der einzelnen Teillösungen. "Schleichend" führe ich hier aber auch Techniken zur Fehlersuche und zur Überprüfung der Codequalität ein. Das ganze Szenario ist der Versuch, eine informelle Lernsituation herzustellen.
Am Semesterende müssen die Teilnehmer/innen anhand eines selbst gewählten Abschlussprojekts demonstrieren, dass sie in der Lage sind, die im zweiten Semesterteil vermittelten Techniken und Herangehensweisen praktisch anzuwenden. Dazu fordere ich als ersten Schritt 3 Wochen vor Semesterende ein schriftliches Konzept zum Projekt ein. Damit zwinge ich die Teilnehmer/innen, ausführlich über das Projekt nachzudenken, eher sie mit der Programmierung beginnen. Ich gebe schriftliches Feedback, bei schwierigen Fällen suche ich das direkte Gespräch. Sobald meine Freigabe kommt, können die Studierenden mit der Arbeit am Abschlussprojekt beginnen. Dieses muss spätestens zwei Monate nach Semesterende abgegeben werden.
Dass meine Bemühungen vielfach auf fruchtbaren Boden fallen, zeigen ausgezeichnete Abschlussprojekte, wie z.B. die Extraktion von Personennamen aus Untertiteln fremdsprachiger Filme; ein Programm zur Berechnung von Euklidischen Distanzen aus TPS-Landmarks; die Extraktion und Transformation von Musikdaten nach RDF (Semantic Web); Einsammeln und Analyse von Daten aus sozialen Netzwerken oder ein Programm, das passend zum aktuellen Datum zufällig eine historische Zeitungsausgabe aus dem ANNO-Portal der Nationalbibliothek wählt und einen Tweet dazu verfasst.
Nutzen und Mehrwert
Mehrwert aus Sicht der Studierenden
Die für die Lehrveranstaltung bereit gestellten Notebooks und Screencasts erlauben weitgehend zeitunabhängiges und effizientes Lernen, wobei gleichzeitig durch die vorgegebenen Fristen eine laufende Beschäftigung mit dem Stoff erzwungen wird.
Da der Stoff in den Screencasts schriftlich bereits aufbereitet und mit Programmierbeispielen durchsetzt ist, entfällt die Notwendigkeit, eigene Mitschriften anzufertigen. Dies fördert die Konzentrieren auf Inhalte und wirkt sich positiv auf die Bereitschaft aus, sich am Unterricht zu beteiligen. Bei Bedarf können Studierende Notebooks überall im Text nach Belieben kommentieren und durch eigene Notizen zu erweitern.
Da die Notebooks frei auf Github verfügbar sind, können sie auch später jederzeit neu heruntergeladen werden. Dies gilt nicht nur für die Teilnehmer/innen der LV, sondern für alle, die Interesse daran haben, sich diese Grundlagen anzueignen.
Aus Feedback weiß ich, dass Screencasts beliebt sind, weil einzelne Stellen bei Bedarf erneut angesehen werden können. Andere Stellen mit bereits bekannten oder als einfach empfundenen Stoff können im Schnelldurchlauf konsumiert oder ganz übersprungen werden.
Da der Fokus auf den Grundlagen des Programmierens liegt, und nicht, wie in anderen LVs auf dem Einsatz fachspezifischer Bibliotheken zur Lösung bestimmter Probleme, erarbeiten sich die Studierenden ein stabiles, allgemein nutzbares Fundament. Auf dieser Basis ist es dann relativ einfach, sich je nach Interessenslage in Spezialbereiche einzuarbeiten.
Um diesen Punkt zu verdeutlichen, möchte ich meine Erfahrungen mit Teilnehmer/innen aus anderen, eher naturwissenschaftlich ausgerichteten Studienrichtungen wie Umweltsystemwissenschaften, Geographie, Physik oder Psychologie berichten. Diese haben oft bereits Lehrveranstaltungen absolviert, wo die Aufbereitung und Analyse von Daten unterrichtet wurde. Für solche Aufgaben werden häufig spezielle Sprachen wie Matlab oder Bibliotheken wie Pandas verwendet. Die Studierenden beherrschen dann zwar diese Werkzeuge und einige Konzepte, deren Beherrschung für die Verwendung dieser Werkzeuge unerlässlich ist, verlässt man aber den Bereich der statistischen Analyse oder der Mathematik, zeigen sich gravierende Verständnislücken bei grundlegenden Dingen wie z.B. Datenstrukturen. Mit anderen Worten: In meinem Konzept steht eine möglichst breite Grundausbildung im Zentrum, auf der man aufbauen kann, während man anderswo auf fachspezifische Probleme fokussiert, dafür aber die Basis vernachlässigt. Das wird spätestens dann zum Problem, wenn man bei der Fehlersuche die Funktionsweise von Programmen oder Algorithmen gedanklich nachvollziehen können muss.
Was in anderen Lehrveranstaltungen häufig fehlt, ist das Eingehen auf nützliche Herangehensweisen, Techniken und Werkzeuge, die in der Softwareentwicklung über Jahrzehnte hinweg entwickelt wurden. Das ist das Handwerkszeug, das dazu befähigt, gute, weil gut nachvollziehbare und damit wartbare sowie automatisiert testbare Programme zu schreiben. Wie wichtig diese Dinge sind, habe ich nach 20 Jahren Berufserfahrung in der forschungsnahen Softwareentwicklung, wo ich häufig fremden, oft von den Forschenden selbst geschriebenen Code zu sehen und zu reparieren bekomme, zur Genüge gesehen.
Die fragwürdige Codequalität resultiert vielfach daraus, dass Wissen fehlt, das normalerweise erst in der beruflichen Zusammenarbeit mit erfahrenen Kolleg/en/innen auf informellem Wege entsteht. Dieses Wissen kann autodidaktisch oder in typischen Projektsettings ohne erfahrene Programmierer/innen kaum erworben werde. Daher versuche ich im zweiten Semesterteil zumindest ansatzweise in diese Richtung zu wirken. Dass die Studierenden selbst die Bedeutung dieses Wissens erkennen, lässt sich aus dem hohen Anteil an Teilnehmer/innen ableiten, die danach die thematisch weiterführende Lehrveranstaltung "Programmieren vertieft" belegen.
Mehrwert für Lehrende
Das initiale Erstellen der Notebooks und Screencasts war sehr zeitaufwendig. Die Anpassungen zwischen den Semestern verursachen hingegen nur sehr geringen Zeitaufwand, weil die Notebooks in der auf Effizienz getrimmten Markupsprache Markdown geschrieben sind.
Ein so gar nicht intendierter, aber bemerkenswerter Mehrwert meines Konzepts hat sich ergeben, als im Sommersemester 2020 die Lehrveranstaltung pandemiebedingt kurzfristig auf Online-Lehre umgestellt werden musste. Da die Notebooks und einige Screencast ohnehin bereits existierten, konnte ich zumindest den ersten Teil des Semesters mit minimalen Anpassungen auf die neue Situation umstellen. Der zweite, viel stärker auf informelles Lernen abzielende Teil wurde zu einer größeren Herausforderung, weil dort stark auf direkte, teils nonverbale Interaktion gesetzt wird, die über Videokonferenzen nur unzureichend funktioniert. Daher musste ich hier einige Ansprüche reduzieren. Insgesamt betrachtet hat die Lehrveranstaltung aber auch im Fernunterricht gut funktioniert.
Ein möglicher Vorteil für andere Lehrende liegt darin, dass ich alle Notebooks auf Github (https://github.com/gvasold/gdp/) unter einer Creative Commons Lizenz frei zur Nachnutzung zur Verfügung stelle. Andere Lehrende können sich also bei Interesse an diesem Pool bedienen und Notebooks an ihre Bedürfnisse anpassen.
Nachhaltigkeit
Die Lehrveranstaltung läuft seit 2017, wird aber für jedes Semester adaptiert. Ich sehe die Lehrveranstaltung als Work in Progress, wo ich laufend sich aus den Erfahrungen des letzten Semesters ergebende Anpassungen vornehme und immer wieder neue Ideen ausprobiere, um den Lerneffekt zu optimieren.
Der Einsatz von Jupyter Notebooks hat sich sehr gut bewährt. Alle Notebooks mit den benötigten Beispieldaten stehen unter einer Creative-Commons Lizenz auf Github zur Verfügung und können von anderen Lehrenden in der eigenen Lehre verwendet werden; bei Bedarf auch in einer abgewandelten Form.
Der stark praktisch ausgerichtete Ansatz mit der engen Verknüpfung von Theorie und Praxis hat sich ebenfalls bewährt. Ab 2020 habe ich zusammen mit meinem Kollegen Christopher Pollin das Konzept weitgehend auf die Lehrveranstaltung "Informationsmodellierung vertieft" übertragen, wo es vor allem im Bereich der Datenmodellierung und der Abfragesprachen zum Einsatz kommt. Seit letztes Jahr setze ich die Grundideen der Lehrveranstaltung gemeinsam mit Fabio Tosques in der Lehrveranstaltung "Programmieren vertieft" fort.
Aufwand
Für die initiale Erstellung der Notebooks und Screencasts habe ich rund 100 bis 120 Stunden gebraucht.
Die Notebooks werden zwar jedes Semester überarbeitet, der Aufwand dafür liegt jedoch im Rahmen der üblichen Vorbereitungszeit auf eine Lehreinheit. Die Überarbeitung der Screencasts ist aufwendiger, weshalb ich hier nur in Ausnahmefällen neue Aufnahmen mache.
Den größten Aufwand verursacht die Betreuung der Studierenden während des Semesters. Für Bewertung und Feedback der insgesamt sieben Hausübungen würde ich je nach Komplexität der Aufgabenstellung und Qualität der Abgabe 5 bis 30 Minuten pro Aufgabe und Teilnehmer/in veranschlagen. Wenn wir von einem Durchschnittswert von 10 Minuten ausgehen, sind das bei sieben Hausübungen und 24 Studierenden rund 28 Stunden. Dazu kommt noch die deutlich aufwendigere Begutachtung der von den Studierenden erstellten Notebooks (geschätzt 12 Stunden) und schließlich das Abschlussprojekt, dessen Durchsicht wegen des größeren Umfangs deutlich mehr Arbeit erfordert als eine kleine Übung. Hierfür würde ich rund 15 Stunden Arbeit ansetzen, so dass ich für diesen Bereich (Hausübungen, Notebook, Abschlussprojekt) pro Semester insgesamt ca. 55 Stunden Arbeit investiere.
Dazu kommt noch die laufende Betreuung des Forums, das Beantworten von E-Mails und Gespräche mit einzelnen Studierenden, wo sich aber der Zeitaufwand kaum von anderen Lehrveranstaltungen unterscheiden dürfte.
Positionierung des Lehrangebots
- Pflichtfach im Masterstudium "Digitale Geisteswissenschaften".
- Wahlpflichtfach in vielen Bachelorstudien der geisteswissenschaftlichen Fakultät (Philosophie, Geschichte, Alte Geschichte, Amerikanistik, Germanistik, Ethnologie, Kunstgeschichte, Romanistik, Slawistik, Sprachwissenschaft, klassische Philologie und Archäologie).
- Freies Wahlfach (empfohlen) im Bachelorstudium Soziologie und im Masterstudium Angewandte Physische Geographie und Gebirgsforschung.
- Lehr- und Lernkonzepte
- Erfahrungslernen
- Digitalisierung
- Rund ums Prüfen
- Geistes-, Sozial- und Kulturwissenschaften