BIENENTANZ - Algorithmisches Denken

Die Seite wird erstellt Liliana Karl
 
WEITER LESEN
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