Skip to content

Modularisierung mit FunktionenAktivitäten & Unterrichtsstrategien

Aktive Methoden zeigen Schülern direkt, wie Modularisierung mit Funktionen ihren Alltag als Programmierer vereinfacht. Indem sie Teilaufgaben isolieren und testen, erleben sie selbst, wie klar strukturierte Funktionen Fehlerquellen eingrenzen und Teamarbeit erleichtern. Ohne Praxis bleibt das Konzept oft abstrakt, obwohl es die Grundlage für professionelle Softwareentwicklung bildet.

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

Lernziele

  1. 1Analysieren Sie den Einfluss von Funktionsschnittstellen auf die Wartbarkeit von Code anhand von Beispielprogrammen.
  2. 2Erklären Sie die Prinzipien der Kapselung und des Single Responsibility Principle im Kontext der Funktionsmodularisierung.
  3. 3Erstellen Sie eine Funktion, die eine klar definierte Teilaufgabe erfüllt und über eine präzise Schnittstelle verfügt.
  4. 4Bewerten Sie die Effizienz von Code-Refactoring-Strategien zur Verbesserung der Modularisierung.
  5. 5Vergleichen Sie die Fehlersuche in einem monolithischen Codeblock mit der in einem modularisierten Programm.

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

30 Min.·Partnerarbeit

Pair Programming: Funktion erstellen

Paare erhalten eine Aufgabe wie 'Berechne Flächeninhalt'. Sie definieren Parameter, implementieren die Funktion und testen sie mit verschiedenen Eingaben. Abschließend tauschen sie Funktionen und integrieren sie in ein Hauptprogramm.

Vorbereitung & Details

Wie hilft die Kapselung von Code dabei, Fehler in großen Systemen zu finden?

Moderationstipp: Während des Pair Programming sollte ein Partner zunächst eine Teilaufgabe formulieren und der andere die Funktion umsetzen, bevor die Rollen getauscht werden.

Setup: Präsentationsbereich im vorderen Teil des Raumes oder mehrere Lernstationen

Materials: Themen-Zuweisungskarten, Vorlage zur Unterrichtsplanung, Feedbackbogen für Mitschüler, Materialien für visuelle Hilfsmittel

VerstehenAnwendenAnalysierenErschaffenSelbststeuerungBeziehungsfähigkeit
45 Min.·Kleingruppen

Small Groups: Code refactorisieren

Gruppen analysieren einen unstrukturierten Codeblock. Sie identifizieren Teilaufgaben, lagern diese in Funktionen aus und dokumentieren Schnittstellen. Die Gruppen präsentieren ihre modularisierten Versionen.

Vorbereitung & Details

Was macht eine gute Schnittstelle zwischen zwei Programmteilen aus?

Moderationstipp: Beim refactorisieren in Kleingruppen müssen Sie darauf achten, dass die Schüler nicht nur Code umschreiben, sondern auch die Funktionsnamen und Parameter gezielt anpassen, um die Schnittstelle zu verbessern.

Setup: Präsentationsbereich im vorderen Teil des Raumes oder mehrere Lernstationen

Materials: Themen-Zuweisungskarten, Vorlage zur Unterrichtsplanung, Feedbackbogen für Mitschüler, Materialien für visuelle Hilfsmittel

VerstehenAnwendenAnalysierenErschaffenSelbststeuerungBeziehungsfähigkeit
20 Min.·Ganze Klasse

Whole Class: Schnittstellen-Review

Die Klasse diskutiert in Plenum Beispiele guter und schlechter Schnittstellen. Jeder Schüler schlägt Verbesserungen vor, die Klasse stimmt ab und passt Code live an.

Vorbereitung & Details

Begründen Sie, warum Funktionen idealerweise nur eine einzige Aufgabe erfüllen sollten.

Moderationstipp: Beim Schnittstellen-Review in der Klasse können Sie gezielt Funktionen mit unklaren Parametern oder Rückgabewerten hervorheben und die Gruppe gemeinsam verbessern lassen.

Setup: Präsentationsbereich im vorderen Teil des Raumes oder mehrere Lernstationen

Materials: Themen-Zuweisungskarten, Vorlage zur Unterrichtsplanung, Feedbackbogen für Mitschüler, Materialien für visuelle Hilfsmittel

VerstehenAnwendenAnalysierenErschaffenSelbststeuerungBeziehungsfähigkeit
25 Min.·Einzelarbeit

Individual: Funktionstests

Jeder Schüler schreibt Unit-Tests für vorgegebene Funktionen. Sie führen Tests aus, notieren Fehler und schlagen Korrekturen vor.

Vorbereitung & Details

Wie hilft die Kapselung von Code dabei, Fehler in großen Systemen zu finden?

Setup: Präsentationsbereich im vorderen Teil des Raumes oder mehrere Lernstationen

Materials: Themen-Zuweisungskarten, Vorlage zur Unterrichtsplanung, Feedbackbogen für Mitschüler, Materialien für visuelle Hilfsmittel

VerstehenAnwendenAnalysierenErschaffenSelbststeuerungBeziehungsfähigkeit

Dieses Thema unterrichten

Erfahrene Lehrkräfte beginnen mit handlungsorientierten Beispielen, die direkt an die Erfahrungswelt der Schüler anknüpfen. Vermeiden Sie abstrakte Erklärungen zur Theorie – stattdessen lassen Sie die Schüler selbst entdecken, warum isolierte Funktionen Vorteile bieten. Wichtig ist es, früh auf klare Namensgebung und Parameterübergabe zu achten, da diese später die Wartbarkeit beeinflussen. Forschung zeigt, dass Schüler modularen Code schneller verstehen, wenn sie ihn selbst in kleinen Einheiten entwickeln und testen.

Was Sie erwartet

Am Ende der Einheit können Schüler selbstständig Funktionen mit klaren Schnittstellen erstellen, kleine Programme durch refactoring modularisieren und Schnittstellen gezielt nach dem Single-Responsibility-Prinzip bewerten. Sie begründen ihre Entscheidungen mit konkreten Vorteilen für Wartbarkeit und Fehlersuche.

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 FehlvorstellungWährend der Pair-Programming-Aktivität beobachten Sie, dass Schüler sagen: 'Funktionen sind nur für sehr lange Programme nötig.'

Was Sie stattdessen lehren sollten

Nutzen Sie die Gelegenheit, gemeinsam ein kurzes, aber unübersichtliches Code-Snippet zu modularisieren und demonstrieren Sie, wie die Fehlersuche in den getrennten Funktionen plötzlich trivial wird. Lassen Sie die Schüler den Nutzen selbst erkennen, indem sie beide Versionen vergleichen.

Häufige FehlvorstellungWährend der Code-Refactoring-Aktivität in Kleingruppen hören Sie: 'Funktionen dürfen mehrere Aufgaben übernehmen, um Code kurz zu halten.'

Was Sie stattdessen lehren sollten

Fordern Sie die Gruppen auf, die Funktion zu analysieren und in logische Teilschritte zu zerlegen. Zeigen Sie ihnen, wie eine Funktion mit mehreren Aufgaben schwerer zu testen ist und wie isolierte Funktionen Zusammenarbeit im Team erleichtern.

Häufige FehlvorstellungWährend der Whole-Class-Diskussion zum Thema Performance äußern Schüler: 'Mehr Funktionen machen das Programm langsamer.'

Was Sie stattdessen lehren sollten

Lassen Sie die Schüler während der Schnittstellen-Review gezielt nach Optimierungsmöglichkeiten in ihrem Code suchen und diskutieren Sie, warum moderne Compiler Funktionsaufrufe effizient handhaben. Zeigen Sie anhand von Beispielen, dass modularer Code oft sogar schneller entwickelt und gewartet wird.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Nach der Pair-Programming-Aktivität geben Sie den Schülern ein Code-Snippet, das eine Funktion mit mehreren Verantwortlichkeiten enthält. Sie sollen notieren: 1. Welche Teilaufgaben die Funktion erfüllt, 2. Wie sie in mindestens zwei Funktionen aufgeteilt werden kann, 3. Einen konkreten Vorteil dieser Aufteilung.

Gegenseitige Bewertung

Nach der Small-Groups-Refactoring-Aktivität tauschen die Gruppen ihre Funktionen aus. Jede Gruppe bewertet die fremde Funktion nach zwei Kriterien: Ist der Funktionsname präzise? Erfüllt sie tatsächlich nur eine Aufgabe? Die Gruppen geben sich gegenseitiges Feedback und begründen ihre Bewertung.

Kurze Überprüfung

Während der Whole-Class-Schnittstellen-Review stellen Sie die Frage: 'Warum ist es sinnvoll, eine Funktion zu schreiben, die nur die Fläche eines Kreises berechnet, anstatt diese Berechnung direkt an mehreren Stellen im Programm einzufügen?' Sammeln Sie Antworten, um zu prüfen, ob die Schüler das Prinzip der Wiederverwendbarkeit verstanden haben.

Erweiterungen & Unterstützung

  • Fordern Sie schnelle Schüler auf, eine Funktion zu schreiben, die mit einem Parameter eine komplexe Berechnung durchführt und diesen dann in mehreren Unterfunktionen aufteilt.
  • Unterstützen Sie Schüler mit Schwierigkeiten, indem Sie ihnen ein Code-Snippet mit einer klaren Teilaufgabe geben und gemeinsam mit ihnen eine passende Funktionssignatur erarbeiten.
  • Vertiefen Sie mit interessierten Schülern die Diskussion über Performance: Lassen Sie sie recherchieren, wie Compiler Funktionsaufrufe optimieren und warum Modularisierung trotzdem die Entwicklungszeit verkürzt.

Schlüsselvokabular

FunktionEin benannter Codeblock, der eine spezifische Aufgabe ausführt und einmalig definiert und mehrfach aufgerufen werden kann.
Schnittstelle (Interface)Die Gesamtheit der Parameter und Rückgabewerte einer Funktion, die bestimmt, wie sie von außen genutzt werden kann.
KapselungDas Bündeln von Daten und den zugehörigen Operationen innerhalb einer Einheit (hier: Funktion), sodass die interne Implementierung verborgen bleibt.
Single Responsibility Principle (SRP)Das Prinzip, dass eine Funktion idealerweise nur einen einzigen Grund zur Änderung haben sollte, also nur eine Aufgabe erfüllt.
RefactoringDer Prozess der Umstrukturierung von bestehendem Computercode, ohne dessen externes Verhalten zu ändern, um die Lesbarkeit und Wartbarkeit zu verbessern.

Bereit, Modularisierung mit Funktionen zu unterrichten?

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

Mission erstellen