Funktionen
Arbeitsblatt 12
In diesen Unterrichtseinheiten beenden die Schülerinnen und Schüler das
„Intro III“-Kapitel, sie bearbeiten die Lerneinheiten neun, zehn und elf und das Arbeitsblatt 12.
Lernschwerpunkte sind hierbei Funktionen, Funktionen mit Rückgabewerten, Funktionen mit
Parametern und die Definition eigener Funktionen. Die Schüler lernen, wie sie eine eigene
Funktion definieren können, wie sie diese aufgerufen können und welche Möglichkeiten sich
hieraus ergeben. Mittels kleiner Experimente werden Blitzlichter erzeugt, wobei eine Funktion mit
Farben als Parametern bunte Blitzlichter erzeugt. Anhand der Software-Bibliothek von BOB3
werden die Schlüsselworte void und int bei Funktionendefinitionen erläutert und den Schülern
wird der Unterschied zwischen Funktionen und Methoden verdeutlicht. Zum Abschluss der
Lerneinheit erarbeiten die Schüler ein komplexeres Programm, das unter anderem einen eigenen
Blitzlicht-Gewitter-Generator verwendet.
Welche Vorteile bietet eine Funktion?
Zunächst probieren die Schüler das bestehende Programm-Beispiel aus: BOB3 soll mit allen
LEDs eins weißes Blitzlicht machen. Für dieses Blitzlicht wird eine eigene Funktion blitz()
definiert, damit man anschließend ohne viel Tipparbeit auch z.B. ein 8-faches Blitzlicht erzeugen
kann. Die Schüler lernen, an welcher Stelle im Programm die Funktion definiert wird und wo und
wie sie aufgerufen werden kann.
Die zugehörige Wissensabfrage-Einheit thematisiert die Frage, an welchen Stellen im Programm
die Funktion aufgerufen werden kann. In der folgenden Lerneinheit vertiefen die Schülerinnen
und Schüler ihr Wissen zu Rückgabewerten von Funktionen und vergleichen die schon bekannte
Methode bob3.getArm() mit der neuen Funktion blitz() anhand der definierten
Schlüsselwörter int und void. Die Schüler lernen, dass Funktionen, die sich auf ein Objekt
beziehen, Methoden genannt werden und dass Bob‘s Funktionen Methoden heißen, da er im
programmiertechnischen Sinne ein Objekt ist.
In der folgenden Lerneinheit definieren die Schüler eine neue Funktion blitzViolett(), die ein
violettes Blitzlicht erzeugen kann und rufen diese innerhalb der loop()-Funktion auf. Das
Lernziel hierbei ist zu vertiefen, dass Funktionen ohne Rückgabewert mit dem Schlüsselwort
void definiert werden. Daher werden bei der Funktion blitzViolett() nur die definierten
Anweisungen ausgeführt, der Aufruf der Funktion liefert keinen Wert zurück. Die anschließende
Lerneinheit thematisiert Funktionen mit Parametern, die Schüler definieren eine neue Funktion
blitzFarbe(int farbe), die eine beliebige Farbe als Parameter übergeben bekommt. So
lernen die Schüler in diesem Experiment, wie sie Funktionen mit Parametern richtig definieren
und wie sie damit Blitzlichter in allen Farben erzeugen können.
Um die neuen Konzepte weiter zu vertiefen vergleichen die Schüler in diesem Zusammenhang
die neu definierten Funktionen mit bereits bekannten Funktionen und Methoden, wie z.B. der
delay() Funktion oder der Methode bob3.getArm(). Hierbei wird deutlich, dass die Methode
bob3.getArm() mit dem Schlüsselwort int definiert wird, also einen Integer Zahlenwert
zurückliefert. Die Schüler sollen diskutieren, warum das
Sinn macht und warum es sinnvoll ist, dass z.B. delay() als void definiert wird.
Die Schüler bearbeiten das Arbeitsblatt 12 und lernen das Konzept und die Verwendung von
Funktionen kennen:
Die Schüler erlernen, dass Programme mittels Funktionen in einzelne Teilbereiche/Teilprobleme gegliedert werden können. Jede Funktion übernimmt eine bestimmte Aufgabe und kann selber auch wieder in verschiedene Teilbereiche zerlegt werden. Die Programme werden so strukturierter und übersichtlicher, zusätzlich ersparen Funktionen jede Menge Tipparbeit! Dieses Konzept wird zunächst mit einem Beispiel aus der Erlebniswelt der Schüler vermittelt: Mal angenommen, man möchte einen Pfannkuchen backen, dann muss man einzelne Teilprobleme lösen: Man muss zuerst die Pfanne einfetten, dann den Teig mixen, eine Portion Teig in die Pfanne tun, kurz warten, bis der Teig braun ist, den Pfannkuchen wenden, wieder kurz warten und dann kann man den Pfannkuchen servieren! Für jedes dieser Teilprobleme definiert man sich eine eigene Funktion, z.B. die Funktion warteBisBraun (). Die Funktion warteBisBraun () löst die Teilaufgabe des eigentlichen Backvorgangs des Pfannkuchens: Man schaut unter den Pfannkuchen und solange die Funktion guckUnterPfannkuchen() zurückliefert, dass dieser noch nicht braun ist, wird eine Minute gewartet. In der Hauptfunktion backeEinenPfannkuchen() wird die Funktion warteBisBraun() dann zweimal aufgerufen, um den Pfannkuchen von beiden Seiten zu backen. Zum Abschluss der Lerneinheit programmieren die Schüler ein Programm, das einen Blitzlicht - Gewitter-Generator verwendet. Damit der Generator funktioniert, müssen die Schüler eine switch-case-Verzweigung implementieren: BOB3 soll zufällig in verschiedenen zeitlichen Abständen unterschiedlich starke Blitze erzeugen! Die Schülerlösung wird vom Agenten überprüft und sobald diese einwandfrei funktioniert, kann der Generator aktiviert werden.
Die Schüler erlernen, dass Programme mittels Funktionen in einzelne Teilbereiche/Teilprobleme gegliedert werden können. Jede Funktion übernimmt eine bestimmte Aufgabe und kann selber auch wieder in verschiedene Teilbereiche zerlegt werden. Die Programme werden so strukturierter und übersichtlicher, zusätzlich ersparen Funktionen jede Menge Tipparbeit! Dieses Konzept wird zunächst mit einem Beispiel aus der Erlebniswelt der Schüler vermittelt: Mal angenommen, man möchte einen Pfannkuchen backen, dann muss man einzelne Teilprobleme lösen: Man muss zuerst die Pfanne einfetten, dann den Teig mixen, eine Portion Teig in die Pfanne tun, kurz warten, bis der Teig braun ist, den Pfannkuchen wenden, wieder kurz warten und dann kann man den Pfannkuchen servieren! Für jedes dieser Teilprobleme definiert man sich eine eigene Funktion, z.B. die Funktion warteBisBraun (). Die Funktion warteBisBraun () löst die Teilaufgabe des eigentlichen Backvorgangs des Pfannkuchens: Man schaut unter den Pfannkuchen und solange die Funktion guckUnterPfannkuchen() zurückliefert, dass dieser noch nicht braun ist, wird eine Minute gewartet. In der Hauptfunktion backeEinenPfannkuchen() wird die Funktion warteBisBraun() dann zweimal aufgerufen, um den Pfannkuchen von beiden Seiten zu backen. Zum Abschluss der Lerneinheit programmieren die Schüler ein Programm, das einen Blitzlicht - Gewitter-Generator verwendet. Damit der Generator funktioniert, müssen die Schüler eine switch-case-Verzweigung implementieren: BOB3 soll zufällig in verschiedenen zeitlichen Abständen unterschiedlich starke Blitze erzeugen! Die Schülerlösung wird vom Agenten überprüft und sobald diese einwandfrei funktioniert, kann der Generator aktiviert werden.
Themen: Funktionen (Definition, Parameter)
Schwierigkeitsgrad: Hoch
Zeitbedarf : ca. 90 Minuten
Schwierigkeitsgrad: Hoch
Zeitbedarf : ca. 90 Minuten
Lernmaterialien / interaktive Lerneinheiten:
didaktische Informationen:
zurück zum Modul 3...