Übung
icon: bi-pencil kind: uebung duration: 2 Doppelstunden languages: [ruby, python, javascript] idea: Eine Schildkröte zeichnet, was du ihr sagst curriculum: "Sek I: Algorithmisches Problemlösen (algorithmische Grundstrukturen, Implementieren von Algorithmen), Digitale Bilder und Visualisierung (Vektorgrafik, Turtle-Grafik), Geschichte der Informatik (Lebensläufe und Leistungen bedeutender Persönlichkeiten)" topics: [grundstrukturen, unterprogramme, computergrafik, geschichte]

Turtle: Bilder aus Befehlen

Eine Schildkröte läuft über ein Blatt Papier und zieht mit einem Stift eine Linie hinter sich her. Du sagst ihr, was sie tun soll: vorwärts gehen, sich nach links drehen, sich nach rechts drehen. Aus ein paar Befehlen wird ein Quadrat, aus einer Schleife ein Stern, aus einer eigenen Funktion eine Blume und am Ende ein Bild, das du dir selbst ausdenkst.

1. Die Schildkröte

In der Mitte des Papiers sitzt die Schildkröte und schaut nach rechts. Mit forward geht sie so viele Schritte geradeaus, wie du ihr sagst, und zeichnet dabei eine Linie. Mit left dreht sie sich auf der Stelle nach links, um so viele Grad, wie du ihr sagst, mit right nach rechts; back geht rückwärts. Ein Kästchen auf dem Papier ist 50 Schritte breit; zeichnest du etwas Großes, zoomt das Papier heraus.

Dieses Programm zeichnet ein L, das auf dem Rücken liegt: 100 Schritte nach rechts, eine Vierteldrehung nach links, 50 Schritte nach oben.

forward 100
left 90
forward 50
forward(100)
left(90)
forward(50)
forward(100);
left(90);
forward(50);

Dein Programm schreibst du in eine Karte wie die folgenden; Ausführen startet es. Die Schildkröte zeichnet, während es läuft, und die Zeile, an der sie gerade ist, leuchtet im Programm. Wie schnell sie läuft, stellst du unter dem Papier ein. Dein Programm läuft in deinem Browser; ist es zu Ende, vergleicht der Workspace dein Bild mit dem grauen Bild auf dem Papier.

Aufgabe 1Eine TreppeEinstieg

Die Schildkröte soll eine Treppe mit drei Stufen zeichnen, jede 50 Schritte breit und 50 Schritte hoch. Die erste Stufe steht schon da: Ergänze die beiden anderen.

forward 100back 100left 90right 90
Tipp

Eine Stufe sind vier Befehle: ein Stück nach rechts, eine Drehung nach oben, ein Stück nach oben und eine Drehung zurück.

Nächster Tipp

Schreib die vier Zeilen der ersten Stufe noch zweimal darunter.

Aufgabe 1Eine TreppeEinstieg

Die Schildkröte soll eine Treppe mit drei Stufen zeichnen, jede 50 Schritte breit und 50 Schritte hoch. Die erste Stufe steht schon da: Ergänze die beiden anderen.

forward(100)back(100)left(90)right(90)
Tipp

Eine Stufe sind vier Befehle: ein Stück nach rechts, eine Drehung nach oben, ein Stück nach oben und eine Drehung zurück.

Nächster Tipp

Schreib die vier Zeilen der ersten Stufe noch zweimal darunter.

Aufgabe 1Eine TreppeEinstieg

Die Schildkröte soll eine Treppe mit drei Stufen zeichnen, jede 50 Schritte breit und 50 Schritte hoch. Die erste Stufe steht schon da: Ergänze die beiden anderen.

forward(100)back(100)left(90)right(90)
Tipp

Eine Stufe sind vier Befehle: ein Stück nach rechts, eine Drehung nach oben, ein Stück nach oben und eine Drehung zurück.

Nächster Tipp

Schreib die vier Zeilen der ersten Stufe noch zweimal darunter.

Aufgabe 2Ein QuadratEinstieg

Zeichne ein Quadrat mit der Seitenlänge 100. Es fängt dort an, wo die Schildkröte steht, und geht nach rechts und nach oben.

forward 100back 100left 90right 90
Tipp

Nach jeder Seite dreht sich die Schildkröte nach links, so dass die nächste Seite senkrecht auf der letzten steht.

Nächster Tipp

100 Schritte vorwärts und 90 Grad nach links, und das viermal.

Aufgabe 2Ein QuadratEinstieg

Zeichne ein Quadrat mit der Seitenlänge 100. Es fängt dort an, wo die Schildkröte steht, und geht nach rechts und nach oben.

forward(100)back(100)left(90)right(90)
Tipp

Nach jeder Seite dreht sich die Schildkröte nach links, so dass die nächste Seite senkrecht auf der letzten steht.

Nächster Tipp

100 Schritte vorwärts und 90 Grad nach links, und das viermal.

Aufgabe 2Ein QuadratEinstieg

Zeichne ein Quadrat mit der Seitenlänge 100. Es fängt dort an, wo die Schildkröte steht, und geht nach rechts und nach oben.

forward(100)back(100)left(90)right(90)
Tipp

Nach jeder Seite dreht sich die Schildkröte nach links, so dass die nächste Seite senkrecht auf der letzten steht.

Nächster Tipp

100 Schritte vorwärts und 90 Grad nach links, und das viermal.

Vermutung 3Die Ecke eines Dreiecks

Ein Dreieck mit drei gleich langen Seiten hat innen an jeder Ecke 60 Grad. Um wie viel Grad muss sich die Schildkröte an jeder Ecke drehen, damit sie es zeichnet?

Die Ecke eines Dreiecks

Hier geht es weiter, sobald du deine Antwort oben abgegeben hast.

Die Schildkröte dreht sich nicht um den Winkel, der innen in der Ecke liegt, sondern um so viel, wie sich ihre Richtung ändert. Ginge sie geradeaus weiter, wären es 0 Grad; kehrte sie ganz um, 180. Bei einer Ecke von 60 Grad dreht sie sich um 180 − 60 = 120 Grad.

Zusammen sind das dreimal 120 = 360 Grad, einmal ganz herum, genau wie beim Quadrat mit viermal 90. Das gilt für jede Figur, die die Schildkröte einmal umrundet: Am Ende schaut sie wieder in die Richtung vom Anfang, und alle Drehungen ergeben zusammen 360 Grad.

Aufgabe 4Ein DreieckEinstieg

Zeichne das Dreieck mit drei gleich langen Seiten, jede 150 Schritte lang.

forward 100back 100left 90right 90
Tipp

Wie beim Quadrat: eine Seite, eine Drehung, nur dreimal.

Nächster Tipp

Um wie viel sich die Schildkröte dreht, steht oben unter der Vorhersage.

Aufgabe 4Ein DreieckEinstieg

Zeichne das Dreieck mit drei gleich langen Seiten, jede 150 Schritte lang.

forward(100)back(100)left(90)right(90)
Tipp

Wie beim Quadrat: eine Seite, eine Drehung, nur dreimal.

Nächster Tipp

Um wie viel sich die Schildkröte dreht, steht oben unter der Vorhersage.

Aufgabe 4Ein DreieckEinstieg

Zeichne das Dreieck mit drei gleich langen Seiten, jede 150 Schritte lang.

forward(100)back(100)left(90)right(90)
Tipp

Wie beim Quadrat: eine Seite, eine Drehung, nur dreimal.

Nächster Tipp

Um wie viel sich die Schildkröte dreht, steht oben unter der Vorhersage.

2. Wiederholen

Beim Quadrat hast du zweimal dieselben zwei Zeilen geschrieben, und noch zweimal. Was sich wiederholt, macht eine Schleife. Diese zeichnet eine Mauer mit fünf Zinnen:

5.times do
  forward 20
  left 90
  forward 20
  right 90
  forward 20
  right 90
  forward 20
  left 90
end

5.times do heißt: fünfmal. Was eingerückt bis zum end steht, wiederholt Ruby.

for i in range(5):
    forward(20)
    left(90)
    forward(20)
    right(90)
    forward(20)
    right(90)
    forward(20)
    left(90)

for i in range(5): heißt: fünfmal. Was darunter eingerückt steht, wiederholt Python; i zählt dabei mit, von 0 bis 4.

for (let i = 0; i < 5; i++) {
  forward(20);
  left(90);
  forward(20);
  right(90);
  forward(20);
  right(90);
  forward(20);
  left(90);
}

for (let i = 0; i < 5; i++) heißt: fünfmal. Was zwischen den geschweiften Klammern steht, wiederholt JavaScript; i zählt dabei mit, von 0 bis 4.

Aufgabe 5Viermal dasselbeEinstieg

Zeichne das Quadrat noch einmal, aber in höchstens vier Zeilen: Was sich wiederholt, macht eine Schleife.

forward 100back 100left 90right 90
Tipp

Wiederholt werden zwei Befehle: 100 vorwärts und 90 nach links.

Nächster Tipp

4.times do, darunter die beiden Befehle eingerückt, dann end.

Aufgabe 5Viermal dasselbeEinstieg

Zeichne das Quadrat noch einmal, aber in höchstens drei Zeilen: Was sich wiederholt, macht eine Schleife.

forward(100)back(100)left(90)right(90)
Tipp

Wiederholt werden zwei Befehle: 100 vorwärts und 90 nach links.

Nächster Tipp

for i in range(4):, darunter die beiden Befehle eingerückt.

Aufgabe 5Viermal dasselbeEinstieg

Zeichne das Quadrat noch einmal, aber in höchstens vier Zeilen: Was sich wiederholt, macht eine Schleife.

forward(100)back(100)left(90)right(90)
Tipp

Wiederholt werden zwei Befehle: 100 vorwärts und 90 nach links.

Nächster Tipp

for (let i = 0; i < 4; i++) {, darunter die beiden Befehle, dann }.

Ausprobieren: Ein Kreis ist für die Schildkröte ein Vieleck mit sehr vielen Ecken. Lass sie 360-mal 2 Schritte gehen und sich jedes Mal um 1 Grad drehen. Achte darauf, ob du die Ecken noch siehst, und wie groß der Kreis wird, wenn sie 3 Schritte geht.

3. Eigene Befehle

Die Schildkröte kennt nur ein paar Befehle, aber du kannst ihr neue beibringen: Eine Funktion bekommt einen Namen und die Befehle, die sie ausführen soll. Was in Klammern hinter dem Namen steht, ist ein Parameter: ein Wert, den man ihr beim Aufruf mitgibt. Diese Funktion zeichnet eine Treppenstufe in der Größe, die sie bekommt, und drei Aufrufe zeichnen drei Stufen, die immer größer werden:

def stair(size)
  forward size
  left 90
  forward size
  right 90
end

stair(20)
stair(40)
stair(60)

def beginnt die Funktion, end beendet sie. Erst die Aufrufe darunter lassen die Schildkröte zeichnen; beim ersten ist size 20, beim zweiten 40.

def stair(size):
    forward(size)
    left(90)
    forward(size)
    right(90)

stair(20)
stair(40)
stair(60)

def beginnt die Funktion; was darunter eingerückt steht, gehört zu ihr. Erst die Aufrufe darunter lassen die Schildkröte zeichnen; beim ersten ist size 20, beim zweiten 40.

function stair(size) {
  forward(size);
  left(90);
  forward(size);
  right(90);
}

stair(20);
stair(40);
stair(60);

function beginnt die Funktion; was zwischen den geschweiften Klammern steht, gehört zu ihr. Erst die Aufrufe darunter lassen die Schildkröte zeichnen; beim ersten ist size 20, beim zweiten 40.

Bei den folgenden Aufgaben ruft der Workspace deine Funktion selbst auf, mehrmals und mit anderen Werten, jedes Mal auf einem frischen Blatt. Was dein Programm sonst noch zeichnet, zählt dabei nicht.

Aufgabe 6Quadrate jeder GrößeÜbung

Schreib eine Funktion square(size), die ein Quadrat mit der Seitenlänge size zeichnet. Unten im Programm zeichnet square(150) eins.

forward 100back 100left 90right 90
Tipp

Das Quadrat mit der Schleife von eben gehört in die Funktion, eingerückt.

Nächster Tipp

Statt 100 steht dort size: Dann zeichnet square(40) die Seiten 40 Schritte lang.

Aufgabe 6Quadrate jeder GrößeÜbung

Schreib eine Funktion square(size), die ein Quadrat mit der Seitenlänge size zeichnet. Unten im Programm zeichnet square(150) eins.

forward(100)back(100)left(90)right(90)
Tipp

Das Quadrat mit der Schleife von eben gehört in die Funktion, eingerückt.

Nächster Tipp

Statt 100 steht dort size: Dann zeichnet square(40) die Seiten 40 Schritte lang.

Aufgabe 6Quadrate jeder GrößeÜbung

Schreib eine Funktion square(size), die ein Quadrat mit der Seitenlänge size zeichnet. Unten im Programm zeichnet square(150) eins.

forward(100)back(100)left(90)right(90)
Tipp

Das Quadrat mit der Schleife von eben gehört in die Funktion, eingerückt.

Nächster Tipp

Statt 100 steht dort size: Dann zeichnet square(40) die Seiten 40 Schritte lang.

Aufgabe 7VieleckeKnobelei

Schreib eine Funktion polygon(corners, side), die ein Vieleck mit corners Ecken und gleich langen Seiten der Länge side zeichnet: polygon(5, 100) ein Fünfeck, polygon(8, 60) ein Achteck.

forward 100back 100left 90right 90
Tipp

Die Schleife läuft so oft, wie das Vieleck Ecken hat: corners mal.

Nächster Tipp

An allen Ecken zusammen dreht sich die Schildkröte einmal ganz herum, um 360 Grad. An einer Ecke ist es also 360 geteilt durch die Zahl der Ecken.

Nächster Tipp

In Ruby ist 360 / 7 eine ganze Zahl, 51, und das Siebeneck schließt sich nicht. Mit 360.0 / corners rechnet Ruby mit Kommazahlen.

Aufgabe 7VieleckeKnobelei

Schreib eine Funktion polygon(corners, side), die ein Vieleck mit corners Ecken und gleich langen Seiten der Länge side zeichnet: polygon(5, 100) ein Fünfeck, polygon(8, 60) ein Achteck.

forward(100)back(100)left(90)right(90)
Tipp

Die Schleife läuft so oft, wie das Vieleck Ecken hat: corners mal.

Nächster Tipp

An allen Ecken zusammen dreht sich die Schildkröte einmal ganz herum, um 360 Grad. An einer Ecke ist es also 360 geteilt durch die Zahl der Ecken.

Nächster Tipp

360 / corners ergibt in Python eine Kommazahl, auch bei 7 Ecken; 360 // corners würde abrunden, und das Siebeneck schlösse sich nicht.

Aufgabe 7VieleckeKnobelei

Schreib eine Funktion polygon(corners, side), die ein Vieleck mit corners Ecken und gleich langen Seiten der Länge side zeichnet: polygon(5, 100) ein Fünfeck, polygon(8, 60) ein Achteck.

forward(100)back(100)left(90)right(90)
Tipp

Die Schleife läuft so oft, wie das Vieleck Ecken hat: corners mal.

Nächster Tipp

An allen Ecken zusammen dreht sich die Schildkröte einmal ganz herum, um 360 Grad. An einer Ecke ist es also 360 geteilt durch die Zahl der Ecken.

Nächster Tipp

360 / corners ergibt in JavaScript eine Kommazahl, auch bei 7 Ecken.

Aufgabe 8Eine Blume aus QuadratenÜbung

Zeichne zwölf Quadrate mit der Seitenlänge 100, alle an derselben Ecke, jedes um 30 Grad weiter gedreht als das davor. Deine Funktion square von eben hilft dabei: Kopier sie in die Zeilen oben.

forward 100back 100left 90right 90
Tipp

Zwölfmal dasselbe: ein Quadrat zeichnen, dann 30 Grad weiterdrehen.

Nächster Tipp

In der Schleife stehen zwei Zeilen: square(100) und die Drehung um 30 Grad nach links.

Aufgabe 8Eine Blume aus QuadratenÜbung

Zeichne zwölf Quadrate mit der Seitenlänge 100, alle an derselben Ecke, jedes um 30 Grad weiter gedreht als das davor. Deine Funktion square von eben hilft dabei: Kopier sie in die Zeilen oben.

forward(100)back(100)left(90)right(90)
Tipp

Zwölfmal dasselbe: ein Quadrat zeichnen, dann 30 Grad weiterdrehen.

Nächster Tipp

In der Schleife stehen zwei Zeilen: square(100) und die Drehung um 30 Grad nach links.

Aufgabe 8Eine Blume aus QuadratenÜbung

Zeichne zwölf Quadrate mit der Seitenlänge 100, alle an derselben Ecke, jedes um 30 Grad weiter gedreht als das davor. Deine Funktion square von eben hilft dabei: Kopier sie in die Zeilen oben.

forward(100)back(100)left(90)right(90)
Tipp

Zwölfmal dasselbe: ein Quadrat zeichnen, dann 30 Grad weiterdrehen.

Nächster Tipp

In der Schleife stehen zwei Zeilen: square(100) und die Drehung um 30 Grad nach links.

Aufgabe 9Deine BlumeÜbung

Bau deine eigene Blume: Nimm statt des Quadrats eine andere Figur, ein Dreieck, ein Sechseck oder ein Vieleck mit deiner Funktion polygon, und dreh sie so oft, dass sie einmal ganz herumkommt.

forward 100back 100left 90right 90
Tipp

Wie bei der Blume aus Quadraten: die Figur zeichnen, ein Stück weiterdrehen, und das in einer Schleife.

Nächster Tipp

Damit die Blume einmal herumkommt, ergeben alle Drehungen zusammen 360 Grad: 18-mal 20 Grad, 12-mal 30 Grad, 36-mal 10 Grad.

Aufgabe 9Deine BlumeÜbung

Bau deine eigene Blume: Nimm statt des Quadrats eine andere Figur, ein Dreieck, ein Sechseck oder ein Vieleck mit deiner Funktion polygon, und dreh sie so oft, dass sie einmal ganz herumkommt.

forward(100)back(100)left(90)right(90)
Tipp

Wie bei der Blume aus Quadraten: die Figur zeichnen, ein Stück weiterdrehen, und das in einer Schleife.

Nächster Tipp

Damit die Blume einmal herumkommt, ergeben alle Drehungen zusammen 360 Grad: 18-mal 20 Grad, 12-mal 30 Grad, 36-mal 10 Grad.

Aufgabe 9Deine BlumeÜbung

Bau deine eigene Blume: Nimm statt des Quadrats eine andere Figur, ein Dreieck, ein Sechseck oder ein Vieleck mit deiner Funktion polygon, und dreh sie so oft, dass sie einmal ganz herumkommt.

forward(100)back(100)left(90)right(90)
Tipp

Wie bei der Blume aus Quadraten: die Figur zeichnen, ein Stück weiterdrehen, und das in einer Schleife.

Nächster Tipp

Damit die Blume einmal herumkommt, ergeben alle Drehungen zusammen 360 Grad: 18-mal 20 Grad, 12-mal 30 Grad, 36-mal 10 Grad.

4. Stift und Farbe

Mit pen_up hebt die Schildkröte ihren Stift: Sie geht weiter, ohne zu zeichnen, bis pen_down ihn wieder aufsetzt. color gibt dem Stift eine Farbe, mit einem englischen Namen wie "red", "orange" oder "darkgreen"; width macht die Linie dicker. Diese Linie ist erst dick und grün, dann kommt eine Lücke, dann geht sie dünn und rot weiter:

width 6
color "green"
forward 80
pen_up
forward 40
pen_down
width 2
color "red"
forward 80

Mit pen_up() hebt die Schildkröte ihren Stift: Sie geht weiter, ohne zu zeichnen, bis pen_down() ihn wieder aufsetzt. color gibt dem Stift eine Farbe, mit einem englischen Namen wie "red", "orange" oder "darkgreen"; width macht die Linie dicker. Diese Linie ist erst dick und grün, dann kommt eine Lücke, dann geht sie dünn und rot weiter:

width(6)
color("green")
forward(80)
pen_up()
forward(40)
pen_down()
width(2)
color("red")
forward(80)

Mit penUp() hebt die Schildkröte ihren Stift: Sie geht weiter, ohne zu zeichnen, bis penDown() ihn wieder aufsetzt. color gibt dem Stift eine Farbe, mit einem englischen Namen wie "red", "orange" oder "darkgreen"; width macht die Linie dicker. Diese Linie ist erst dick und grün, dann kommt eine Lücke, dann geht sie dünn und rot weiter:

width(6);
color("green");
forward(80);
penUp();
forward(40);
penDown();
width(2);
color("red");
forward(80);

Ein Klick auf den Befehl color über dem Papier öffnet Farben zum Aussuchen: die Palette Cling und einige Namen. Ein Klick auf eine Farbe setzt sie in dein Programm, dorthin, wo zuletzt der Cursor stand. Alle 148 Namen stehen in der Liste der Farbnamen von MDN, mit einem Kästchen in jeder Farbe; statt eines Namens geht auch eine Farbe wie "#ff8800".

Aufgabe 10Eine gestrichelte LinieEinstieg

Zeichne eine gestrichelte Linie nach rechts: zehn Striche, jeder 10 Schritte lang, und zwischen zwei Strichen 10 Schritte Lücke. Mit pen_up hebt die Schildkröte den Stift und geht weiter, ohne zu zeichnen; pen_down setzt ihn wieder auf.

forward 100back 100left 90right 90pen_uppen_downwidth 4
Tipp

Ein Strich und eine Lücke wiederholen sich zehnmal.

Nächster Tipp

In der Schleife: 10 vorwärts, Stift hoch, 10 vorwärts, Stift wieder runter.

Aufgabe 10Eine gestrichelte LinieEinstieg

Zeichne eine gestrichelte Linie nach rechts: zehn Striche, jeder 10 Schritte lang, und zwischen zwei Strichen 10 Schritte Lücke. Mit pen_up() hebt die Schildkröte den Stift und geht weiter, ohne zu zeichnen; pen_down() setzt ihn wieder auf.

forward(100)back(100)left(90)right(90)pen_up()pen_down()width(4)
Tipp

Ein Strich und eine Lücke wiederholen sich zehnmal.

Nächster Tipp

In der Schleife: 10 vorwärts, Stift hoch, 10 vorwärts, Stift wieder runter.

Aufgabe 10Eine gestrichelte LinieEinstieg

Zeichne eine gestrichelte Linie nach rechts: zehn Striche, jeder 10 Schritte lang, und zwischen zwei Strichen 10 Schritte Lücke. Mit penUp() hebt die Schildkröte den Stift und geht weiter, ohne zu zeichnen; penDown() setzt ihn wieder auf.

forward(100)back(100)left(90)right(90)penUp()penDown()width(4)
Tipp

Ein Strich und eine Lücke wiederholen sich zehnmal.

Nächster Tipp

In der Schleife: 10 vorwärts, Stift hoch, 10 vorwärts, Stift wieder runter.

Aufgabe 11Drei bunte QuadrateÜbung

Zeichne drei Quadrate mit der Seitenlänge 60 nebeneinander, das erste rot ("red"), das zweite goldgelb ("gold"), das dritte blau ("blue"). Zwischen zwei Quadraten sind 20 Schritte frei, und die Schildkröte zeichnet dabei nichts.

forward 100back 100left 90right 90pen_uppen_downwidth 4
Tipp

Ein Quadrat, dann 80 Schritte nach rechts mit gehobenem Stift: 60 für das Quadrat und 20 Lücke.

Nächster Tipp

Vor jedem Quadrat seine Farbe: color "red". Wer mag, nimmt eine Schleife über die Farben: ["red", "gold", "blue"].each do |name|.

Aufgabe 11Drei bunte QuadrateÜbung

Zeichne drei Quadrate mit der Seitenlänge 60 nebeneinander, das erste rot ("red"), das zweite goldgelb ("gold"), das dritte blau ("blue"). Zwischen zwei Quadraten sind 20 Schritte frei, und die Schildkröte zeichnet dabei nichts.

forward(100)back(100)left(90)right(90)pen_up()pen_down()width(4)
Tipp

Ein Quadrat, dann 80 Schritte nach rechts mit gehobenem Stift: 60 für das Quadrat und 20 Lücke.

Nächster Tipp

Vor jedem Quadrat seine Farbe: color("red"). Wer mag, nimmt eine Schleife über die Farben: for name in ["red", "gold", "blue"]:.

Aufgabe 11Drei bunte QuadrateÜbung

Zeichne drei Quadrate mit der Seitenlänge 60 nebeneinander, das erste rot ("red"), das zweite goldgelb ("gold"), das dritte blau ("blue"). Zwischen zwei Quadraten sind 20 Schritte frei, und die Schildkröte zeichnet dabei nichts.

forward(100)back(100)left(90)right(90)penUp()penDown()width(4)
Tipp

Ein Quadrat, dann 80 Schritte nach rechts mit gehobenem Stift: 60 für das Quadrat und 20 Lücke.

Nächster Tipp

Vor jedem Quadrat seine Farbe: color("red"). Wer mag, nimmt eine Schleife über die Farben: for (const name of ["red", "gold", "blue"]) {.

5. Spiralen

Eine Variable merkt sich einen Wert unter einem Namen, und der Wert darf sich ändern. Hier wird jede Stufe 10 Schritte größer als die davor:

size = 10
6.times do
  forward size
  left 90
  forward size
  right 90
  size = size + 10
end
size = 10
for i in range(6):
    forward(size)
    left(90)
    forward(size)
    right(90)
    size = size + 10
let size = 10;
for (let i = 0; i < 6; i++) {
  forward(size);
  left(90);
  forward(size);
  right(90);
  size = size + 10;
}

size = size + 10 rechnet mit dem alten Wert und merkt sich den neuen: Aus 10 wird 20, aus 20 wird 30.

Aufgabe 12Eine eckige SpiraleÜbung

Zeichne eine eckige Spirale aus 20 Linien: die erste 10 Schritte lang, jede weitere 10 Schritte länger als die davor, und nach jeder Linie eine Drehung um 90 Grad nach links.

forward 100back 100left 90right 90
Tipp

Eine Variable merkt sich, wie lang die nächste Linie wird. Sie beginnt bei 10.

Nächster Tipp

In der Schleife: so weit vorwärts, wie die Variable sagt, 90 nach links, und dann die Variable um 10 größer machen.

Aufgabe 12Eine eckige SpiraleÜbung

Zeichne eine eckige Spirale aus 20 Linien: die erste 10 Schritte lang, jede weitere 10 Schritte länger als die davor, und nach jeder Linie eine Drehung um 90 Grad nach links.

forward(100)back(100)left(90)right(90)
Tipp

Eine Variable merkt sich, wie lang die nächste Linie wird. Sie beginnt bei 10.

Nächster Tipp

In der Schleife: so weit vorwärts, wie die Variable sagt, 90 nach links, und dann die Variable um 10 größer machen.

Aufgabe 12Eine eckige SpiraleÜbung

Zeichne eine eckige Spirale aus 20 Linien: die erste 10 Schritte lang, jede weitere 10 Schritte länger als die davor, und nach jeder Linie eine Drehung um 90 Grad nach links.

forward(100)back(100)left(90)right(90)
Tipp

Eine Variable merkt sich, wie lang die nächste Linie wird. Sie beginnt bei 10.

Nächster Tipp

In der Schleife: so weit vorwärts, wie die Variable sagt, 90 nach links, und dann die Variable um 10 größer machen.

Vermutung 13Ein Grad mehr

In deiner Spirale dreht sich die Schildkröte um 90 Grad. Was passiert, wenn sie sich stattdessen um 91 Grad dreht?

Ein Grad mehr

Hier geht es weiter, sobald du deine Antwort oben abgegeben hast.

Bei 90 Grad liegt jede Ecke genau über einer Ecke von vorher. Bei 91 Grad ist jede Ecke um ein Grad weiter gedreht als die davor; nach vielen Ecken werden daraus viele Grad, und die Arme der Spirale biegen sich zu einem Wirbel. Kleine Änderungen, die sich wiederholen, werden groß.

Ausprobieren: Lass deine Spirale mit 100 statt 20 Linien laufen und probier als Drehung 89, 91, 120, 121 und 144. Achte darauf, in welche Richtung sich die Arme drehen und wie viele Arme es sind.

6. Sterne

Aufgabe 14Ein SternKnobelei

Zeichne den Stern mit fünf Zacken, ohne den Stift abzusetzen: fünf Linien, jede 200 Schritte lang.

forward 100back 100left 90right 90
Tipp

Zeichne den Stern mit dem Finger auf dem Tisch nach, ohne abzusetzen. Wie oft drehst du dich dabei ganz herum, bis du wieder in die Richtung vom Anfang schaust?

Nächster Tipp

Zweimal: 720 Grad, auf fünf Spitzen verteilt.

Nächster Tipp

144 Grad nach rechts an jeder Spitze. Nach links wird der Stern gespiegelt.

Aufgabe 14Ein SternKnobelei

Zeichne den Stern mit fünf Zacken, ohne den Stift abzusetzen: fünf Linien, jede 200 Schritte lang.

forward(100)back(100)left(90)right(90)
Tipp

Zeichne den Stern mit dem Finger auf dem Tisch nach, ohne abzusetzen. Wie oft drehst du dich dabei ganz herum, bis du wieder in die Richtung vom Anfang schaust?

Nächster Tipp

Zweimal: 720 Grad, auf fünf Spitzen verteilt.

Nächster Tipp

144 Grad nach rechts an jeder Spitze. Nach links wird der Stern gespiegelt.

Aufgabe 14Ein SternKnobelei

Zeichne den Stern mit fünf Zacken, ohne den Stift abzusetzen: fünf Linien, jede 200 Schritte lang.

forward(100)back(100)left(90)right(90)
Tipp

Zeichne den Stern mit dem Finger auf dem Tisch nach, ohne abzusetzen. Wie oft drehst du dich dabei ganz herum, bis du wieder in die Richtung vom Anfang schaust?

Nächster Tipp

Zweimal: 720 Grad, auf fünf Spitzen verteilt.

Nächster Tipp

144 Grad nach rechts an jeder Spitze. Nach links wird der Stern gespiegelt.

Die Schildkröte, die über den Bildschirm läuft, ist über 50 Jahre alt. Erfunden wurde sie für Logo, eine Programmiersprache, mit der Kinder programmieren lernen sollten; die erste Schildkröte war ein Roboter auf dem Fußboden.

Schwarzweißfoto: Seymour Papert mit langen Locken und Vollbart an einem Tisch, vor ihm ein runder Roboter unter einer durchsichtigen Kuppel und auf dem Papier eine Zeichnung aus geraden Linien.

Seymour Papert (1928–2016), Mathematiker aus Pretoria, ab 1963 am MIT. 1967 entwickelte er mit Wally Feurzeig und Cynthia Solomon die Programmiersprache Logo, mit der Kinder spielerisch Probleme lösen. Die erste Schildkröte von 1969 war ein Roboter, der über den Boden fuhr und mit einem kleinen Stift zeichnen konnte; auf dem Foto steht einer vor ihm. Später lief sie über den Bildschirm, so wie hier.

Was er dabei über Kinder und das Lernen herausfand, schrieb er 1980 in seinem Buch »Mindstorms«.

Foto: Matematicamente.it, CC BY-SA 3.0, zugeschnitten (Wikimedia Commons)

Mindstorms, Seymour Papert, 1980. Das Buch, in dem Papert beschreibt, wie Kinder mit der Schildkröte lernen: Sie spielen selbst Schildkröte, laufen ein Quadrat ab und schreiben dann auf, was sie getan haben.

7. Kreise und Federn

Einen echten Kreis kann die Schildkröte nicht zeichnen, nur gerade Linien. Aber ein Vieleck mit vielen Ecken sieht aus wie ein Kreis, wenn seine Seiten kurz genug sind. Wie lang, verrät der Umfang: Ein Kreis mit dem Radius r ist 2 · π · r lang, und π ist ungefähr 3,14.

Aufgabe 15Ein KreisÜbung

Schreib eine Funktion circle(radius), die einen Kreis mit dem Radius radius zeichnet: ein Vieleck mit 36 Ecken, dessen Seiten zusammen so lang sind wie der Umfang des Kreises, 2 · π · radius. Die Schildkröte fängt unten am Kreis an und läuft links herum.

forward 100back 100left 90right 90
Tipp

Ein Vieleck mit 36 Ecken: 36-mal ein Stück vorwärts und 10 Grad nach links, denn 36 · 10 = 360.

Nächster Tipp

Ein Stück ist der Umfang geteilt durch 36: 2 * π * radius / 36.

Nächster Tipp

π heißt in Ruby Math::PI.

Aufgabe 15Ein KreisÜbung

Schreib eine Funktion circle(radius), die einen Kreis mit dem Radius radius zeichnet: ein Vieleck mit 36 Ecken, dessen Seiten zusammen so lang sind wie der Umfang des Kreises, 2 · π · radius. Die Schildkröte fängt unten am Kreis an und läuft links herum.

forward(100)back(100)left(90)right(90)
Tipp

Ein Vieleck mit 36 Ecken: 36-mal ein Stück vorwärts und 10 Grad nach links, denn 36 · 10 = 360.

Nächster Tipp

Ein Stück ist der Umfang geteilt durch 36: 2 * π * radius / 36.

Nächster Tipp

π heißt in Python math.pi; dafür steht import math oben.

Aufgabe 15Ein KreisÜbung

Schreib eine Funktion circle(radius), die einen Kreis mit dem Radius radius zeichnet: ein Vieleck mit 36 Ecken, dessen Seiten zusammen so lang sind wie der Umfang des Kreises, 2 · π · radius. Die Schildkröte fängt unten am Kreis an und läuft links herum.

forward(100)back(100)left(90)right(90)
Tipp

Ein Vieleck mit 36 Ecken: 36-mal ein Stück vorwärts und 10 Grad nach links, denn 36 · 10 = 360.

Nächster Tipp

Ein Stück ist der Umfang geteilt durch 36: 2 * π * radius / 36.

Nächster Tipp

π heißt in JavaScript Math.PI.

Aufgabe 16Eine FederÜbung

Zeichne eine Feder aus 30 Kreisen mit dem Radius 50: Nach jedem Kreis geht die Schildkröte mit gehobenem Stift 8 Schritte weiter nach rechts. Dein Kreis von eben hilft dabei.

forward 100back 100left 90right 90pen_uppen_downwidth 4
Tipp

Dreißigmal dasselbe: ein Kreis, dann ein kleines Stück weiter.

Nächster Tipp

Das Stück weiter geht mit gehobenem Stift, damit unten keine Linie entsteht.

Aufgabe 16Eine FederÜbung

Zeichne eine Feder aus 30 Kreisen mit dem Radius 50: Nach jedem Kreis geht die Schildkröte mit gehobenem Stift 8 Schritte weiter nach rechts. Dein Kreis von eben hilft dabei.

forward(100)back(100)left(90)right(90)pen_up()pen_down()width(4)
Tipp

Dreißigmal dasselbe: ein Kreis, dann ein kleines Stück weiter.

Nächster Tipp

Das Stück weiter geht mit gehobenem Stift, damit unten keine Linie entsteht.

Aufgabe 16Eine FederÜbung

Zeichne eine Feder aus 30 Kreisen mit dem Radius 50: Nach jedem Kreis geht die Schildkröte mit gehobenem Stift 8 Schritte weiter nach rechts. Dein Kreis von eben hilft dabei.

forward(100)back(100)left(90)right(90)penUp()penDown()width(4)
Tipp

Dreißigmal dasselbe: ein Kreis, dann ein kleines Stück weiter.

Nächster Tipp

Das Stück weiter geht mit gehobenem Stift, damit unten keine Linie entsteht.

Ausprobieren: Dreh die Schildkröte nach jedem Kreis ein wenig, um 1,5 Grad zum Beispiel, und gib jedem Kreis eine andere Farbe. Achte darauf, wie sich die Feder biegt, und wie viele Kreise sie braucht, bis sie einmal herum ist.

8. Dein eigenes Bild

Jetzt du: Was du in den Aufgaben gebaut hast, darfst du alles wiederverwenden. Gefällt dir dein Bild, kannst du es unter der Aufgabe einreichen: Deine Lehrkraft kann es dann in der Stunde zeigen, ohne deinen Namen.

Aufgabe 17Dein eigenes BildÜbung

Zeichne ein eigenes Bild, was immer du magst: einen Garten aus Blumen, ein Haus, einen Sternenhimmel, ein Muster. Was du in den Aufgaben gebaut hast, darfst du alles wiederverwenden.

forward 100back 100left 90right 90pen_uppen_downwidth 4
Tipp

Fang mit einer Figur an, die du schon kannst, und bau sie aus: eine Blume aus Sechsecken, eine Reihe von Sternen in verschiedenen Farben.

Nächster Tipp

Mit gehobenem Stift bringst du die Schildkröte an eine andere Stelle, bevor sie die nächste Figur zeichnet.

Aufgabe 17Dein eigenes BildÜbung

Zeichne ein eigenes Bild, was immer du magst: einen Garten aus Blumen, ein Haus, einen Sternenhimmel, ein Muster. Was du in den Aufgaben gebaut hast, darfst du alles wiederverwenden.

forward(100)back(100)left(90)right(90)pen_up()pen_down()width(4)
Tipp

Fang mit einer Figur an, die du schon kannst, und bau sie aus: eine Blume aus Sechsecken, eine Reihe von Sternen in verschiedenen Farben.

Nächster Tipp

Mit gehobenem Stift bringst du die Schildkröte an eine andere Stelle, bevor sie die nächste Figur zeichnet.

Aufgabe 17Dein eigenes BildÜbung

Zeichne ein eigenes Bild, was immer du magst: einen Garten aus Blumen, ein Haus, einen Sternenhimmel, ein Muster. Was du in den Aufgaben gebaut hast, darfst du alles wiederverwenden.

forward(100)back(100)left(90)right(90)penUp()penDown()width(4)
Tipp

Fang mit einer Figur an, die du schon kannst, und bau sie aus: eine Blume aus Sechsecken, eine Reihe von Sternen in verschiedenen Farben.

Nächster Tipp

Mit gehobenem Stift bringst du die Schildkröte an eine andere Stelle, bevor sie die nächste Figur zeichnet.

Bäume, ein Farnblatt und Kurven, die aus kleineren Kopien ihrer selbst bestehen, zeichnet die Schildkröte in Turtle: Bäume und Kurven, sobald du Funktionen kennst, die sich selbst aufrufen.