BIENENTANZ - Algorithmisches Denken
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
BIENENTANZ ALGORITHMISCHES DENKEN IN DER PRIMARSCHULE Enthaltene Aspekte des Algorithmischen Denkens Abstraktion Algorithmendesign Evaluation Generalisierung Informationsdarstellung Iterative Verbesserung Präzise Kommunikation Problemzerlegung Fachbereiche: Mathematik · Natur, Mensch und Gesellschaft Zeitaufwand: ca. 2 Lektionen Version: 12. November 2021 Zusammenfassung Ziel dieses Bausteins ist es, eine weitere Vertiefung in die Logo-Programmierung vorzustellen, indem ein Algorithmus an einer Stelle gefunden wird, an der er zumindest nicht unmittelbar vermutet wird. Genauer geht es uns hierbei um den Schwänzeltanz der Honigbiene, mit welchem Kundschafterinnen den übrigen Bienen die Position einer Nahrungsquelle mitteilen. Den Schwänzeltanz sollen die Studierenden mit der Turtle nachprogrammieren, die dann die Rolle der Kundschafterbiene einnimmt. Wir nehmen einen vereinfachten Tanz an, um die Programmierung übersichtlich zu halten. Wir setzen hierbei voraus, dass die Studierenden das Konzept der Schleife kennen und bereits wissen, wie sie eigene Befehle mit Parametern definieren können. Generell werden Vorkenntnisse in der Programmiersprache Logo erwartet. Hinweise zur Literatur über die Grundlagen finden sich in den Quellenangaben. Beispielsequenz Honigbienen kommunizieren miteinander unter anderem, um einander auf Nahrungsquellen aufmerk- sam zu machen. Hierzu werden Kundschafterbienen ausgesendet, die auf Nahrungssuche gehen und – falls sie erfolgreich bei der Suche sind – die Position der gefundenen Nahrungsquelle ihren im Stock gebliebenen Kolleginnen mitteilen. Abbildung 1 stellt das Prinzip vereinfacht dar: Die Honigbiene kommuniziert in unserem vereinfachten Modell im Wesentlichen zwei Dinge (Parameter) der Nahrungsquelle, nämlich • deren Distanz n und • die Richtung, hier angegeben durch einen Winkel α. 1
Abbildung 1. Schematische Darstellung des Bienentanz Die Biene tanzt dabei auf einer Wabe, indem sie eine Schlangenlinie läuft, sich dann nach links dreht und einen Halbkreis beschreibt, anschliessend dieselbe Schlangenlinie wie zuvor erneut abläuft, sich diesmal nach rechts dreht und wieder einen Halbkreis beschreibt und das Ganze schliesslich mehrmals wiederholt. Die Distanz n hängt damit zusammen, wie lange die Biene benötigt, um die Schlangenlinie zurückzulegen und der Winkel α entspricht dem Winkel zwischen Futterquelle und Sonne, wobei die direkte Linie zur Sonne wiederum durch die Senkrechte auf der Wabe repräsentiert wird. Aufgabe 1 Wir möchten damit beginnen, das Mittelstück des Tanzes umzusetzen. Allerdings wird dabei auf die Schlangenlinie verzichtet und die Biene (Turtle) soll stattdessen einfach eine gerade Strecke laufen. Die Strecke besitzt eine feste Länge von 200 und kann schneller oder langsamer zurück gelegt werden. Je grösser die Distanz zur Nahrungsquelle, desto länger benötigt die Biene, um die Strecke zu fliegen. Öffnen Sie die Entwicklungsumgebung xLogoOnline (https://xlogo.inf.ethz.ch). Schreiben Sie einen Befehl tanzen, der einen Parameter :zeit erhält und zum Zurücklegen der Strecke mit der Länge 200 genau :zeit Sekunden braucht. Verwenden Sie hierzu den wait-Befehl, bei welchem wir als Parameter in Hundertstelsekunden angeben, wie lange der Computer warten soll bis er den nächsten Befehl ausführt. Testen Sie Ihr Programm für die Parameterwerte 1, 5 und 10. 2
Aufgabe 2 Als nächstes soll ein Halbkreis «getanzt» werden, um wieder am Ausgangspunkt der Schlangenlinie anzukommen. Überlegen Sie sich hierzu gut, wie der Umfang eines Kreises mit einem festen Durchmesser (hier also 200) zu berechnen ist. Schreiben Sie daraus einen Befehl halbkreis. Die Zeit, die benötigt wird, um den Halbkreis zurüzulegen, ist nicht relevant und sollte dementsprechend mit Augenmass gewählt werden. Aufgabe 3 Fügen Sie nun alle Schritte zusammen und erstellen einen Befehl bienentanz, der den ganzen Algorithmus zusammenfasst und dafür sorgt, dass die Turtle den Bienentanz entsprechend ausführt. Dem Befehl werden zwei Parameter :alpha und :zeit übergeben. Der Tanz soll 10 Mal ausgeführt werden. Es darf dabei angenommen werden, dass die Sonne immer in der anfänglichen Blickrichtung der Turtle ist. Lösungen zu den Aufgaben Aufgabe 1 Die Strecke wird mit dem folgenden Befehl gezeichnet, wobei :zeit verwendet wird, um anzugeben, wie lange die Biene nach jedem Schritt wartet. Wenn der Wert von :zeit also beispielsweise 1 beträgt, so wartet die Biene 200 Mal jeweils 1/2, was insgesamt eine Wartezeit von 100 Zeiteinheiten entspricht. Logo arbeitet mit Hundertstelsekunden als Zeiteinheit. Das heisst, dass die Biene im obigen Fall also 100 Hundertstelsekunden (oder eine volle Sekunde) benötigt um die Strecke zurück zu legen. Die generelle Geschwindigkeit der Turtle sollte ausserdem auf das Maximum gesetzt sein. to tanzen : zeit repeat 200 [ forward 1 wait : zeit /2] end Aufgabe 2 Da ein Kreis mit Durchmesser 200 einen Umfang von 200 · π besitzt, muss die Turtle insgesamt eine Strecke von 200 · π/2 laufen. Mit dem folgenden Teilprogramm wird diese auf 180 Schritte aufgeteilt, was dazu führt, dass nach jedem Schritt um ein Grad gedreht wird. to halbkreis repeat 180 [ forward 200*3.14/360 right 1 wait 0.1] end Aufgabe 3 Der gesamte Algorithmus kann wie folgt aussehen. 3
to tanzen : zeit repeat 200 [ forward 1 wait : zeit /2] end to halbkreis_links repeat 180 [ forward 200*3.14/360 left 1 wait 0.1] end to halbkreis_rechts repeat 180 [ forward 200*3.14/360 right 1 wait 0.1] end to bienentanz : alpha : zeit cs right : alpha repeat 10 [ tanzen : zeit left 90 halbkreis_links left 90 tanzen : zeit right 90 halbkreis_rechts right 90 ] end Hintergrundinformationen Um die Turtle den Schwänzeltanz ausführen zu lassen, haben wir an vielen Stellen Vereinfachungen vorgenommen. Beispielsweise sind wir davon ausgegangen, dass die Biene ihren Tanz immer in der Horizontalen ausführt. Im Bienenstock hängen die Waben senkrecht. Die Bienen abstrahieren die Richtung zur Futterquelle, indem sie davon ausgehen, dass die Senkrechte nach oben die Richtung zur Sonne ist. Tanzt die Biene also senkrecht nach oben, bedeutet dies, dass die Futterquelle direkt in Richtung der Sonne liegt, der Winkel α also 0 ist. Sehr selten findet der Tanz zur Futtersuche auch in der Horizontalen statt. Beim Schwärmen ist es allerdings üblich, dass die Bienen auf der Bienentraube den zukünftigen Nistplatz mit einem in der Horizontalen getanzten Schwänzeltanz angeben. Es werden während des Tanzes zur Lokalisierung einer Futterquelle noch weit mehr Information übermittelt. Die tanzende Biene gibt Proben des Futters ab und teilt damit die Art des Futters mit. Sie gibt ein lautes Summen ab, das mit den Flugmuskeln erzeugt wird, ohne dass die Biene fliegt. Der Schwänzeltanz ist also von deutlich höherer Komplexität als der programmierte Algorithmus suggeriert. 4
Didaktischer Kommentar Eine Differenzierung kann vorgenommen werden, um die Schlangenlinie, die in Aufgabe 1 sehr einfach umgesetzt worden ist, detailierter umzusetzen. Werden beispielsweise kleine Halbkreise aneinander gereiht, wird es allerdings schwerer, die richtige zeitliche Verzögerung zu wählen bzw. kann diese dann nur nur approximiert werden. Ein Kompromiss könnte sein, die Turtle in einem Zickzack hin und her «wackeln» zu lassen. Der Baustein enthält die folgenden Aspekte des algorithmischen Denkens. • Abstraktion Wie bereits erwähnt stellt der hier vorgestellt Tanz eine recht grosse Vereinfachung dar. Dieses Abstrahieren des Bienentanzes und die Reduktion auf die zwei wesentlichen Parameter :alpha und :zeit sollte mit den Studenten thematisiert werden. • Algorithmendesign In diesem Baustein werden diverse Programmierkonzepte vertieft, insbesondere das Verschachteln von Schleifen und die Verwendung von Parametern. Schritt für Schritt wird ein recht komplexer Algorithmus entwickelt, der sich in der Natur (in allgemeinerer Form) wiederfinden lässt. • Problemzerlegung Durch das Definieren der einzelnen Befehle wird das Konzept des modularen Entwurfs angewandt. So können bereits einmal geschriebene Befehle leicht wiederverwendet werden. Konkret wird mit der Lösung kleiner Teilprobleme in Aufgaben 1 und 2 begonnen, welche dann in Aufgabe 3 das gegebene Problem lösen lassen. Quellenangaben und weiterführende Literatur • Heidi Gebauer, Juraj Hromkovič, Lucia Keller, Ivana Kosírová, Giovanni Serafini und Björn Steffen: Programmieren mit Logo. https://www.abz.inf.ethz.ch/primarschulen-stufe-sek-1/ unterrichtsmaterialien/; zuletzt abgerufen am 02.10.2021. • Tanzsprache der Biene. Wikipedia – Die freie Enzyklopädie. https://de.wikipedia.org/wiki/ Tanzsprache; zuletzt abgerufen am 02.10.2021. • XLogoOnline. https://xlogo.inf.ethz.ch; zuletzt abgerufen am 02.10.2021. Abbildungsverzeichnis • Abbildung 1: Bearbeitet, Original von https://kimkobloggt.wordpress.com/2017/07/26/wie-die-bienen-kommun zuletzt abgerufen am 02.10.2021. 5
Sie können auch lesen