Wie können Jupyter Notebooks dabei unterstützen, Konzepte der Programmierung in Python zu vermitteln?

Über diesen Lernpfad

Dieser Lernpfad zeigt Lehrkräften zunächst auf, was Jupyter Notebooks sind und in welchen Umgebungen sie verwendet werden können. Indem Lehrkräfte selbst ein paar exemplarische Jupyter Notebooks zu den Grundlagen der Programmierung in Python bearbeiten, erfahren sie, in welcher Art und Weise diese die Vermittlung von Programmierkenntnissen – insbesondere auch an Schülerinnen und Schüler – unterstützen können. Der Lernpfad ist so gestaltet, dass dieser unabhängig vom Kenntnisstand in der Programmierung durchlaufen werden kann – egal ob bereits fortgeschrittene Kenntnisse im Bereich der Programmierung vorhanden sind oder noch gar keine Vorkenntnisse. Lernschritt 4 eignet sich auch, um die Grundlagen der Programmierung in Python zu erlernen.

Lernschritt 1 – Was sind Jupyter Notebooks?

Jupyter Notebooks sind Dateien, die aus Textblöcken und Programmblöcken bestehen. Sie sind für den Informatik- und Programmierunterricht interessant, da Schülerinnen und Schüler in einem einzigen Dokument interaktiv arbeiten können, ohne zwischen Informationen (z.B. Schulbuch oder pdf-Dateien) und Programmierumgebung wechseln zu müssen.

Die Textblöcke beinhalten Text, der auch formatiert werden kann, und ggf. Auflistungen, Tabellen, Bilder und Links. Die grundlegenden Möglichkeiten, die Textverarbeitungsprogramme bieten, sind hier ebenfalls vorhanden und ermöglichen eine ansprechende Gestaltung der Jupyter Notebooks. Für die Formatierung stehen Markdown und Latex zur Verfügung.

Jeder Programmblock (Codeblock) beinhaltet ein Python-Programm bzw. einen Programmabschnitt. Diese können direkt im Jupyter Notebook ausgeführt werden, ohne in ein eine andere Umgebung wechseln zu müssen. Mehrere Programmabschnitte können auch nach und nach ausgeführt und direkt verändert werden.

Diese Änderungen und wenn gewünscht auch die Programmausgaben derjenigen Programmabschnitte, die man ausgeführt hat, werden im Jupyter Notebook als ipynb-Datei gespeichert. Diese Dateien können in einer browserbasierten Umgebung oder lokal gespeichert und genutzt werden.

Lernschritt 2 – Nutzung von Jupyter Notebooks auf einem Tablet

Dieser Lernschritt beschäftigt sich mit dem technischen Vorgehen zur Nutzung von Jupyter Notebooks auf einem Tablet. Es wird gezeigt, wie diese browserbasiert ohne Installation direkt genutzt werden können. Die Screenshots stammen von einem iPad, die prinzipielle Vorgehensweise sollte jedoch auf andere Geräte und Betriebssysteme übertragbar sein. Im ersten Jupyter Notebook erfahren Sie die grundlegende Arbeitsweise mit diesen Dateien.

Die erste Anleitung zeigt, wie ein vorhandenes Jupyter Notebook auf einem Tablet ausgeführt werden kann.Hierzu muss zunächst die nebenstehende ipynb-Datei heruntergelanden werden und lokal auf demTablet gespeichert werden. Im Anschluss kann diese gemäß der Anleitung (H5P-Datei) in die browserbasierte Umgebung Jupyter Lab (https://jupyter.org/try-jupyter/lab) geladen werden.

Hinweis: Die Umgebung Jupyter Lab ist aktuell noch als experimentell eingestuft. Die im Lernpfad beschriebenen Grundfunktionen sollten jedoch funktionieren.

In der zweiten Anleitung wird gezeigt, wie ein eigenes Juypter Notebook als interaktives Arbeitsblatt erstellen und gestalten werden kann.

Achtung: Am Ende muss das Juypter Notebook heruntergeladen werden, um das Dokument dauerhaft zu speichern!

Ergänzende Hinweise:

Auch inf-schule.de stellt eine Umgebung basierend auf JupyterLite zur Verfügung, die jedoch aktuell noch als experimentell eingestuft ist:

Darüber hinaus existieren browserbasierte Dienste, die zwar kostenlos sind, aber wegen einer notwendigen Registrierung oder aufgrund häufig sehr hoher Auslastung für den schulischen Kontext nur bedingt geeignet sind:


 

Lernschritt 3 – Nutzung von Jupyter Notebooks auf einem PC oder Laptop mit lokaler Installation

In diesem Lernschritt wird zunächst beschrieben, welche kostenlose Software genutzt werden kann, um Jupyter Notebooks lokal auf dem PC oder Laptop ausführen zu können. Selbstverständlich kann gemäß der in Lernschritt 2 beschriebenen Schritte auch an einem Computer mit Jupyter Notebooks gearbeitet werden. Empfehlenswert ist, die hier beschriebenen Installationen vorzunehmen. Dadurch wird eine Unabhängigkeit von einer stabilen Internetverbindung erreicht. Zudem lassen sich Dateien deutlich einfacher bearbeiten und Änderungen speichern, ohne den Umweg über das Hoch- und Herunterladen in eine browserbasierte Umgebung. Im ersten Jupyter Notebook wird die grundlegende Arbeitsweise mit diesen Dateien vermittelt.

Zunächst die notwendige Software installieren:

  1. Installation der aktuellesten Python-Version von der offiziellen Python Website: https://www.python.org/download Wichtig: Häkchen bei „Add Python to PATH“ setzen. Überprüfen ob die Installation erfolgreich war: über die Windows-Taste "cmd" eingeben, die Eingabeaufforderung öffnen und "python --version" eingeben. Erscheint dann eine Ausgabe der Form Python 3.14.2 oder Ähnliches, ist Python erfolgreich installiert worden.
  2. Installation der Programmierumgebung Visual Studio Code. Link: https://code.visualstudio.com/docs/setup/setup-overviewVisual Studio Code öffnen und die Tastenkombination "Strg + Shift + X" drücken. Nach Python suchen und die Erweiterung für Python installieren. Im Anschluss nach Jupyter suchen und die Erweiterung Jupyter installieren.

Jupyter Notebooks für Python sind Dateien mit der Endung ipynb. Nebenstehende Beispieldatei herunterladen und in Visual Studio Code öffnen. Es ist empfehlenswert, die Dateiendung ipynb mit Visual Studio Code zu verknüpfen. Dann können die Dateien ganz einfach per Doppelklick geöffnet werden.

Die restlichen Schritte des Lernschritts sind in dem Jupyter Notebook integriert und können direkt in der Datei durchgearbeitet werden. Beim Öffnen ggf. mit „Trust“ oder „Open“ bestätigen, damit sich das Dokument öffnet.

Lernschritt 4 – Lernen mit Jupyter Notebooks selbst erleben

In diesem Lernschritt, dem umfangreichsten der 8 Lernschritte, wird nur in Jupyter Notebooks gearbeitet, dabei können die grundlegenden Konzepte der Programmierung in Python erlernet werden. Außerdem werden Jupyter Notebooks aus der Perspektive von Lernenden erlerbt, wodurch sich Ideen für ihren Einsatz in einem interaktiven Programmierunterricht entwickeln lassen.

An dieser Stelle gibt es zwei Möglichkeiten, wie mit den Jupyter Notebooks in diesem Lernschritt gearbeitet werden kann:

  • Noch keine Vorerfahrungen mit der Programmierung in Python? Dann können die Kapitel Schritt für Schritt intensiv durcharbeitet werden. Sollten zu manchen der Themen ausführlichere Informationen benötigt werden, können die Erklärungen und Übungen auf der folgenden Website genutzt werden: https://cscircles.cemc.uwaterloo.ca/de/
  • Es bestehen bereits Kenntnisse in Python. Dann können die Kapitel durchgeschaut und Ideen für Aufgabentypen gesammelt werden, die durch Jupyter Notebooks vereinfacht oder erst ermöglicht werden.

Die Inhalte bauen aufeinander auf. Daher ist die Bearbeitung in der chronologischen Reihenfolge empfohlen.

Lernschritt 5 – Lernen mit Jupyter Notebooks – Einsatz im Unterricht

Dieser Lernschritt dient einer kurzen Reflexion und didaktischen Nachbetrachtung der Arbeit mit Jupyter Notebooks aus dem letzten Lernschritt.

Bei vielen der üblicherweise verwendeten Entwicklungsumgebungen zum Programmieren ist es so, dass die Lernenden beim Programmieren mit etlichen verschiedenen Fenstern hantieren müssen. Wird beispielsweise die Standardumgebung Python IDLE verwendet, besteht diese schon aus zwei verschiedenen Fenstern, zwischen denen häufig gewechselt werden muss. Liegen die Arbeitsaufträge als weitere Datei vor, so müssen Lernende also mit drei Fenstern hantieren und umgehen, was durch unzureichende Bildschirmgröße oder fehlende Routine im Umgang mit Computern zu zusätzlichen Hürden führen kann. Jupyter Notebooks bieten hier den Vorteil, dass diese so gestaltet werden können, dass in einer einzigen Datei sowohl die Aufgabenstellung direkt vorhanden ist und diese gleichzeitig der Ort ist, an dem Programme ausgeführt, verändert und selbst geschrieben und auch gespeichert werden können.

Speichern die Lernenden ihr bearbeitetes Jupyter Notebook ab, so kann dieses gleichzeitig als Dokumentation ihrer Ergebnisse dienen, denn darin können sowohl die vorgenommenen Änderungen an vorgegebenen Programmen als auch die selbst geschriebenen Programme als auch die produzierten Programmausgaben gespeichert werden. Dadurch kann also auch gespeichert werden, welche Programme vom Lernenden bereits ausgeführt wurden.

Jupyter Notebooks können also im Sinne eines „Arbeitsblatts“ in Übungsphasen eingesetzt werden und ermöglichen hierbei eine höhere Interaktivität und ggf. einfachere Dokumentation als klassische Arbeitsblätter. Durch gezielte Fragen und Denkanstöße und die Interaktion der Lernenden mit Programmabschnitten und deren Ausgaben besteht eine gewisse Selbstkontrolle in den Arbeitsaufträgen, denn die Lernenden erhalten durch erwartete oder unerwartete Programmausgaben immer wieder Rückmeldungen darüber, ob ihre Überlegungen korrekt waren.

Ermöglicht werden auch Übungsformate, wie Sie beispielsweise im Jupyter Notebook (06_while-Schleife.ipynb aus Lernschritt 4.) zu den Themen "Begrüßungsprogramme", "Zahlenreihen" und "Endlosschleifen" erlebt haben. Dort sind jeweils vorgegebene kleine Programme aufgelistet, die sich nur geringfügig unterscheiden und vielleicht in ähnlicher Form als "Wackelaufgaben" bekannt sind. Denkbar ist hier auch, dieses Format als eine Art Wettbewerb zu gestalten, indem zum Beispiel zwei Lernende in einem Team Strichlisten dazu führen, wie oft ihre prognostizierte Programmausgabe korrekt war. 

Die Jupyter Notebooks aus dem vorherigen Lernschritt beinhalten nicht nur Übungen, sondern führen auch neue Konzepte ein. Für Programmieranfänger wäre prinzipiell die Gestaltung eines kompletten Selbstlernkurses mit Jupyter Notebooks zunächst denkbar – ähnlich wie es in Lernschritt 4 erlebt werden konnte. Erfahrungsgemäß ist es jedoch empfehlenswert, neue Konzepte der Programmierung zunächst im Dialog einzuführen, ausführlich zu besprechen und entstehende Verständnisfragen zu klären. Auch in diesem Modus kann es den Lernenden jedoch helfen, wenn eine kompakte Zusammenfassung der Inhalte als Wiederholung oder interaktive Wiederholung auch im zugehörigen Jupyter Notebook noch einmal aufgegriffen wird, bevor man dort in die Übungen übergeht.

Hinweis: Falls der aktuell viel diskutierte PRIMM-Ansatz (Sentence, Waite, 2017) ein Begriff ist: Auch für dessen Umsetzung im Unterricht sind Jupyter Notebooks ein gut geeignetes Werkzeug.

Bei Interesse weitereführende Links: https://www.informatischebildung.de/index.php/ibis/article/view/45

Lernschritt 6 – Erstellung von Jupyter Notebooks – Vertiefung Markdown

Markdown ist eine so genannte Auszeichnungssprache, die grundlegende Textformatierungen erlaubt und in Jupyter Notebooks zur Verfügung steht. Bei der bisherigen Arbeit mit Jupyter Notebooks wurden vermutlich nur die Codeblöcke, nicht jedoch die Textblöcke bearbeitet. Per Doppelklick auf einen Textblock in einem Jupyter Notebook wird dieser editierbar und ggf. Zeichen sichtbar, die für die Formatierung des Texts relevant sind wie zum Beispiel *,  #,  _ oder Anführungszeichen. Nachdem die Bearbeitung eines Textblocks abgeschlossen ist, kann in Visual Studio Code über das Haken-Symbol an der Zelle der Text in seiner formatierten Form anzeigt werden. In JupyterLab im Browser wird hierfür der Play-Button oben benötigt.

Eine sehr schöne und kompakte Übersicht über die grundlegenden Formatierungssymbole in Markdown ist im Jupyter Lab über das Menü Help / Markdown Reference zu finden. Dort kann bei Bedarf auch ein kleines zehnminütiges Online-Tutorial durchlaufen werden.

Link zu Jupyter Lab: https://jupyter.org/try-jupyter/lab/

Lernschritt 7 – Erstellung von Jupyter Notebooks – Vertiefung Latex

Wenn Jupyter Notebooks selbst bearbeitet oder erstellt werden sollen, kann es hilfreich sein, zur Darstellung mathematischer Formeln Latex zu benutzen. Die meisten grundlegenden Befehle von Latex – leider nicht alle – funktionieren auch in Jupyter Notebooks. In Textblöcken kann der Latex-Code einfach in einfache oder doppelte $-Zeichen setzen. Beim Abschließen der Bearbeitung des Textblocks, wird dieser automatisch übersetzt.

Lernschritt 8 – Übungsphasen im Unterricht mit Jupyter Notebooks gestalten

Dieser Lernschritt zeigt exemplarisch an zwei verschiedenen fortgeschrittenen Unterrichtsinhalten, nämlich Feldern und Strings, wie Übungsphasen im Unterricht mit Jupyter Notebooks alternativ gestaltet werden können. Nach der Einführung des jeweiligen Themas und der Besprechung der Grundlagen üben die Schüler eigenständig in Einzel- oder Partnerarbeit, indem sie das Jupyter Notebook durcharbeiten.

Die Inhalte werden in diesen Jupyter Notebooks im Gegensatz zu Lernschritt 4 nicht eingeführt, sondern Grundkenntnisse hierzu vorausgesetzt. Empfehlung zur Bearbeitung dieses Lernschritts:

  • Lehrkräfte ohne Vorkenntnisse zu Feldern (bzw. Listen) und Strings (Zeichenketten) eignen sich die Grundlagen zunächst an, bevor sie die beiden Jupyter Notebooks bearbeiten.
    1. Für die Grundlagen zu Feldern (Listen) das Kapitel 12 des Online-Kurses unter https://cscircles.cemc.uwaterloo.ca/13-de/ durcharbeiten.
    2. Das Jupyter Notebook zu Feldern bearbeiten.
    3. Für die Grundlagen zu Strings das Kapitel 7A unter https://cscircles.cemc.uwaterloo.ca/7a-de/ durcharbeiten.
    4. Das Jupyter Notebook zu Strings bearbeiten.
  • Lehrkräfte mit Kenntnissen zu Feldern und Strings bearbeiten oder betrachten direkt die beiden Jupyter Notebooks.

Die Inhalte bauen nicht direkt aufeinander auf, hängen aber miteinander zusammen. Daher sollte zunächst Felder und dann Strings zu bearbeiten. Im Unterricht kann die Reihenfolge auch umgekehrt aufgebaut werden.