PARKETTIERUNGEN - Algorithmisches Denken

Die Seite wird erstellt Heidi Barth
 
WEITER LESEN
PARKETTIERUNGEN
ALGORITHMISCHES DENKEN IN DER PRIMARSCHULE

  Enthaltene Aspekte des Algorithmischen Denkens
   Abstraktion                     Algorithmendesign               Evaluation
   Generalisierung                 Informationsdarstellung         Iterative Verbesserung
   Präzise Kommunikation           Problemzerlegung

  Fachbereiche: Mathematik · Medien und Informatik
  Zeitaufwand: ca. 3 Lektionen                                        Version: 18. Oktober 2021

Zusammenfassung
In dieser Unterrichtseinheit wird die Programmierung mit Logo unter Verwendung bekannter
Konzepte vertieft, um eine wichtige mathematische Einsicht zu erlangen, die besagt, dass die
2-dimensionale Ebene nur mit regelmässigen Dreiecken, Quadraten und Sechsecken lückenlos
parkettiert werden kann und mit keinen anderen regelmässigen Vielecken.
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.
Wir beginnen mit den in diesem Zusammenhang am leichtesten zugänglichen Vielecken, den
Quadraten, und erhöhen die Komplexität dann schrittweise. Nachdem die Ebene mit Dreiecken und
Sechsecken parkettiert wurde, werden theoretische Überlegungen darüber angestellt, warum dies
beispielsweise nicht mit Fünfecken möglich ist.

Beispielsequenz
Wir haben bereits gelernt, wie wir regelmässige Vielecke mit der Turtle zeichnen können. Hierbei
laufen wir eine fixe Seitenlänge vorwärts und drehen uns dann um einen fixen Winkel, wobei sich
die Turtle insgesamt um 360 Grad dreht. Diese Drehung wird gleichmässig auf alle Ecken verteilt.
Zunächst wird also eine Seitenlänge und die Anzahl der Ecken n festgelegt. Aus n kann zum einen
direkt die Anzahl der Drehungen und zum anderen der Drehwinkel α = 360/n berechnet werden.
Dem Algorithmus wird die Eckenanzahl n als Parameter übergeben. Für die Seitenlänge 80 führt
dies somit zum folgenden Algorithmus.

                                                 1
to vieleck : n
  repeat : n [ fd 80 rt 360/: n ]
end

Falls die Seitenlänge ebenfalls beliebig angegeben werden soll, kann hierzu ein weiterer Parameter
:laenge verwendet werden.
Jetzt soll die Ebene, auf der sich die Turtle bewegt, mit Quadraten parkettiert werden.

Aufgabe 1.
Überlegen Sie, wie Sie 5 Quadrate lückenlos nebeneinander zeichnen können wie in der folgenden
Abbildung dargestellt.

Nach jeder Ausführung muss die Turtle neu positioniert werden. Überlegen Sie deshalb genau, wie
die Befehlssequenz hierzu aussehen soll.

Aufgabe 2.
Schreiben Sie nun einen Algorithmus viereckreihe, der einen Parameter :anzahl erhält und
:anzahl viele Quadrate mit Seitenlänge 100 ähnlich wie in Aufgabe 1 lückenlos nebeneinander malt.

Aufgabe 3.
Erweitern Sie vieleck um einen zweiten Parameter :laenge, der die Seitenlänge des gezeichneten
Vielecks angibt. Erweitern Sie anschliessend ebenfalls viereckreihe um einen Parameter :laenge
und passen Sie die entsprechenden Teile im Algorithmus an, damit vieleck innerhalb korrekt
verwendet wird.

Aufgabe 4.
Schreiben Sie einen Algorithmus viereckparkett, der auch einen Parameter :laenge erhält, mit
dem die Seitenlänge der gezeichneten Quadrate angeben wird. Innerhalb wird der Algorithmus
viereckreihe verwendet, um mehrere Reihen von Quadraten zu zeichnen. Ein mögliches ist in der
folgenden Abbildung dargestellt.

                                                2
Dem Algorithmus viereckparkett werden hierbei zwei Parameter, zum Beispiel :anzahlZeilen
und :anzahlSpalten übergeben, um die Länge und Anzahl der Zeilen und Spalten angeben zu
können.
Insgesamt hat der Algorithmus die folgende Form.
to viereckparket : laenge : anzahlZeilen : anzahlSpalten
  cs
  repeat : anzahlZeilen [ ... ]
  ...
end

Wie wir sehen, füllen wir die Ebene in der Tat lückenlos aus, das heisst die Quadrate liegen sowohl
ohne Überlappung als auch ohne Zwischenräume nebeneinander. Mit Dreiecken kann etwas Ähnliches
erreicht werden. Allerdings müssen wir hierbei ein bisschen mehr aufpassen, da nicht alle Dreiecke
gleich ausgerichtet sind, wie in Abbildung 1 gezeigt.

                               Abbildung 1. Parkettierung mit Dreiecken

Aufgabe 5.
Erstellen Sie Algorithmen dreickreihe und dreieckparkett, die vieleck verwenden, um die Ebene
mit Dreiecken statt Quadraten zu parkettieren. Zeichnen Sie in dreieckparkett immer zwei Reihen
auf einmal.

                                                  3
Aufgabe 6.
Ebenfalls kann mit Sechsecken eine Parkettierung vorgenommen werden. Überlegen Sie genau,
warum dies möglich ist, indem Sie drei Sechsecke in einem Punkt aneinanderlegen. Betrachten Sie
die Innenwinkel des Sechsecks, die Sie aus dem Drehwinkel der Turtle berechnen können. Was fällt
Ihnen auf?

Aufgabe 7.
Erstellen Sie Algorithmen sechseckreihe und sechseckparkett, die auch wieder den Algorithmus
vieleck verwenden, um die Ebene mit Sechsecken statt Quadraten zu parkettieren. Zeichnen Sie
auch hier wieder zwei Reihen auf einmal.

Aufgabe 8.
Es ist vielleicht zunächst überraschend, aber mit anderen Vielecken können keine derartigen Par-
kettierungen vorgenommen werden. Mir «derartig» meinen wir hier konkret, dass sich die Vielecke
nicht überlappen dürfen, auf der anderen Seite aber die gesamte Fläche mit ihnen bedeckt sein soll.
Argumentieren Sie, wieso dies der Fall ist.

Lösungen zu den Aufgaben
Aufgabe 1

Nach jeder Ausführung von vieleck 80 muss die Turtle neu ausgerichtet werden, indem sie sich
beispielsweise um 90 Grad nach rechts dreht, sich :laenge Schritte nach vorne bewegt und dann
90 Grad nach links dreht.

Aufgabe 2

Die Überlegungen aus der Lösung von Aufgabe 1 führen zu dem folgenden Algorithmus viereckreihe,
der eine Reihe mit :anzahl vielen Quadraten der Länge 100 zeichnet.
to vieleck : n
  repeat : n [ fd 100 rt 360/: n ]
end

to viereckreihe : anzahl
  repeat : anzahl [ vieleck 4 rt 90 fd 100 lt 90]
end

Aufgabe 3

Die Erweiterung führt zu den folgenden zwei Algorithmen.

                                                4
to vieleck : laenge : n
  repeat : n [ fd : laenge rt 360/: n ]
end

to viereckreihe : laenge : anzahl
  repeat : anzahl [ vieleck : laenge 4 rt 90 fd : laenge lt 90]
end

Aufgabe 4

Hier muss darauf geachtet werden, dass die Turtle nach dem Zeichnen einer Reihe, also nach der
Ausführung von viereckreihe, so positioniert wird, dass sie die nächste Reihe von der korrekten
Startposition aus zeichnet.
to viereckparkett : laenge : anzahlZeilen : anzahlSpalten
  cs
  repeat : anzahlZeilen [
     viereckreihe : laenge : anzahlSpalten
     lt 90 fd : anzahlSpalten *: laenge rt 90 fd : laenge
  ]
end

Aufgabe 5

In der folgenden Lösung wird wieder der Algorithmus vieleck verwendet. Die Schwierigkeit ist auch
hier, die Turtle am Anfang in die richtige Position zu bringen.
to dreieckreihe : laenge : anzahl
  rt 30
  repeat : anzahl [ vieleck : laenge 3 rt 60 fd : laenge lt 60]
end

to dreieckparkett : laenge : anzahlZeilen : anzahlSpalten
  cs
  repeat : anzahlZeilen [
     dreieckreihe : laenge : anzahlSpalten
     lt 60 fd : laenge lt 150
     dreieckreihe : laenge : anzahlSpalten
     rt 150
  ]
end

Aufgabe 6

Die Studierenden stellen fest, dass die Drehwinkel eines Sechsecks 360/6 = 60 Grad betragen,
was direkt aus den Bewegungen der Turtle geschlussfolgert werden kann. Daraus ergeben sich
Innenwinkel zu 180 − 60 = 120 Grad.

                                               5
Abbildung 2. Drei lückenlose Sechsecke

Wie in Abbildung 2 gezeigt, können deswegen drei Sechsecke in einem Punkt zusammengelegt und
jeweils um 120 Grad gedreht werden. Da 3 · 120 = 360 ergibt, ensteht somit keine Lücke.

Aufgabe 7

Die Lösung für Sechsecke kann wie folgt aussehen, wobei hier die Befehle pu und pd zum Heben
und Senken des Stiftes Verwendung finden.
Das Erstellen dieser Lösung bedeutet einen starken Komplexitätsanstieg gegenüber den vorherigen
Aufgaben.
to sechseckreihe : laenge : anzahl
  repeat : anzahl [
    vieleck : laenge 6
    repeat 4 [ fd : laenge rt 60]
    rt 120
  ]
end

to sechseckparkett : laenge : anzahlZeilen : anzahlSpalten
  cs
  repeat : anzahlZeilen [
     sechseckreihe : laenge : anzahlSpalten
     repeat 2 [ fd : laenge lt 60]
     lt 60
     bk : laenge
     sechseckreihe : laenge : anzahlSpalten
     pu rt 180 lt 60 fd : laenge rt 60 pd
  ]
end

                                                6
Beachten Sie, dass durch das in der Aufgabenstellung erwähnte gleichzeitige Zeichnen von zwei
Reihen die Anzahl der Reihen immer doppelt so gross ist wie der angegebene Parameterwert.
Aufgabe 8

Bei Fünf- oder Siebenecken wird es immer Lücken zwischen den Vielecken geben oder sie überlappen
sich. Dies folgt aus den Innenwinkeln, die eine Parkettierung unmöglich machen.
Beim Fünfeck betragen die Innenwinkel beispielsweise 108 Grad. Wenn drei von ihnen in einer
Ecke aneinander gelegt werden, ergeben sich somit 324 Grad, sodass eine Lücke bleibt. Es kann
offensichtlich kein viertes Fünfeck verwendet werden, um diese zu schliessen.
Bei Siebenecken beträgt der Innenwinkel ca. 128 Grad, was dazu führt, dass sich drei von ihnen, die
an einer Ecke aneinander gelegt werden, überlappen.
Da sich die Innenwinkel vergrössern, wenn die Anzahl der Ecken steigt, gibt es keine weiteren
Parkettierungen.

Didaktischer Kommentar
Diese Unterrichtseinheit stellt einen Bezug zwischen Mathematik und Informatik her. Hier wird vor-
ausgesetzt, dass die Studierenden bereits Erfahrungen mit der Programmiersprache Logo gesammelt
haben und insbesondere schon mit dem Prinzip des Parameters vertraut sind, was frühestens für die
sechste Klasse vorgesehen ist. Eine Einführung finden Sie bei den Quellenangaben.
Die Besonderheit, hier Logo bzw. Turtlegrafik zu verwenden, liegt darin, dass die Studierenden sich
auf eine «lokale» Weise mit den Vielecken auseinandersetzen, wenn sie sie nicht einfach «global»
(also von aussen) in einem Koordinatensystem betrachten, sondern selber mit der Turtle konstruieren.
Hierdurch werden die Zusammenhänge sehr viel plastischer und Drehwinkel können direkt mit Hilfe
der Turtle argumentiert werden.
Die acht Aufgaben bauen aufeinander auf, wobei es zunächst eine kleine Repetition gibt. Aufgabe 8
dient der Differenzierung und ist nur für sehr starke Studierende vorgesehen.
Mit dieser Unterrichtseinheit kann ein Bogen zur Unterrichtseinheit «Bienentanz» geschlagen werden,
da Bienenwaben Sechsecken entsprechen, die lückenlos aneinander gebaut werden.
Die Unterrichtseinheit enthält die folgenden Aspekte des algorithmischen Denkens.
• Algorithmendesign.
  In dieser Unterrichtseinheit werden diverse Programmierkonzepte vertieft, vor allem das Ver-
  wenden von Unterprogrammen und die Verwendung mehrerer Parameter. Da die Parkettieralgo-
  rithmen recht komplex werden, ist es wichtig, den Code übersichtlich und gut strukturiert zu
  halten.
• Problemzerlegung.
  Die Aufgaben bauen aufeinander auf und erlauben es, das Endresultat modular zu konstruieren.
  Beispielsweise werden bei Aufgaben 2 bis 4 zunächst ein Quadrat, dann eine Reihe von Quadraten
  und schliesslich eine Fläche von Quadraten gezeichnet. Letzteres ist das gegebene Problem
  (viereckparkett), das in Teilprobleme (viereckreihe) zerlegt wird, die wiederum zerlegt
  werden (viereck).

                                                 7
• Evaluation.
  Das Ziel dieser Unterrichtseinheit ist es, die erstellten Algorithmen zu reflektieren und insbe-
  sondere ihre Grenzen zu verstehen. So kann, wie in Aufgabe 8 diskutiert, beispielsweise keine
  weitere Verallgemeinerung stattfinden, die dazu führt, dass beliebige Vielecke zur Parkettierung
  herangezogen werden können.

Quellenangaben und Weiterführende Literatur
1. 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.
2. Parkettierungen: https://de.wikipedia.org/wiki/Parkettierung; zuletzt abgerufen am 02.10.2021.
3. XLogoOnline: https://xlogo.inf.ethz.ch; zuletzt abgerufen am 02.10.2021.

                                               8
Sie können auch lesen