Anleitung zur Erstellung von Programmierübungen für Dozent:innen

Mit Programmierübungen gibst du deinen Kursteilnehmer:innen die Möglichkeit, ihre Programmierkenntnisse in kurzen, gezielten Übungen praktisch anzuwenden.

Die Nutzer:innen möchten das Gelernte am liebsten sofort üben und eine direkte Rückmeldung erhalten, ob sie alles richtig verstanden haben. Mithilfe von Programmierübungen kannst du ihnen genau dies ohne großen Aufwand ermöglichen.

 


Häufig gestellte Fragen zu Programmierübungen

Was ist eine Programmierübung?

📖 Eine Programmierübung ist eine praktische Aufgabe, die die Nutzer:innen mithilfe einer bestimmten Programmiersprache oder eines bestimmten Frameworks lösen. Damit können sie überprüfen, wie gut sie die in deinem Kurs vermittelten Konzepte verstanden haben, und erhalten nach dem Abschluss der Übung eine automatische Auswertung.

Wie fange ich an?

Öffne die Seite „Kursplan“ deines Kurses. Klicke auf den Button „+ Kursplanelement“ und dann auf Programmierübung. Ausführliche Infos findest du in diesem Support-Artikel.

Wann sollte ich Programmierübungen zu meinem Kurs hinzufügen?

Programmierübungen solltest du für alle wichtigen Themen und Skills in deinem Kurs anbieten, die sich auf Programmierung beziehen. Besonders wenn:

  • eine Kurslektion mindestens ein Lernziel aufweist, das sich auf das Schreiben von Code bezieht
  • das in einer Lektion vermittelte Konzept mithilfe einer Programmierübung bewertet werden kann

Wie viele Programmierübungen sollte ich zu meinem Kurs hinzufügen?

Die Anzahl der Programmierübungen pro Kurs ist nicht begrenzt, aber es hat sich bewährt, die Übungen im gesamten Kurs in gewissen Abständen einzustreuen, um den Übungseffekt zu erhöhen. Hier einige Ideen zur Anordnung der Programmierübungen in deinem Kurs:

  • Füge mindestens eine Programmierübung pro Abschnitt ein.
  • Biete mehrere Programmierübungen für dasselbe Lernziel an. Dabei sollten sich jedoch die Programmierübungen nicht an einer Stelle ballen, es sei denn, du bietest mehrere Übungen für dasselbe Lernziel an.
  • Du kannst beispielsweise einige Abschnitte mit einer Programmierübung beginnen, an der die Nutzer:innen ihr Vorwissen testen können, dann folgt eine Lektion, in der du das Konzept ausführlich erklärst, und dann stellst du eine weitere Programmierübung in einem neuen Kontext zur praktischen Anwendung des Gelernten bereit. Das motiviert die Nutzer:innen herauszufinden, warum sie sich den Inhalt der Lektionen in diesem Abschnitt ansehen sollten.

Lohnt sich die Erstellung von Programmierübungen für mich finanziell?

Wenn dein Kurs im Rahmen von Udemy-Abos angeboten wird, dann wird die von den Nutzer:innen mit Programmierübungen verbrachte Zeit bei der Berechnung deines Umsatzanteils berücksichtigt.

Welche Sprachen sind für Programmierübungen verfügbar?

Zurzeit kannst du Programmierübungen in den folgenden Sprachen erstellen: C#, C# 11, C++ 20, CSV-Verarbeitung (mit Python), HTML, Java 17 (mit JUnit5), Java 11, Java 9, JavaScript ES6, Kotlin, PHP 7, PHP 5, Python 3.10, Python 3.8, Python 3.5, R 3.6, React 16, React 18, Ruby, SciPy 1.4 (NumPy, Pandas, SymPy) und SciKit Learn 0.23, SQL, SQLite 3, Swift 5 und Swift 3.

 


So erstellst du eine Programmierübung

Eine Programmierübung erstellst (oder aktualisierst) du wie folgt: Ziel und Ergebnis planen, Lösung erstellen, Übung gestalten und Hinweise und Testfälle hinzufügen, um die Nutzer:innen bei der Bearbeitung zu unterstützen.

Programmierübung planen

Definiere zuallererst das Lernziel. Beantworte dafür die folgenden Fragen:

  • Was sollten die Nutzer:innen beherrschen, wenn sie diese Programmierübung korrekt abgeschlossen haben?
  • Welcher Skill bzw. welche Skills werden mit dieser Übung trainiert? Welcher Skill bzw. welche Skills werden überprüft?

Denke dir an dieser Stelle ein Problem für die Programmierübung aus, das zu den gewünschten Lernergebnissen führt. Dieses Problem sollte ein kurzer Ausschnitt aus einer realistischen Aufgabe sein, die ein:e Ingenieur:in oder technische:r Mitarbeiter:in bearbeiten würde.

💡 Tipp! Konzipiere die Programmierübungen so, dass sie in kurzer Zeit zu schaffen sind.

    • Idealerweise sollte ein:e durchschnittlicher Nutzer:in maximal 15 Minuten Bearbeitungszeit pro Programmierübung aufwenden. Das ist die optimale Zeitspanne fürs Microlearning. Außerdem wird auf diese Weise sichergestellt, dass sich die Übung auch für Nutzer:innen mit engem Zeitplan eignet.

Mit der Lösung beginnen

Für den Aufbau deiner Programmierübung empfiehlt sich die Rückwärtsplanung. Daher solltest du, nachdem du dich auf ein Problem festgelegt hast, die gewünschte Lösung vollständig ausarbeiten, d. h. einschließlich Auswertungs- und Lösungsdatei.

📖 Die Lösungsdatei enthält die Lösung für das definierte Problem. Von den Nutzer:innen wird erwartet, dass sie eine ähnliche Lösung (nicht zwangsläufig die gleiche) finden. Anhand dieser Datei wird überprüft, ob die Auswertungsdatei („Unit Test“) richtig ist.

📖 Die Auswertungsdatei ist die Unit-Test-Datei, anhand derer überprüft wird, ob das Problem mit der Nutzerlösung tatsächlich gelöst werden kann. Zur Verifizierung der Lösung sind Assertionsanweisungen erforderlich.

Um eine neue Programmierübung zu erstellen, musst du Lösungs- und Auswertungsdateien bereitstellen, die vom System verifiziert werden können. Zur Erinnerung: Mit der Lösungsdatei wird die Auswertungsdatei selbst verifiziert und mit der Auswertungsdatei wird verifiziert, ob die Nutzerlösung korrekt ist.

💡 Tipp! Mit KI generieren

Für Programmierübungen auf Englisch oder Spanisch in Python, C++, Java und JavaScript könnt ihr euch bei der Erstellung der Übungsdateien jetzt durch künstliche Intelligenz eines Drittanbieters unterstützen lassen.

  1. Öffne die Kursplanseite deines Kurses und beginne mit der Erstellung einer neuen Programmierübung in Python, C++, Java oder JavaScript.

  2. Gib auf dem Tab „Übung planen“ den Titel und das Lernziel der Übung an und gehe dann auf den zweiten Tab „Lösung ausarbeiten“.

  3. Klicke auf den neuen Button „Mit KI generieren“ und füge die Anweisungen für dein Problem hinzu.

  4. Nachdem du die Problemstellung eingegeben hast, klickst du auf den Button „Mit KI generieren“. Nun werden in Sekundenschnelle die Lösungs- und Auswertungsdateien für deine Übung erstellt.

  5. Prüfe diese Dateien sorgfältig und nimm alle nötigen Änderungen vor, um die Übung zu perfektionieren, und gehe dann zum Abschnitt „Anleitung für die Nutzer“.

Übung gestalten

Der nächste Schritt nach der Erstellung der Lösung besteht darin, den Zweck und die Problemstellung der Übung klar zu formulieren. Wir empfehlen die folgenden Schritte:

  1. Beschreibe, was die Nutzer:innen beherrschen sollten, wenn sie diese Programmierübung korrekt abgeschlossen haben, und welche Skills damit trainiert werden. Diese Antworten solltest du bereits in der Planungsphase definiert haben.
  2. Formuliere die Problembeschreibung so ausführlich und verständlich wie möglich. Achte darauf, genügend Informationen anzugeben, damit die Nutzer:innen die Übung problemlos lösen können. Übertreibe es aber nicht und lasse ihnen genügend Raum, den gefragten Skill zu üben bzw. zu zeigen, dass sie die Aufgabe lösen können.
  3. Erstelle die Startdatei.
    📖 Die Startdatei enthält den Ausgangscode für die Übung. Damit sorgst du dafür, dass sich die Nutzer:innen auf den gewünschten Skill konzentrieren können.

💡 Tipp! Gewöhne dir ein aussagekräftiges und einheitliches Benennungsschema für deine Programmierübungen an.

    • Verwende ein einheitliches und eindeutiges Benennungsschema für alle Programmierübungen. So könnten beispielsweise die Namen aller Programmierübungen mit „Programmierübung“ beginnen, damit die Nutzer:innen sie im Kurs leicht finden können.

📝 Hinweis: Achte wie bei der gesamten Kommunikation mit deinen Nutzer:innen darauf, dass deine Anweisungen frei von Schreib- und Grammatikfehlern, präzise und unvoreingenommen formuliert sind.

Unterstützung deiner Nutzer:innen

Testfälle

📖 Mit einem „Unit Test“ kann die kleinste Code-Einheit geprüft werden, die logisch im System isoliert werden kann. In den meisten Programmiersprachen ist das eine Funktion, Subroutine, Methode oder Eigenschaft.

Du solltest einen Unit Test für deine Lösung der Programmierübung bereitstellen, damit die Nutzer:innen ein Feedback erhalten, wenn sie auf „Lösung prüfen“ klicken. In diesem Feedback sehen sie, welche Fehler sie gemacht haben, und wenn sie die Aufgabe erfolgreich abschließen konnten, erhalten sie eine wichtige Bestätigung ihrer Lernfortschritte.

Gehe zur Erstellung von Testfällen am besten wie folgt vor:

  • Spezifische Prüfung. Ein Unit Test sollte nur eine logische Assertion enthalten, d. h., es wird nur eine Ausgabe des getesteten Codes geprüft.
  • Umfassender Test. Alle externen Dienste und Zustände werden ausgeblendet, d. h., das gesamte erforderliche Verhalten wird getestet. Mit einem Unit Test sollte breitflächig getestet werden, sodass er auch Grenzfälle erfasst.
  • Aussagekräftiges Benennungsschema. Du solltest jedem Test einen aussagekräftigen Namen geben, damit sich die Nutzer:innen in der Liste leicht zurechtfinden.

Zugehörige Lektion

Verlinke eine empfohlene Lektion in deinem Kurs, in der sich die Nutzer:innen über den Skill, den sie gerade üben, eingehend informieren können.

Hinweise

📖 Mit einem Hinweis kannst du den Nutzer:innen kleine Tipps geben, wenn sie bei einer Übung nicht weiterkommen.

Während der Titel des Hinweises natürlich meistens schon einen Tipp enthält, solltest du im Abschnitt „Hinweise“ zusätzliche Informationen angeben, die nicht in den Anweisungen oder im Unit Test angegeben sind.

Gehe zur Erstellung von Hinweisen am besten wie folgt vor:

  • Ein Hinweis soll das Gedächtnis der Nutzer:innen zu dem jeweiligen Konzept auffrischen.
  • Der Hinweis sollte nur ein Denkanstoß sein und nicht die gesamte Antwort enthalten.
  • Wenn du mehrere Hinweise vorbereitest, solltest du sie gestaffelt anordnen, d. h. du beginnst mit einem kleinen Hinweis und wirst dann immer konkreter, um die Nutzer:innen zu motivieren, die Aufgabe eigenständig zu lösen.

📝 Hinweis: Da die Hinweise momentan während der gesamten Bearbeitung der Übung für die Nutzer:innen angezeigt werden, solltest du Zusatzinformationen nur im Bereich „Hinweise“ eingeben. So stehen sie für Nutzer:innen zur Verfügung, die Unterstützung benötigen, ohne die korrekte Lösung der Übung vorwegzunehmen.

Erklärung der Lösung

📖 Unter Erklärung der Lösung kannst du die korrekte Lösung der Programmierübung ausführlich erläutern.

So eine Erklärung kann hilfreich für Nutzer:innen sein, die mehr Informationen benötigen, um zu verstehen, was sie falsch gemacht haben. Wenn ein:e Nutzer:in deine Programmierübung absolviert und nicht sicher ist, warum ausgerechnet mit dieser Lösung das Problem korrekt gelöst wird, kannst du es an dieser Stelle erklären. Außerdem hilft dies auch Nutzer:innen, die die Übung richtig gelöst haben, aber nicht genau wissen, warum. Damit können sie nachvollziehen, was sie genau gemacht haben, und damit ihr Verständnis dieses Konzepts für zukünftige Anwendungen festigen.

Gehe zur Erstellung von Lösungserklärungen am besten wie folgt vor:

  • Dieser Abschnitt kann Schritt-für-Schritt-Anweisungen mit Code-Ausschnitten enthalten.
  • Erkläre immer, warum die einzelnen Schritte so ausgeführt werden. Dadurch können die Nutzer:innen nachvollziehen, was sie gemacht haben und was sie beim nächsten Versuch anders machen müssen.

 


 

Weitere Informationen zu den Verbesserungen an unseren Programmierübungen findest du in diesem Artikel im Teaching Center. Außerdem findest du in diesem Support-Artikel weitere Infos über die Nutzung des Programmierübungs-Tools.

Bist du startklar zur Erstellung deines Kurses? Na dann los!

Einen Kurs erstellen