Funktionen: Code organisieren
Die Schülerinnen und Schüler definieren und rufen Funktionen auf, um Code zu modularisieren und wiederverwendbar zu machen.
Über dieses Thema
Funktionen sind zentrale Elemente in der Programmierung, mit denen Code in wiederverwendbare Blöcke organisiert wird. Schülerinnen und Schüler in Klasse 8 lernen, Funktionen zu definieren, sie mit Parametern auszustatten und gezielt aufzurufen. Dadurch vermeiden sie Code-Wiederholungen, verbessern die Lesbarkeit und machen Programme wartbarer. Der Unterschied zwischen Definition, die den Codeblock festlegt, und Aufruf, der die Ausführung startet, wird klar herausgearbeitet. Parameter sorgen für Flexibilität, da sie es erlauben, Funktionen mit unterschiedlichen Eingaben zu nutzen.
Im Rahmen der KMK-Standards 'Strukturieren und Modellieren' sowie 'Implementieren' aus der Einheit 'Algorithmen und Programmierung' beantworten Schülerinnen und Schüler Schlüsselfragen: Sie begründen Vorteile von Funktionen für die Programmstruktur, erklären Definition versus Aufruf und analysieren, wie Parameter Wiederverwendbarkeit steigern. Dies schult systematisches Denken und Problemlösung in der Informatik.
Aktives Lernen ist hier besonders effektiv, weil Schüler durch Pair Programming und iterative Übungen abstrakte Konzepte direkt in Code umsetzen. Sie testen Aufrufe live, refactoren Programme gemeinsam und erhalten sofort Feedback, was Motivation steigert und tiefes Verständnis fördert.
Leitfragen
- Begründen Sie die Vorteile der Verwendung von Funktionen für die Strukturierung von Programmen.
- Erklären Sie den Unterschied zwischen der Definition und dem Aufruf einer Funktion.
- Analysieren Sie, wie Parameter die Flexibilität und Wiederverwendbarkeit von Funktionen erhöhen.
Lernziele
- Erklären Sie die Vorteile der Modularisierung von Code durch Funktionen zur Verbesserung der Lesbarkeit und Wartbarkeit von Programmen.
- Definieren und unterscheiden Sie die Syntax für die Deklaration und den Aufruf einer Funktion in einer Programmiersprache.
- Analysieren Sie, wie Parameter die Flexibilität von Funktionen erhöhen, indem Sie Beispiele für Funktionen mit und ohne Parameter vergleichen.
- Erstellen Sie eine einfache Funktion, die eine spezifische Aufgabe in einem größeren Programm ausführt, und rufen Sie sie korrekt auf.
Bevor es losgeht
Warum: Schüler müssen verstehen, wie Variablen Werte speichern und welche grundlegenden Datentypen es gibt, um Parameter und Rückgabewerte von Funktionen zu verstehen.
Warum: Das Verständnis von sequenzieller Ausführung und bedingten Anweisungen ist notwendig, um den Ablauf innerhalb einer Funktion und die Logik von Programmabläufen nachvollziehen zu können.
Schlüsselvokabular
| Funktion | Ein benannter Block von Code, der eine bestimmte Aufgabe ausführt und bei Bedarf mehrmals aufgerufen werden kann. |
| Funktionsdefinition | Der Teil des Codes, der den Namen, die Parameter und die Anweisungen einer Funktion festlegt. |
| Funktionsaufruf | Die Anweisung, die eine definierte Funktion ausführt und ihren Codeblock zur Laufzeit ausführt. |
| Parameter | Variablen, die in der Funktionsdefinition angegeben werden, um Werte entgegenzunehmen, die beim Aufruf der Funktion übergeben werden. |
| Argument | Der tatsächliche Wert, der beim Aufruf einer Funktion an einen Parameter übergeben wird. |
Vorsicht vor diesen Fehlvorstellungen
Häufige FehlvorstellungFunktionen laufen automatisch nach der Definition.
Was Sie stattdessen lehren sollten
Funktionen müssen explizit aufgerufen werden, um ausgeführt zu werden. Pair Programming hilft, da Schüler Definition und Aufruf getrennt testen und den Fehler sofort sehen. Diskussionen klären den Ablauf.
Häufige FehlvorstellungParameter sind wie globale Variablen.
Was Sie stattdessen lehren sollten
Parameter sind lokale Eingaben pro Aufruf und ändern sich flexibel. Gruppenübungen mit variierenden Werten zeigen den Unterschied. Schüler experimentieren und vergleichen Ausgaben, um Missverständnisse aufzulösen.
Häufige FehlvorstellungFunktionen können nicht ineinander aufgerufen werden.
Was Sie stattdessen lehren sollten
Verschachtelte Aufrufe sind möglich und nützlich. Iterative Refactoring in Gruppen demonstriert dies praxisnah und baut Vertrauen auf.
Ideen für aktives Lernen
Alle Aktivitäten ansehenPair Programming: Addierfunktion bauen
Paare definieren eine Funktion, die zwei Zahlen addiert, und rufen sie mit verschiedenen Werten auf. Sie erweitern sie um Parameter und testen mit Eingaben vom Benutzer. Abschließend vergleichen sie den modularisierten Code mit einer wiederholten Version.
Small Groups: Spiel modularisieren
Gruppen zerlegen ein einfaches Ratespiel in Funktionen wie 'Zahl generieren' und 'Eingabe prüfen'. Sie definieren, parametrieren und rufen diese auf. Gemeinsam debuggen sie und präsentieren die Vorteile.
Whole Class: Parameter-Challenge
Die Klasse programmiert gemeinsam eine Funktion für Formeln, z. B. Flächenberechnung, und ruft sie mit wechselnden Parametern auf. Jeder Schüler schlägt eine Erweiterung vor, die Klasse stimmt ab und implementiert.
Individual: Refactoring-Aufgabe
Jeder Schüler erhält redundanten Code und wandelt ihn in Funktionen um. Sie testen mit eigenen Testfällen und notieren Vorteile in einem Logbuch.
Bezüge zur Lebenswelt
- Softwareentwickler bei Unternehmen wie Google oder Microsoft verwenden Funktionen täglich, um komplexe Anwendungen wie Betriebssysteme oder Webbrowser zu strukturieren. Beispielsweise ist die Funktion zum Anzeigen eines Buttons auf dem Bildschirm in einem separaten Block organisiert, der dann an verschiedenen Stellen im Code aufgerufen wird.
- Spieleentwickler nutzen Funktionen, um wiederkehrende Aktionen in Videospielen zu implementieren. Eine Funktion 'Schadennehmen' könnte beispielsweise definiert werden, die dann für jeden Charakter im Spiel aufgerufen wird, wenn dieser getroffen wird, wobei die übergebenen Parameter die Schadensmenge und die Richtung bestimmen.
Ideen zur Lernstandserhebung
Geben Sie jedem Schüler ein Blatt mit zwei leeren Codeblöcken. Der erste Block ist für eine Funktionsdefinition (z.B. 'def gruss(name):'). Der zweite Block ist für einen Funktionsaufruf. Bitten Sie die Schüler, eine Funktion zu schreiben, die eine einfache Begrüßung ausgibt, und diese dann aufzurufen. Überprüfen Sie, ob die Definition korrekt ist und der Aufruf den richtigen Parameter übergibt.
Zeigen Sie ein kurzes Programmfragment, das eine Funktion definiert und aufruft. Stellen Sie folgende Fragen: 'Was ist der Unterschied zwischen Zeile X (Definition) und Zeile Y (Aufruf)?' und 'Welchen Wert wird die Variable 'ergebnis' nach Ausführung dieses Codes haben, wenn der Parameter 'zahl' den Wert 5 hat?'
Teilen Sie die Klasse in Kleingruppen auf. Geben Sie jeder Gruppe ein kleines Programm, das noch keine Funktionen verwendet und Code wiederholt. Bitten Sie die Gruppen, das Programm zu analysieren und zu diskutieren, wie sie durch die Einführung von Funktionen den Code vereinfachen und wiederverwendbar machen könnten. Lassen Sie jede Gruppe ihre Lösungsidee kurz vorstellen.
Häufig gestellte Fragen
Was ist der Unterschied zwischen Funktionsdefinition und -aufruf?
Warum erhöhen Parameter die Wiederverwendbarkeit von Funktionen?
Wie kann aktives Lernen beim Thema Funktionen helfen?
Welche Vorteile haben Funktionen für die Code-Strukturierung?
Planungsvorlagen für Informatik
Mehr in Algorithmen und Programmierung: Von der Logik zum Code
Was ist ein Algorithmus?
Die Schülerinnen und Schüler definieren Algorithmen und identifizieren deren Eigenschaften anhand von Alltagsbeispielen.
2 methodologies
Sequenzen: Schritt für Schritt
Die Schülerinnen und Schüler erstellen einfache sequentielle Algorithmen und setzen diese in einer visuellen Programmierumgebung um.
2 methodologies
Verzweigungen: Entscheidungen treffen
Die Schülerinnen und Schüler implementieren bedingte Anweisungen (if/else) zur Steuerung des Programmflusses.
2 methodologies
Schleifen: Wiederholungen effizient nutzen
Die Schülerinnen und Schüler nutzen Schleifen (for/while) zur Automatisierung wiederkehrender Aufgaben und zur Reduzierung von Code-Redundanz.
2 methodologies
Variablen: Daten speichern
Die Schülerinnen und Schüler deklarieren und initialisieren Variablen, um Werte im Programm zu speichern und zu manipulieren.
2 methodologies
Datentypen: Informationen klassifizieren
Die Schülerinnen und Schüler unterscheiden zwischen verschiedenen Datentypen (z.B. Ganzzahlen, Gleitkommazahlen, Zeichenketten, Booleans) und deren Verwendung.
2 methodologies