Skip to content
Grundlagen der Programmierung und Algorithmik · 1. Halbjahr

Modularisierung mit Funktionen

Strukturierung von Code durch Auslagerung von Teilaufgaben in wiederverwendbare Funktionen.

Brauchen Sie einen Unterrichtsplan für Informatik in der Oberstufe: Algorithmen, Daten und Gesellschaft?

Mission erstellen

Leitfragen

  1. Wie hilft die Kapselung von Code dabei, Fehler in großen Systemen zu finden?
  2. Was macht eine gute Schnittstelle zwischen zwei Programmteilen aus?
  3. Begründen Sie, warum Funktionen idealerweise nur eine einzige Aufgabe erfüllen sollten.

KMK Bildungsstandards

KMK: Sekundarstufe II - Strukturieren und ModellierenKMK: Sekundarstufe II - Kommunizieren und Kooperieren
Klasse: Klasse 11
Fach: Informatik in der Oberstufe: Algorithmen, Daten und Gesellschaft
Einheit: Grundlagen der Programmierung und Algorithmik
Zeitraum: 1. Halbjahr

Über dieses Thema

Modularisierung mit Funktionen strukturiert Programme, indem Teilaufgaben in wiederverwendbare Einheiten ausgelagert werden. In der Klasse 11 lernen Schüler, wie Kapselung die Fehlersuche in großen Systemen vereinfacht, da isolierte Funktionen getestet werden können. Sie definieren gute Schnittstellen durch klare Parameter und Rückgabewerte und begründen, warum Funktionen idealerweise nur eine Aufgabe erfüllen: Das folgt dem Single-Responsibility-Prinzip und macht Code wartbarer.

Dieses Thema knüpft an KMK-Standards an, insbesondere Strukturieren und Modellieren sowie Kommunizieren und Kooperieren. Schüler analysieren existierenden Code, refactorisieren ihn und diskutieren Vorteile in Gruppen. So entsteht Verständnis für algorithmische Komplexität und Teamarbeit in der Softwareentwicklung.

Aktives Lernen eignet sich hervorragend, weil Schüler durch Pair Programming und iterative Refactoring-Aufgaben die Vorteile der Modularisierung hautnah erleben. Sie testen Funktionen schrittweise, entdecken Fehler selbst und passen Schnittstellen an, was abstrakte Konzepte konkret und nachhaltig verankert.

Lernziele

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

Bevor es losgeht

Grundlagen der Programmierung: Variablen und Datentypen

Warum: Schüler müssen verstehen, wie Daten gespeichert und manipuliert werden, um sie als Parameter an Funktionen zu übergeben und Rückgabewerte zu verarbeiten.

Kontrollstrukturen: Sequenz, Selektion, Iteration

Warum: Die Fähigkeit, Codeblöcke zu verstehen und zu strukturieren, ist grundlegend für das Verständnis, wie Funktionen als eigenständige Blöcke funktionieren.

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.

Ideen für aktives Lernen

Alle Aktivitäten ansehen

Bezüge zur Lebenswelt

Softwareentwickler in Unternehmen wie SAP oder Siemens nutzen Modularisierung täglich, um komplexe Betriebssysteme oder Anwendungssoftware zu entwickeln. Sie definieren klare APIs (Application Programming Interfaces) zwischen verschiedenen Modulen, um die Zusammenarbeit im Team zu erleichtern und die Fehleranfälligkeit zu reduzieren.

Bei der Entwicklung von Videospielen, beispielsweise durch Studios wie Ubisoft oder CD Projekt Red, werden Spielmechaniken wie Charakterbewegung, Inventarsystem oder KI-Verhalten oft in separate Funktionen oder Klassen ausgelagert. Dies ermöglicht es einzelnen Entwicklern, an spezifischen Aspekten zu arbeiten, ohne den gesamten Code verstehen zu müssen.

Vorsicht vor diesen Fehlvorstellungen

Häufige FehlvorstellungFunktionen sind nur für sehr lange Programme nötig.

Was Sie stattdessen lehren sollten

Tatsächlich verbessern Funktionen jeden Code durch Wiederverwendbarkeit und Lesbarkeit. Pair Programming hilft, da Schüler kleine Beispiele modularisieren und sofort den Nutzen bei der Fehlersuche sehen.

Häufige FehlvorstellungFunktionen dürfen mehrere Aufgaben übernehmen, um Code kurz zu halten.

Was Sie stattdessen lehren sollten

Das verletzt das Single-Responsibility-Prinzip und erschwert Wartung. Gruppenrefactoring-Aufgaben zeigen, wie fokussierte Funktionen Fehler isolieren und Zusammenarbeit erleichtern.

Häufige FehlvorstellungMehr Funktionen machen das Programm langsamer.

Was Sie stattdessen lehren sollten

Moderne Compiler optimieren Aufrufe effizient. Testgetriebene Aktivitäten demonstrieren, dass modularer Code schneller debuggt wird, ohne Performanceeinbußen.

Ideen zur Lernstandserhebung

Lernstandskontrolle

Geben Sie den Schülern ein kleines Code-Snippet, das eine einzelne, aber etwas zu komplexe Funktion enthält. Bitten Sie sie, auf einem Zettel zu notieren: 1. Welche zwei Hauptaufgaben erfüllt diese Funktion? 2. Wie könnte man sie in zwei kleinere, fokussiertere Funktionen aufteilen? 3. Nennen Sie einen Vorteil dieser Aufteilung.

Gegenseitige Bewertung

Teilen Sie die Klasse in Kleingruppen auf. Jede Gruppe erhält eine Aufgabe, die sie mit einer Funktion lösen soll. Nach der Implementierung tauschen die Gruppen ihre Funktionen aus. Die empfangende Gruppe bewertet die Funktion des Partners anhand von zwei Kriterien: Ist die Funktion gut benannt? Erfüllt sie nur eine einzige Aufgabe? Die Gruppen geben sich gegenseitiges Feedback.

Kurze Überprüfung

Stellen Sie während des Unterrichts 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 durchzuführen?' Sammeln Sie Antworten, um das Verständnis für Wiederverwendbarkeit zu prüfen.

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

Wie hilft Kapselung bei der Fehlersuche in großen Programmen?
Kapselung isoliert Code in Funktionen, sodass Fehler auf kleine Bereiche eingegrenzt werden. Schüler testen Funktionen unabhängig mit Unit-Tests. Das reduziert Suchzeit erheblich und fördert systematische Programmierung, wie in der Oberstufe gefordert.
Was zeichnet eine gute Schnittstelle zwischen Funktionen aus?
Gute Schnittstellen sind klar, mit präzisen Parametern, Rückgabewerten und Dokumentation. Sie verbergen Implementierungsdetails und erlauben einfache Änderungen. Diskussionen in der Klasse helfen, solche Schnittstellen zu entwerfen und zu bewerten.
Warum sollten Funktionen nur eine Aufgabe erfüllen?
Das Single-Responsibility-Prinzip macht Funktionen testbar, wiederverwendbar und wartbar. Mehrere Aufgaben pro Funktion erhöhen Komplexität und Fehlerquellen. Beispiele im Unterricht verdeutlichen, wie fokussierte Funktionen große Systeme stabilisieren.
Wie fördert aktives Lernen das Verständnis von Modularisierung?
Aktives Lernen wie Pair Programming oder Refactoring in Gruppen lässt Schüler Vorteile direkt erleben: Sie zerlegen Code, testen Funktionen und passen Schnittstellen an. Solche hands-on-Aktivitäten bauen Selbstvertrauen auf, verbessern Kooperation und verankern Konzepte nachhaltig, passend zu KMK-Standards.