Anleitung zur Erstellung von Programmierübungen für Dozenten

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

Die Nutzer möchten das Gelernte am liebsten sofort üben und eine direkte Rückmeldung erhalten, damit sie wissen, 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 Praxisaufgabe, die die Kursteilnehmer 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.

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 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 herauszufinden, warum sie sich den Inhalt der Lektionen in diesem Abschnitt ansehen sollten.

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

Wenn dein Kurs im Rahmen von Udemy-Abos angeboten wird, dann wird die von den Nutzern 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++, CSV-Verarbeitung (mit Python), HTML, Java 17 (mit JUnit5), Java 11, Java 9, JavaScript ES6, PHP 7, PHP 5, Python 3.10, Python 3.8, Python 3.5, R 3.6, React 16, Ruby, SciPy 1.4 (NumPy, Pandas, SymPy) und SciKit Learn 0.23, SQL, 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 bei der Bearbeitung zu unterstützen.

Programmierübung planen

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

  • Was sollten die Nutzer 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 bewertet?

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 Ingenieur oder Techniker bearbeiten würde.

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

    • Idealerweise sollte ein durchschnittlicher Nutzer 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 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 Nutzern 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 Lösung des Nutzers 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 Lösung des Nutzers korrekt ist.

Ü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 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 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 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 sie im Kurs leicht finden können.

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

Unterstützung deiner Nutzer

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 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 in der Liste leicht zurechtfinden.

Zugehörige Lektion

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

Hinweise

📖 Mit einem Hinweis kannst du den Nutzern 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 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 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 angezeigt werden, solltest du Zusatzinformationen nur im Bereich „Hinweise“ eingeben. So stehen sie für Nutzer 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 sein, die mehr Informationen benötigen, um zu verstehen, was sie falsch gemacht haben. Wenn ein Nutzer 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 Nutzern, 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 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