Didaktik zum Notebook Rekursion

Didaktik zum Notebook Rekursion#

Überlegungen zu Tiefe Verschachtelung? Rekursive Funktion!

Inhaltlich:

  • Eine grundlegende, einfache Einführung in die Idee der Rekursion. Aufgehängt nicht an einem artifiziellen Beispiel aus der Mathematik (“Fakultät”), sondern an einer ganz typischen Datenstruktur in Python, nämlich verschachtelte Listen.

  • Gleichzeitig ein Beispiel dafür, dass nicht die Parameter einer Funktion, sondern die Objekte, auf die ein Parameter zeigt, einen Typ haben – den wir hier ganz explizit abfragen. (Wir diskutieren das später unter dem Stichwort Überladung eines Operators.)

Vorgehen:

  • Die Funktion Wert() wird ganz am Anfang informell spezifiziert – und schon hier wird informell und sprachlich die Rekursion benutzt: Der Wert einer Liste ist die Summe der Werte der einzelnen Listenelemente.

  • Wir berechnen den Wert verschiedener zunehmend komplexerer (Listen aus) Listen von Zahlen. Dazu kopieren (!) wir Code und erzeugen ganz hässliche Schleifen von Schleifen. Auf diese Weise visualisieren wir so etwas wie eine „aufgeklappte“ Rekursion.

  • Jetzt definieren wir die Funktion Wert(), indem wir die vorangehenden Code-Snippets nacheinander einbauen.

  • In der Zeile BESSER MACHEN merken wir, dass wir eigentlich die Funktion Wert() benötigen – und, Überraschung!, auch schon benutzen können.

Aufwandsabschätzung Erstellung des Notebooks: 2 * 2 Stunden. Es waren verschiedene Überarbeitungen erforderlich, da die Idee mit den mehrfach eingerückten Code-Kopien erst nach der ersten Notebook-Version entstand (und durch diese erste Version auch erst angeregt wurde).

Anspruch an das Notebook: Studierende sollen im Anschluss an eine Erklärung und Demo im Hörsaal auch im Nachgang zuhause oder zur Klausurvorbereitung das Vorgehen selbst nochmal nachvollziehen können.

Mehrwert durch das Ökosystem Jupyter:

  • Duch die Notebook-Idee können wir eine Problemlösung interaktiv in vielen kleinen Mensch-Computer-Interaktionen entwickeln.

  • Wir können sichtbar machen, wie sich die Funktion Wert() über die Zeit entwickelt. Faktisch liegen verschiedene Versionen der selben Funktion im selben Dokument gleichzeitig vor.

  • Kein Medienbruch zwischen Website, Lehrmaterial und Code: Das vorliegende Notebook ist das Programm, das man herunterladen und ausführen kann.

Typisches Merkmal der hier ausgeloteten Sprachlerndidaktik: Wir geben Texte vor,

  • die schon funktionieren (die der Rechner schon vesteht)

  • bei der die Lernenden zunächst einmal Leseverstehen üben

  • und durch Code-Veränderung auch „Sprechen“ selbst experimentell ausloten können.

Es ist die für das Ökosystem Jupyter typische enge Integration von Code und Erklärtext, die es den Studierenden erlaubt, auf dem eigenen Rechner die Entwicklung des Codes durch viele kleine Interaktionen zwischen Mensch und Maschine zu explorieren: spielerisch, hochfrequent, niedrigschwellig.