Johannes Kepler Universität Linz
Altenberger Straße 69, 4040 Linz
Weitere Beispiele der Hochschule

Coding4Business - Grundlagen der Programmierung für Nicht-Informatiker

Ziele/Motive/Ausgangslage/Problemstellung

Das Modul “Einführung in die Softwareentwicklung mit Python” besteht aus einer wöchentlichen Vorlesung und einer wöchentlichen begleitenden Übung mit je 3 ECTS. Das Modul ist Teil des Pflichtfaches Digitalisierung im Bachelorstudium Betriebswirtschaftslehre (BWL) an der Johannes Kepler Universität Linz. Zusätzlich werden den Studierenden in diesem Fach auch technische und methodische Grundlagen der Digitalisierung sowie Kenntnisse zum Einsatz betrieblicher Informationssysteme vermittelt. Idealtypisch soll das Modul “Einführung in die Softwareentwicklung mit Python” im zweiten Semester absolviert werden.

 

Nach erfolgreicher Absolvierung des Moduls sind die Studierenden mit modernen Methoden der Programmierung in Python und einer entsprechenden Programmierumgebung vertraut, verfügen über elementare Kenntnisse in der Entwicklung von Algorithmen und beherrschen wesentliche Daten- und Kontrollstrukturen. Des Weiteren sind sie mit grundlegenden Konzepten prozeduraler und objektorientierter Programmierparadigmen vertraut. Die Studierenden sind in der Lage, betriebswirtschaftliche Problemstellungen programmatisch in Python zu lösen.

 

Ein wichtiges Ziel des Moduls ist, den BWL Studierenden eine gezielte und auf ihre Bedürfnisse zugeschnittene Programmier-Grundausbildung zu bieten. Im Gegensatz zu Programmierkursen in informatiknahen Studien ist hier nicht das Ziel Kenntnisse für Softwareentwicklung zu vermitteln. Es soll vielmehr Nicht-Informatikern der Zugang zur Programmierung ermöglicht werden, thematisch der betriebswirtschaftlichen Domäne entsprechend und zugeschnitten auf Fähigkeiten, die im weiteren Verlauf des Studiums und im anschließenden Berufsleben benötigt werden.

 

Die didaktischen Herausforderungen liegen darin, dass die teilnehmenden Studierenden wenig bis keine Vorkenntnisse in der Programmierung haben. Zudem lässt sich auch eine gewisse Hemmschwelle beobachten, was die Absolvierung des Moduls betrifft, da es häufig so weit wie möglich hinausgezögert wird. Unsere jahrelangen Erfahrungen im Bereich der Java Programmierausbildung für die Wirtschaftsinformatik zeigen einen hohen Dropout in diesen Kursen und nur moderate Ergebnisse. Zusätzlich konnten wir bei den Ergebnissen einen deutlichen Gender-Gap beobachten.

 

All diesen Rahmenbedingungen galt es in der Entwicklung des didaktischen Konzepts und den entsprechenden Lehr- und Lernmaterialien des Moduls “Einführung in die Softwareentwicklung mit Python” Rechnung zu tragen.

Kurzzusammenfassung des Projekts

Aspekte der Digitalisierung und Digitalen Transformation finden mittlerweile in vielen nicht-technischen Studienrichtungen und Curricula Eingang. An der Johannes Kepler Universität Linz ist das Modul “Einführung in die Softwareentwicklung mit Python” Teil des Pflichtfaches Digitalisierung im Bachelorstudium Betriebswirtschaftslehre (BWL). Das primäre Ziel dieses Moduls ist, den BWL Studierenden eine gezielte, thematisch der betriebswirtschaftlichen Domäne entsprechende und auf ihre Bedürfnisse zugeschnittene, Programmier-Grundausbildung zu bieten. Die didaktischen Herausforderungen liegen darin, dass die teilnehmenden Studierenden kaum Vorkenntnisse in der Programmierung haben und dass dem Erlernen von Programmierkenntnissen im Studium meist nur eine geringe Priorität gegeben wird.

Für das Modul wurde ein didaktisches Konzept entwickelt, das auf Prinzipien des beobachtenden und entdeckenden Lernens beruht. Zusätzlich kommt ein kollaborativer Ansatz mit Peer-Learning zum Einsatz. Ein eigens für die Lehrveranstaltung entwickeltes Kompetenzmodell, sowie wöchentliche Self-Assessments erlauben den Studierenden ein Monitoring des eigenen Lernfortschritts. Wöchentliche Hausübungen, den jeweiligen Kompetenzen entsprechend, vertiefen das in der Vorlesungseinheit gewonnene Wissen.

Das Feedback der Studierenden zum Modul ist sehr positiv, mit niedrigen Drop-Out Raten. Im vergangenen Jahr haben mehr als 90% der Studierenden das Modul positiv absolviert.

Kurzzusammenfassung des Projekts in englischer Sprache

Aspects of digitalization as well as digital transformation, are currently being incorporated into many non-technical fields of study and curricula. At the Johannes Kepler University Linz, the module “Introduction to Software Development with Python” is part of the mandatory subject Digitalization, part of the Bachelor's degree program Business Administration (BA). The primary goal of this module is to offer basic and domain-specific programming education to BA students. Such a course not only needs to be thematically tailored to the business administration domain but also incorporate concepts required in subsequent courses. The didactic challenges hereby stem from the fact that participating students have little to no prior programming knowledge, and that acquiring programming skills is usually only deemed low priority in the course of study.

To address these challenges, a novel didactic concept was developed for the module, based on principles of observational and discovery learning. In addition, a collaborative approach with peer learning was established. A competence model developed specifically for the course, and weekly self-assessments allow students to monitor their own learning progress. Weekly homework exercises according to the respective competencies deepen the knowledge gained in the lecture.

Student feedback on the module is consistently very positive, with low drop-out rates. Last year, more than 90% of the students successfully completed the module.

Nähere Beschreibung des Projekts

Ausgangspunkt/Motivation:

Aspekte der Digitalisierung und Digitalen Transformation haben in den letzten Jahren unser Leben nachhaltig beeinflusst und sind ein nicht mehr wegzudenkender Faktor in fast allen Bereichen. Nicht zuletzt deshalb wird aktuell versucht digitale Grundkonzepte und Kompetenzen einem breiteren Kreis von Studierenden zu vermitteln.

Waren Konzepte der Informatik und Programmierkenntnisse bisher auf technische Studien, wie etwa Mechatronik, Physik oder Elektrotechnik beschränkt, hält dies nun auch Einzug in “nicht technische” Curricula. Im Gegensatz zu den technischen Studienprogrammen liegt der Fokus hier jedoch nicht auf einer breit angelegten Programmier- bzw. Softwareentwicklungsausbildung, sondern vielmehr auf der Vermittlung von Grundkenntnissen um Probleme innerhalb der jeweiligen Domäne programmatisch lösen zu können. An der Johannes Kepler Universität Linz ist das Modul “Einführung in die Softwareentwicklung mit Python” Teil des Pflichtfaches Digitalisierung im Bachelorstudium Betriebswirtschaftslehre (BWL). Für dieses neue Modul sollte ein entsprechendes didaktisches Konzept mit dazugehörigen Lehr- und Lernmaterialien entwickelt werden.

 

Problemstellung/Challenges:

Das primäre Ziel des Moduls ist, BWL Studierenden eine gezielte, thematisch der betriebswirtschaftlichen Domäne entsprechende und auf ihre Bedürfnisse zugeschnittene, Programmier-Grundausbildung zu bieten. Die Ausbildung soll zugeschnitten sein auf Fähigkeiten die im weiteren Verlauf des Studiums und im anschließenden Berufsleben benötigt werden. Die didaktischen Herausforderungen liegen darin, dass die teilnehmenden Studierenden wenig bis keine Vorkenntnisse in der Programmierung haben und dass dem Erlernen von Programmierkenntnissen im Studium meist nur eine geringe Priorität gegeben wird. Unsere jahrelangen Erfahrungen im Bereich der Java Programmierausbildung für die Wirtschaftsinformatik zeigen einen hohen Dropout in diesen Kursen und nur moderate Ergebnisse. Zusätzlich konnten wir bei den Ergebnissen einen deutlichen Gender-Gap beobachten. Diesen Herausforderungen galt es im neu entwickelten Konzept entgegenzutreten. Das Modul sollte sowohl alle wichtigen inhaltlichen Themen abdecken, die Studierenden zum Erlernen der Programmierung motivieren, sowie ohne jegliche Vorkenntnisse absolvierbar sein.

 

Umsetzung:

Für das Modul wurde ein didaktisches Konzept entwickelt, welches auf Prinzipien des beobachtenden und entdeckenden Lernens beruht. Zusätzlich kommt ein kollaborativer Ansatz mit Peer-Learning zum Einsatz. Ein eigens für die Lehrveranstaltung entwickeltes Kompetenzmodell, sowie wöchentliche Self-Assessments erlauben den Studierenden ein Monitoring des eigenen Lernfortschritts. Wöchentliche Hausübungen den jeweiligen Kompetenzen entsprechend vertiefen das in der Vorlesungseinheit gewonnene Wissen.

 

Das Modul besteht aus einer Vorlesung und mehrerer Übungsgruppen mit bis zu maximal 30 Studierenden pro Gruppe.

Der Vorlesungsteil besteht aus einer 90-minütigen Folien-basierten Vorlesung, in der über 12 Wochen jede Woche ein Thema behandelt wird. Zu Beginn jeder Vorlesung werden die Kompetenzen vorgestellt, die in dieser Einheit erlangt werden sollen. Hierfür wurde eigens ein Kompetenzmodell entwickelt, bestehend aus hierarchisch organisierten Kompetenzen und deren Beziehungen, welches mit dem Werkzeug Gecko (https://gecko-iid.aau.at) modelliert wurde.

Die theoretischen Inhalte der Vorlesung werden durch Live-Coding Sessions ergänzt und dienen dazu, den Studierenden live zu demonstrieren wie Programmieraufgaben gelöst werden können. Der Schwerpunkt liegt hier auf beobachtenden Lernen.

Die Vorlesung wird hybrid angeboten, in dem der Vortrag synchron gestreamt wird. Um sowohl Studierende im Hörsaal als auch Studierende zu Hause einbinden zu können, wird Slido (https://www.sli.do/de) verwendet, ein interaktives Werkzeug für Q&A Fragerunden. Weiters bietet Slido die Möglichkeit, Umfragen und Feedback-Fragen zum Verständnis der Inhalte direkt in den Folienvortrag einzubinden. Die Studierenden haben vor der Vorlesung Zugang zu den Folien, sowie Beispielen aus den Live-Coding Sessions. Fragen können auch nach der Vorlesung noch mittels Slido gestellt werden.

 

Der zweite Teil des Moduls, die wöchentliche 90-minütige Übung, ist in drei Teile geteilt, wobei hier der Schwerpunkt auf entdeckenden und kooperativen Lernen liegt. Die Übung findet als Präsenzveranstaltung statt.

 

Wiederholung und Fragen: Zu Beginn jeder Übungseinheit wird von der jeweiligen Übungsleiter*in der Inhalt der vorangegangenen Vorlesung kurz zusammengefasst.

In etwa 15-20 Minuten werden nochmals die wichtigsten Konzepte des in der Vorlesung besprochenen Themas zusammengefasst und es wird nochmals auf Fragen der Studierenden eingegangen.

Weiters gibt es noch zusätzliche Beispiele als Live-Coding Sessions. Hier wird besonders darauf geachtet die Studierenden aktiv einzubinden und sie zu ermuntern der Übungsleiter*in die Lösungen “zu diktieren”, bzw. gemeinsam mit der Übungsleiter*in zu lösen. Wichtig ist hier jedoch, dass diese Zusammenfassung nicht als Ersatz für die eigentliche Vorlesung gedacht ist, was den Studierenden auch so kommuniziert wird.

 

Entdeckendes Lernen: In einem zweiten Schritt sind weitere 10-15 Minuten dem Selbststudium gewidmet. Die Studierenden haben Zeit, die sogenannten “Leseecken'' zu studieren, wo Musterlösungen, Schritt-für-Schritt Übungen und Beispiele zum jeweiligen Thema (z. B. verschiedene Arten von Schleifen und Beispiele für ihre Verwendung) bereitgestellt werden.

 

Pair Programming: Der letzte und überwiegende Teil der 90-minütigen Übung (etwa eine Stunde) ist dem Pair Programming gewidmet. Die Studierenden arbeiten gemeinsam in 2er-Teams an ihren wöchentlichen Aufgabenblätter. Sie können ihre Partner*innen um Hilfe bitten, wenn sie Probleme haben, und die Übungsleiter*innen fungieren als Coaches, die bei Bedarf Fragen beantworten. Hier wird darauf geachtet, dass die 2er-Teams jeweils aus einer Anfänger*in und einer Person mit Programmiererfahrung (Peer Tutor) bestehen.

 

Zusätzlich zu den Vorlesungen und Übungen wird ein freiwilliges wöchentliches Tutorium angeboten. Das Tutorium wird in der Regel von einer Tutor*in (typischerweise eine Studierende, die den Kurs bereits absolviert hat oder entsprechende Vorkenntnisse besitzt) geleitet, die bei Fragen oder Problemen vor der Abgabe Unterstützung bietet. Das Tutorium findet in der Regel einige Tage vor dem Abgabetermin der Hausaufgabe statt, damit die Studierenden genügend Zeit haben, die Aufgabe zu Hause zu bearbeiten.

 

Didaktische Methoden:

Für das Modul wurde ein didaktisches Konzept entwickelt, das auf Prinzipien des beobachtenden und entdeckenden Lernens beruht. Live-Coding Sessions sind integrale Bestandteile der Vorlesung um Studierenden durch Beobachtung den Weg von der Problemstellung zur Problemlösung zu demonstrieren. Die wöchentlichen Leseecken beinhalten Schritt-für-Schritt Anleitungen zum Lösen von Aufgaben um entdeckendes Lernen zu fördern.

Zusätzlich kommt ein kollaborativer Ansatz mit Peer-Learning zum Einsatz. In den wöchentlichen Übungen ist der überwiegende Teil der Einheit dem Pair-Programming gewidmet. Studierende mit Programmiererfahrung fungieren hier als Peer-Tutoren.

Ein eigens für die Lehrveranstaltung entwickeltes Kompetenzmodell, sowie Self-Assessments, abgestimmt auf die jeweiligen Kompetenzen, erlauben den Studierenden ein Monitoring des eigenen Lernfortschritts. Wöchentliche Hausübungen den jeweiligen Kompetenzen entsprechend vertiefen das in der Vorlesungseinheit gewonnene Wissen.

 

Materialien:

Sämtliche Materialien werden den Studierenden über die Plattform Moodle zur Verfügung gestellt. Die Studierenden erhalten sämtliche Folien, Beispiele und Leseecken bereits vor der jeweiligen Lehreinheit.

Bei der Auswahl der Werkzeuge, beziehungsweise der Formate für die Lernmaterialien - im Speziellen Codebeispiele und Übungsaufgaben - wurde besonders der Charakter und die Zielgruppe der Lehrveranstaltung berücksichtigt. Die wöchentlichen Aufgabenblätter enthalten jeweils etwa 6 Programmieraufgaben, die thematisch an die betriebswirtschaftliche Domäne angelehnt sind.

Nach einer Evaluierungsphase wurden Jupyter Notebooks (https://jupyter.org) ausgewählt.

Der wesentliche Vorteil liegt darin, dass Jupyter Notebooks in einer web-basierten interaktiven Umgebung verwendet werden können und die Installation und Verwendung einfach und intuitiv ist. Weiters können in einem Jupyter Notebook Programmcode und Text kombiniert werden und sowohl Codebeispiele als auf deren Beschreibung kann innerhalb des Notebooks übersichtlich und gut dokumentiert erfolgen.

Übungsblätter sind so gestaltet, dass sowohl die Beschreibung der Aufgaben, als auch Beispielausgaben innerhalb eines Notebooks erstellt werden können und nicht separat definiert werden müssen.

 

Leistungsfeststellung:

Die Endnote des Moduls wird aus einer Kombination aus bewerteten Hausübungen und dem Klausurergebnis berechnet. Damit soll verhindert werden, dass Studierende zwar die Aufgaben abgeben und den Übungsteil bestehen, aber die Prüfung überspringen und den Vorlesungsteil nicht beenden. Die Prüfung wird in einem für Computerprüfungen speziell ausgerüsteten Prüfungsraum über Moodle abgehalten und ähnlich wie bei den Hausaufgaben werden Prüfungsfragen aus verschiedenen Themenbereichen gestellt. Dabei wird sichergestellt, dass die Erlangung der Hauptkompetenzen aus dem Kompetenzmodell überprüft wird. Um das Modul zu bestehen, müssen die Studierenden (1) mindestens 50% der Gesamtpunktzahl der Klausur erreichen und (2) mindestens acht der zehn Aufgabenblätter mit mindestens 50% der Punkte der Hausaufgaben einreichen.

 

Evaluierung:

Das Feedback der Studierenden zum Modul ist sehr positiv, mit niedrigen Drop-Out Raten. Im vergangenen Jahr haben mehr als 90% der Studierenden das Modul positiv absolviert. Es konnte kein Gender-Gap beobachtet werden.

Nutzen und Mehrwert

Das entwickelte didaktische Konzept führt zu einer Lernerleichterung für Studierende. Studierende der BWL erlangen Grundkenntnisse in der Programmierung in Python, nachfolgende Lehrveranstaltung im Studium können diese Kenntnisse voraussetzen.

Durch die betriebswirtschaftliche Ausrichtung des didaktischen Konzepts können Studierende die erworbenen Fähigkeiten nicht nur im Studium, sondern auch im nachfolgenden Berufsleben einsetzen. Das im BWL Studium an der Johannes Kepler Universität Linz vorherrschende Major/Minor System bietet Möglichkeiten zu einer weiteren Vertiefung im Bereich der Digitalisierung.

Die Abhaltung des Moduls im Sommersemester 2021 hat gezeigt, dass ein Großteil der Studierenden Gefallen an der Programmierung in Python gefunden hat. Es besteht daher die Erwartung, dass mehr Studierende als bisher eine Vertiefung im Bereich Digitalisierung wählen und so dem Fachkräftemangel in diesem Bereich entgegengewirkt werden kann.

Nachhaltigkeit

Das entwickelte didaktische Konzept kann in der aktuellen bzw. einer adaptierten Variante direkt für andere Programmierkurse eingesetzt werden und somit als Vorlage für ähnliche Kurse dienen. Die verwendeten Beispiele können gegebenenfalls gegen Beispiele aus einer anderen (nicht-technischen) Domäne bzw. für eine andere Programmiersprache getauscht werden.

Es ist geplant, dass das gesamte Modul (Vorlesung und Übung) ab dem Wintersemester 2022 als Teil des Bachelorstudiums Internationale Betriebswirtschaftslehre (IBWL) in englischer Sprache angeboten wird.

In Vorbereitung dafür wurde bereits ein Großteil der Lehrveranstaltungsunterlagen in englischer Sprache erstellt. Aufgabenblätter (Jupyter Notebooks) die Teil der Übung sind, wurden zweisprachig - sowohl in Deutsch als auch in Englisch erstellt - und können mittels eines eigens dafür entwickelten Werkzeugs entsprechend für die benötigte Unterrichtssprache ohne Mehraufwand generiert werden.

 

Zusätzlich zur Verankerung des Kurses in unterschiedlichen Curricula, ist geplant die Lehrmaterialien als Teil eines Open Teaching Ansatzes einer breiten Öffentlichkeit zugänglich zu machen, sodass diese auch zum selbständigen Erlernen von Programmiergrundkenntnissen in Python verwendet werden können.

Aufwand

Das didaktische Konzept wurde aufbauend auf den Erfahrungen bisheriger Lehrveranstaltungen im Bereich der Programmierausbildung für Wirtschaftsinformatik entwickelt. Dadurch konnte ein Teil der Konzepte, wie etwa Pair Programming und Teamwork in abgewandelter Form wiederverwendet werden.

Das erstellte Kompetenzmodell ist auch angelehnt an jenem für die Java-basierte Programmierausbildung für Studierende der Wirtschaftsinformatik. Ein signifikanter Aufwand bestand jedoch darin, die in der (technischen) Programmierausbildung typischen Konzepte so anzupassen, dass diese für Studierende in nicht-technischen Fächern verständlich und greifbar sind. Dies betrifft vor allem Programmierbeispiele angelehnt an die betriebswirtschaftliche Domäne (statt in der Informatik oft verwendeter mathematischer Aufgaben), sowie Self-Assessments und Leseecken die grundlegende Programmierkonzepte für Studierende eines betriebswirtschaftlichen Faches aufbereiten.

Zusätzlich dazu wurden mehrere kurze Videos erstellt, die den Studierenden den Einstieg in die Lehrveranstaltung erleichtern sollen, z.B. die Installation und erste Verwendung einer Entwicklungsumgebung.

Des Weiteren wurde ein Großteil des Materials sowohl in deutscher als auch englischer Sprache erstellt um dieses in weiteren (englischsprachigen) Lehrveranstaltungen direkt verwenden zu können.

Positionierung des Lehrangebots

Das Modul “Einführung in die Softwareentwicklung mit Python” (bestehend aus einer Vorlesung mit begleitender Übung) ist Teil des Pflichtfaches Digitalisierung im Bachelorstudium Betriebswirtschaftslehre an der Johannes Kepler Universität Linz. Idealtypisch soll die Veranstaltung im 2. Semester absolviert werden. Die Lehrveranstaltung ist ebenfalls Teil des Curriculums des Bachelorstudiums Internationale Betriebswirtschaftslehre und wird ab dem Wintersemester 2022 auch in englischer Sprache angeboten.

 

Zusätzlich zur Verankerung des Kurses in unterschiedlichen Curricula, ist geplant die Lehrmaterialien als Teil eines Open Teaching Ansatzes einer breiten Öffentlichkeit zugänglich zu machen, sodass diese auch zum selbständigen Erlernen von Programmiergrundkenntnissen in Python verwendet werden können.

Links zu der/den Projektmitarbeiter/innen
Das Beispiel wurde für den Ars Docendi Staatspreis für exzellente Lehre 2022 nominiert.
Ars Docendi
2022
Kategorie: Qualitätsverbesserung von Lehre und Studierbarkeit
Ansprechperson
Assoz. Univ.-Prof.in Dr.in Iris Groher
Institut für Wirtschaftsinformatik - Software Engineering
0732 2468 4259
Nominierte Person(en)
Assoz. Univ.-Prof.in Dr.in Iris Groher
Institut für Wirtschaftsinformatik - Software Engineering
Dr. Michael Vierhauser
LIT Secure and Correct Systems Lab
Themenfelder
  • Curriculagestaltung
  • Lehr- und Lernkonzepte
  • Digitalisierung
  • Rund ums Prüfen
Fachbereiche
  • Mathematik, Informatik, Naturwissenschaften, Technik/Ingenieurwissenschaften
  • Wirtschaft und Recht