Arbeitsblatt 12 - Funktionen - Deckblatt

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. Funktionen 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.

Themen:  Funktionen (Definition, Parameter)
Schwierigkeitsgrad:  Hoch
Zeitbedarf :  ca. 90 Minuten

Lernmaterialien / interaktive Lerneinheiten:
didaktische Informationen:



zurück zum Modul 3...