Skip to content

Rekursion und IterationAktivitäten & Unterrichtsstrategien

Aktive Lernformen wirken hier besonders gut, weil Rekursion und Iteration abstrakte Konzepte sind, die durch Handeln und Sichtbarmachen greifbar werden. Schüler begreifen Rekursion als 'Funktion, die sich selbst anruft', erst richtig, wenn sie den Aufrufbaum selbst zeichnen oder mit Karten nachstellen. Iteration wird begreifbar, wenn Zustandsänderungen schrittweise simuliert werden und Speichereffizienz direkt erlebbar wird.

Klasse 11Informatik in der Oberstufe: Algorithmen, Daten und Gesellschaft4 Aktivitäten25 Min.45 Min.

Lernziele

  1. 1Vergleichen Sie die Laufzeit- und Speicherkomplexität von rekursiven und iterativen Implementierungen für gegebene Probleme (z. B. Fakultät, Fibonacci).
  2. 2Analysieren Sie die Eignung von rekursiven Algorithmen für Probleme mit hierarchischer oder baumartiger Struktur (z. B. Traversierung von Bäumen).
  3. 3Erklären Sie die Funktionsweise des Aufrufstapels (Call Stack) bei der Ausführung von rekursiven Funktionen und wie dieser zu Stack-Overflow-Fehlern führen kann.
  4. 4Entwerfen Sie eine iterative Lösung für ein Problem, das ursprünglich rekursiv formuliert wurde, indem Sie explizite Datenstrukturen (z. B. Stacks) verwenden.

Möchten Sie einen vollständigen Unterrichtsentwurf mit diesen Lernzielen? Mission erstellen

Pair Programming: Fibonacci-Vergleich

Paare coden rekursive und iterative Fibonacci-Funktionen in Python oder Java. Sie messen Laufzeiten mit timeit für n=30 bis 40 und notieren Stapelverbrauch. Abschließend teilen sie Erkenntnisse in der Klasse.

Vorbereitung & Details

Vergleichen Sie die Vor- und Nachteile von rekursiven und iterativen Algorithmen.

Moderationstipp: Fordern Sie die Paare beim Pair Programming auf, ihre Code-Varianten gegenseitig zu erklären, bevor sie die Laufzeiten messen, damit das Konzept vor dem Messen verstanden wird.

Setup: Standard-Klassenzimmer; die Lernenden wenden sich dem Sitznachbarn zu

Materials: Diskussionsimpuls (projiziert oder gedruckt), Optional: Notizblatt für die Partnerarbeit

VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit

Small Groups: Hanoi-Simulation mit Karten

Gruppen bauen Hanoi-Türmchen mit Stapeln von Karten nach und protokollieren Züge rekursiv und iterativ. Sie zeichnen den Rekursionsbaum und diskutieren Minimierung von Schritten. Präsentation der Modelle folgt.

Vorbereitung & Details

Analysieren Sie, welche Probleme sich besonders gut für eine rekursive Lösung eignen.

Moderationstipp: Bitten Sie die Kleingruppen beim Hanoi-Spiel, die Karten nicht nur umzulegen, sondern jeden Schritt mit einer Notiz zu dokumentieren, um die Rekursionsstruktur sichtbar zu machen.

Setup: Standard-Klassenzimmer; die Lernenden wenden sich dem Sitznachbarn zu

Materials: Diskussionsimpuls (projiziert oder gedruckt), Optional: Notizblatt für die Partnerarbeit

VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit

Whole Class: Umwandlungs-Challenge

Die Klasse diskutiert eine rekursive Funktion, z. B. für Binärsuchbaum-Traversierung. Gemeinsam wandeln sie sie iterativ um, indem sie Stapel simulieren. Jeder notiert Vor-/Nachteile.

Vorbereitung & Details

Erklären Sie, wie man eine rekursive Funktion in eine iterative umwandeln kann.

Moderationstipp: Lassen Sie die Umwandlungs-Challenge in Etappen ablaufen: Erst die iterative Variante, dann die rekursive, um den Vergleich direkt zu ermöglichen.

Setup: Standard-Klassenzimmer; die Lernenden wenden sich dem Sitznachbarn zu

Materials: Diskussionsimpuls (projiziert oder gedruckt), Optional: Notizblatt für die Partnerarbeit

VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit

Individual: Code-Analyse

Jeder Schüler erhält rekursiven Code, transformiert ihn iterativ und testet mit Unit-Tests. Ergebnisse werden in einem Portfolio abgelegt.

Vorbereitung & Details

Vergleichen Sie die Vor- und Nachteile von rekursiven und iterativen Algorithmen.

Moderationstipp: Geben Sie den Schülern bei der Code-Analyse konkrete Fragen vor, die die Struktur der Funktionen aufschlüsseln, damit die Analyse zielgerichtet erfolgt.

Setup: Standard-Klassenzimmer; die Lernenden wenden sich dem Sitznachbarn zu

Materials: Diskussionsimpuls (projiziert oder gedruckt), Optional: Notizblatt für die Partnerarbeit

VerstehenAnwendenAnalysierenSelbstwahrnehmungBeziehungsfähigkeit

Dieses Thema unterrichten

Erfahrungsgemäß gelingt die Einführung am besten, wenn Rekursion zunächst als 'Problemzerlegung' und Iteration als 'Schritt-für-Schritt-Lösung' eingeführt wird. Vermeiden Sie es, beide Ansätze gleichzeitig zu erklären, sondern arbeiten Sie nacheinander und lassen Sie die Schüler die Unterschiede selbst entdecken. Die Gefahr besteht, dass Schüler Rekursion als 'magische Selbstaufrufe' wahrnehmen – durch konkrete Beispiele wie die Fibonacci-Folge wird das Konzept greifbar. Vergleichen Sie die Methoden anfangs an einfachen Problemen, bevor Sie zu komplexeren Anwendungen wie Bäumen oder Fraktalen kommen.

Was Sie erwartet

Erfolgreiches Lernen zeigt sich, wenn Schülerinnen und Schüler nicht nur Code schreiben, sondern die Unterschiede zwischen Rekursion und Iteration in eigenen Worten erklären können. Sie erkennen Vor- und Nachteile situationsbezogen und wählen je nach Problemstellung bewusst den passenden Ansatz. Die Fähigkeit, beide Methoden zu vergleichen und zu bewerten, steht im Mittelpunkt.

Diese Aktivitäten sind ein Ausgangspunkt. Die vollständige Mission ist das Erlebnis.

  • Vollständiges Moderationsskript mit Lehrkraft-Dialogen
  • Druckfertige Schülermaterialien, bereit für den Unterricht
  • Differenzierungsstrategien für jeden Lerntyp
Mission erstellen

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungDuring Pair Programming: Fibonacci-Vergleich, achten Sie darauf, dass einige Schüler annehmen, Rekursion sei immer langsamer als Iteration.

Was Sie stattdessen lehren sollten

Nutzen Sie die Messungen aus dem Pair Programming, um gemeinsam mit den Schülern zu analysieren, dass Tail-Rekursion in einigen Sprachen optimiert wird und dass die Effizienz stark vom Kontext abhängt. Fordern Sie die Paare auf, ihre Ergebnisse zu präsentieren und zu diskutieren.

Häufige FehlvorstellungDuring Small Groups: Hanoi-Simulation mit Karten, beobachten Sie, ob Schüler glauben, rekursive Funktionen würden automatisch unendlich laufen.

Was Sie stattdessen lehren sollten

Nutzen Sie die simulierten Aufrufbäume der Gruppen, um zu zeigen, wie der Basisfall 'Alle Scheiben auf dem Zielstab' die Rekursion terminiert. Fragen Sie gezielt nach dem Basisfall und lassen Sie Schüler Beispiele für nicht terminierende Rekursion nennen.

Häufige FehlvorstellungDuring Whole Class: Umwandlungs-Challenge, könnte der Eindruck entstehen, iterative Lösungen seien immer die bessere Wahl.

Was Sie stattdessen lehren sollten

Nutzen Sie die Diskussionen aus der Umwandlungs-Challenge, um zu verdeutlichen, dass Rekursion bei baumartigen Strukturen oder Problemen mit natürlicher Rekursion (wie Verzeichnisdurchsuchungen) eleganter und verständlicher ist. Lassen Sie Schüler Beispiele nennen, bei denen Rekursion trotz Speichernutzung die bessere Wahl ist.

Ideen zur Lernstandserhebung

Kurze Überprüfung

After Pair Programming: Fibonacci-Vergleich, geben Sie den Schülern ein Arbeitsblatt mit zwei Code-Snippets zur Fakultätsberechnung. Bitten Sie sie, das speichereffizientere Snippet zu markieren und die Entscheidung mit einem Satz zu begründen. Sammeln Sie die Blätter zur Überprüfung des Verständnisses.

Diskussionsfrage

During Whole Class: Umwandlungs-Challenge, stellen Sie die Frage: 'Wann würden Sie als Entwickler eine rekursive Lösung bevorzugen, auch wenn sie mehr Speicher benötigt?' Leiten Sie eine kurze Diskussion, in der Schüler Vor- und Nachteile abwägen und Beispiele nennen, die sie aus dem Unterricht kennen.

Lernstandskontrolle

After Individual: Code-Analyse, geben Sie jeder Schülerin und jedem Schüler eine Karte mit einer Problembeschreibung (z. B. 'Durchsuche eine verschachtelte Ordnerstruktur nach einer bestimmten Datei'). Sie sollen kurz begründen, ob eine rekursive oder iterative Lösung besser geeignet ist und warum.

Erweiterungen & Unterstützung

  • Fordern Sie Schüler auf, eine rekursive und iterative Lösung für die Türme von Hanoi mit 5 Scheiben zu schreiben und die Laufzeiten zu vergleichen.
  • Bieten Sie Schülern, die kämpfen, eine vorgefertigte iterative Struktur an, die sie mit rekursiven Aufrufen füllen müssen.
  • Vertiefen Sie das Thema, indem Sie Schüler eine rekursive Lösung für die Berechnung des größten gemeinsamen Teilers (ggT) entwickeln lassen und mit dem euklidischen Algorithmus vergleichen.

Schlüsselvokabular

RekursionEin Lösungsansatz, bei dem eine Funktion sich selbst aufruft, um kleinere Teilprobleme zu lösen, bis ein Basisfall erreicht ist.
IterationEin Lösungsansatz, der eine Folge von Operationen wiederholt ausführt, typischerweise mithilfe von Schleifen (for, while), bis eine Abbruchbedingung erfüllt ist.
Aufrufstapel (Call Stack)Eine Datenstruktur, die Informationen über aktive Unterprogrammaufrufe speichert. Bei Rekursion speichert sie die Zustände der einzelnen Funktionsaufrufe.
BasisfallDie Bedingung in einer rekursiven Funktion, die den rekursiven Aufruf beendet und eine direkte Rückgabe ermöglicht, um eine Endlosschleife zu verhindern.
Stapelüberlauf (Stack Overflow)Ein Fehler, der auftritt, wenn der Aufrufstapel zu groß wird, weil zu viele rekursive Aufrufe ohne Erreichen des Basisfalls erfolgen.

Bereit, Rekursion und Iteration zu unterrichten?

Erstellen Sie eine vollständige Mission mit allem, was Sie brauchen

Mission erstellen