Skip to content
Algorithmen und Komplexität · 2. Halbjahr

Rekursion

Die Schülerinnen und Schüler lösen Probleme durch den Selbstaufruf von Funktionen und verstehen die Funktionsweise von Rekursion.

Brauchen Sie einen Unterrichtsplan für Digitale Welten Gestalten: Informatik in der Praxis?

Mission erstellen

Leitfragen

  1. Wie zerlegt man ein Problem in identische, kleinere Teilprobleme?
  2. Was ist die Gefahr eines Stack Overflow?
  3. In welchen Fällen ist Rekursion iterativen Lösungen überlegen?

KMK Bildungsstandards

KMK: STD.01KMK: STD.03
Klasse: Klasse 10
Fach: Digitale Welten Gestalten: Informatik in der Praxis
Einheit: Algorithmen und Komplexität
Zeitraum: 2. Halbjahr

Über dieses Thema

Rekursion ermöglicht es Schülerinnen und Schülern, komplexe Probleme durch den Selbstaufruf von Funktionen zu lösen. Sie lernen, Aufgaben wie die Berechnung der Fakultät oder das Durchlaufen von Bäumen in identische, kleinere Teilprobleme zu zerlegen. Der Basisfall stellt sicher, dass der Prozess endet, während rekursive Aufrufe die Lösung schrittweise aufbauen. Dies verbindet direkt mit den KMK-Standards STD.01 und STD.03 zu Algorithmen und Komplexität.

Im Kontext der Einheit 'Algorithmen und Komplexität' verstehen die Lernenden die Ablaufsteuerung: Jeder Aufruf erzeugt einen neuen Stackframe, was zu Stack Overflow führen kann, wenn die Rekursionstiefe zu groß wird. Sie analysieren, wann Rekursion iterativen Lösungen überlegen ist, etwa bei natürlichen rekursiven Strukturen wie Fraktalen oder Suchbäumen. Praktische Programmieraufgaben in Python oder einer Block-basierend Sprache festigen dieses Wissen.

Aktives Lernen eignet sich hervorragend für Rekursion, da abstrakte Konzepte durch Visualisierungen und Pair Programming konkret werden. Schülerinnen und Schüler modellieren Aufrufstapel mit Karten oder zeichnen Rekursionbäume, was Missverständnisse aufdeckt und tiefes Verständnis schafft. Solche Methoden machen den Selbstaufruf greifbar und motivieren zu experimentellem Programmieren.

Lernziele

  • Analysieren Sie die Funktionsweise eines rekursiven Algorithmus anhand eines gegebenen Beispiels, indem Sie den Aufrufstapel Schritt für Schritt nachvollziehen.
  • Entwerfen Sie eine rekursive Funktion zur Lösung eines einfachen Problems wie der Berechnung der Fakultät oder der Fibonacci-Folge.
  • Vergleichen Sie eine gegebene rekursive Lösung mit einer äquivalenten iterativen Lösung hinsichtlich ihrer Lesbarkeit und potenziellen Effizienz.
  • Bewerten Sie die Risiken eines Stack Overflows bei der Implementierung rekursiver Funktionen und schlagen Sie Strategien zur Vermeidung vor.
  • Erklären Sie das Konzept des Basisfalls und seine Notwendigkeit für die Terminierung rekursiver Prozesse.

Bevor es losgeht

Grundlagen der Programmierung: Funktionen

Warum: Schülerinnen und Schüler müssen verstehen, wie Funktionen definiert, aufgerufen und mit Parametern übergeben werden, um das Konzept des Selbstaufrufs zu begreifen.

Kontrollstrukturen: Schleifen (Iteration)

Warum: Ein Vergleich zwischen Rekursion und Iteration ist erst sinnvoll möglich, wenn die Funktionsweise von Schleifen bekannt ist.

Schlüsselvokabular

RekursionEin Verfahren, bei dem eine Funktion sich selbst aufruft, um ein Problem zu lösen, indem sie es in kleinere, identische Teilprobleme zerlegt.
BasisfallDie Bedingung innerhalb einer rekursiven Funktion, die den rekursiven Aufruf beendet und somit einen Stack Overflow verhindert.
Rekursiver AufrufDer Aufruf derselben Funktion innerhalb ihres eigenen Körpers, der typischerweise mit modifizierten Parametern erfolgt, um dem Basisfall näher zu kommen.
Aufrufstapel (Call Stack)Eine Datenstruktur, die die aktiven Funktionsaufrufe verwaltet; jeder rekursive Aufruf fügt einen neuen Eintrag hinzu, bis der Basisfall erreicht ist.
Stack OverflowEin Fehlerzustand, der auftritt, wenn der Aufrufstapel zu tief wird, weil zu viele rekursive Aufrufe ohne Erreichen des Basisfalls getätigt wurden.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

In der Computergrafik werden rekursive Algorithmen zur Erzeugung komplexer Fraktale wie der Mandelbrot-Menge oder zur Darstellung von Bäumen und Landschaften in Spielen und Simulationen verwendet. Entwickler bei Pixar nutzen solche Techniken, um realistische visuelle Effekte zu erzielen.

In der Informatik werden rekursive Ansätze häufig für das Durchlaufen von Baumstrukturen eingesetzt, beispielsweise in Datenbanken oder Dateisystemen. Systemadministratoren oder Softwareentwickler, die an der Organisation großer Datenmengen arbeiten, profitieren von diesem Verständnis, um effiziente Such- und Sortieralgorithmen zu entwickeln.

Bei der Analyse von Grammatiken und der Verarbeitung natürlicher Sprache können rekursive Muster helfen, verschachtelte Satzstrukturen zu erkennen. Linguisten und Entwickler von Sprachassistenten wie Siri oder Alexa verwenden diese Prinzipien, um die Struktur von Sätzen zu verstehen und korrekt zu interpretieren.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungRekursion führt immer zu unendlichen Schleifen.

Was Sie stattdessen lehren sollten

Der Basisfall verhindert das: Er stoppt Aufrufe bei kleinen Problemen. Pair Programming hilft, wo Schüler den Basisfall vergessen, da sie gegenseitig Code prüfen und Ausführungen debuggen.

Häufige FehlvorstellungRekursion ist immer langsamer als Iteration.

Was Sie stattdessen lehren sollten

Bei Tail-Rekursion optimiert der Compiler zu Schleifen. Gruppenvisualisierungen zeigen, dass Rekursion bei Baumstrukturen natürlicher ist, und fördern Diskussionen über Komplexität.

Häufige FehlvorstellungStack Overflow tritt nur bei sehr großen Eingaben auf.

Was Sie stattdessen lehren sollten

Es hängt von der Rekursionstiefe ab, nicht nur Größe. Stapel-Simulationen im Plenum machen dies spürbar und helfen, Grenzen früh zu erkennen.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Geben Sie jeder Schülerin und jedem Schüler eine kleine Karte. Bitten Sie sie, eine einfache rekursive Funktion (z.B. Fakultät) zu schreiben und den ersten rekursiven Aufruf sowie den Basisfall zu identifizieren. Notieren Sie auf der Rückseite, was passiert, wenn der Basisfall fehlt.

Kurze Überprüfung

Zeigen Sie eine kurze rekursive Funktion auf dem Beamer. Stellen Sie folgende Fragen: 'Welches Problem löst diese Funktion?', 'Was ist der Basisfall?', 'Was wäre der nächste rekursive Aufruf, wenn die Eingabe 5 wäre?'

Diskussionsfrage

Stellen Sie die Frage: 'In welchen Situationen wäre eine rekursive Lösung klarer und eleganter als eine iterative, und wann wäre das Gegenteil der Fall?' Lassen Sie die Schülerinnen und Schüler Beispiele aus ihren Programmierübungen oder bekannten Algorithmen anführen und begründen.

Bereit, dieses Thema zu unterrichten?

Erstellen Sie in Sekundenschnelle eine vollständige, unterrichtsfertige Mission für aktives Lernen.

Eigene Mission generieren

Häufig gestellte Fragen

Was ist Rekursion in der Informatik?
Rekursion ist eine Methode, bei der eine Funktion sich selbst aufruft, um ein Problem in kleinere identische Unterprobleme zu zerlegen. Ein Basisfall beendet den Prozess. Beispiele sind Fakultät (n! = n * (n-1)!) oder Fibonacci. Sie eignet sich für hierarchische Daten wie Bäume und trainiert strukturiertes Denken gemäß KMK-Standards.
Wie vermeidet man einen Stack Overflow bei Rekursion?
Definieren Sie klare Basisfälle und minimieren Sie die Rekursionstiefe, z. B. durch Tail-Rekursion oder Memoization. Testen Sie mit wachsenden Eingaben. Compiler-Optimierungen helfen bei tailrekursiven Funktionen. Praktische Simulationen lehren Schüler, Grenzen zu erkennen und iterative Alternativen zu entwickeln.
Wann ist Rekursion iterativen Lösungen überlegen?
Rekursion glänzt bei natürlichen rekursiven Strukturen wie Traversierungen von Bäumen, Fraktalen oder Divide-and-Conquer-Algorithmen wie QuickSort. Der Code wird eleganter und lesbarer. Iteration ist besser bei linearer Verarbeitung. Schüler lernen durch Vergleichsaufgaben, die richtige Wahl zu treffen.
Wie fördert aktives Lernen das Verständnis von Rekursion?
Aktive Methoden wie Pair Programming, Stapel-Visualisierungen mit Karten und rekursive Grafik-Experimente machen den unsichtbaren Aufrufprozess sichtbar. Schülerinnen und Schüler entdecken Basisfälle selbst, debuggen Fehler kollaborativ und vergleichen Rekursion mit Iteration. Das schafft tiefes, langlebiges Verständnis und reduziert Abstraktionsängste in 50-80 Wörtern.