Schritt für Schritt vom Problem zur Lösung — und zur ersten eigenen Zeichnung mit TigerJython.
„Nimm zwei Eier, 250 ml Milch und 150 g Mehl. Rühre alles glatt. Erhitze die Pfanne mit etwas Butter. Gieße Teig hinein. Warte bis die Oberfläche fest ist. Wende den Pfannkuchen. Warte 30 Sekunden. Fertig." — Das ist ein Algorithmus. Präzise Schritte, klare Reihenfolge, ein Ende.
Stell dir vor, du erklärst jemandem zum ersten Mal den Weg zur Schule. „Geh links raus, zweite Straße rechts, an der Ampel geradeaus, Bus Linie 7 Richtung Zentrum, drei Stationen." — Wenn eine Anweisung fehlt oder unklar ist, landet die Person woanders. Genau wie bei einem Computerprogramm.
Du schlägst ein Wort im Wörterbuch nach: Aufschlagen in der Mitte, schauen ob der gesuchte Buchstabe vor oder nach der Mitte liegt, in der richtigen Hälfte erneut in der Mitte aufschlagen — und so weiter. Das ist kein Zufall, sondern ein durchdachter Algorithmus. Computer machen genau das — milliardenfach pro Sekunde.
Klicke auf eine Eigenschaft für mehr Details und Beispiele.
Jede Anweisung hat genau eine Bedeutung — kein Spielraum für Interpretationen.
forward(100) bewegt die Schildkröte exakt 100 Pixel — immer gleich.
Ein Algorithmus muss nach einer begrenzten Anzahl von Schritten zu einem Ende kommen.
Jede Anweisung muss von der ausführenden Person (oder Maschine) tatsächlich durchführbar sein.
repeat und kleinen Drehungen kein Problem.
Der Algorithmus liefert für alle gültigen Eingaben das richtige Ergebnis.
Dieser Kreislauf wiederholt sich — auch erfahrene Programmierer machen mehrere Runden!
Jedes TigerJython-Programm beginnt gleich: Wir sagen dem Computer, welche Werkzeuge wir brauchen — und rufen die Schildkröte auf die Bühne.
from gturtle import *
Lädt alle Schildkröten-Befehle. Muss in jedem Programm als erste Zeile stehen.
makeTurtle()
Öffnet das Zeichenfenster und platziert die Schildkröte in der Mitte — bereit zum Zeichnen.
forward(100)
Bewegt die Schildkröte 100 Pixel nach vorne und zieht dabei eine Linie.
from gturtle import * makeTurtle() forward(100)
Kopiere B1 in TigerJython. Ändere die 100 auf verschiedene Werte — z.B. 50, 200, 300. Was passiert? Schreibe auf, was die Zahl bedeutet.
right() und left()Die Schildkröte schaut immer in eine Richtung. Mit right() und left() dreht sie sich auf der Stelle — ohne einen Schritt zu machen.
right(90)
Dreht die Schildkröte 90° nach rechts (im Uhrzeigersinn). Sie bewegt sich nicht.
left(90)
Dreht die Schildkröte 90° nach links (gegen den Uhrzeigersinn).
from gturtle import * makeTurtle() forward(100) right(90) forward(80)
Schreibe ein Programm mit mindestens 3 forward()-Befehlen und 2 Drehungen. Probiere verschiedene Winkel aus. Was entsteht bei right(45)? Bei left(30)?
Ein Quadrat hat 4 gleiche Seiten und 4 rechte Winkel. Wir können jeden Schritt einzeln aufschreiben — das ist korrekt, aber aufwendig. Sieh selbst:
from gturtle import * makeTurtle() forward(100) right(90) forward(100) right(90) forward(100) right(90) forward(100) right(90)
Das Muster forward(100) / right(90) wiederholt sich exakt 4 Mal. Es muss eine bessere Lösung geben…
repeat — und warum Einrücken wichtig ist
repeat 4: sagt dem Computer: „Führe alles, was danach eingerückt steht, genau 4 Mal aus."
Das Einrücken (4 Leerzeichen) ist kein Stil — es ist Pflicht. Es zeigt, welche Zeilen zur Schleife gehören.
repeat 4:← Schleifenkopf forward(100)← gehört zur Schleife (4 Leerzeichen!) right(90)← gehört zur Schleifeforward(50)← nicht eingerückt → außerhalb der Schleifefrom gturtle import * makeTurtle() repeat 4: forward(100) right(90)
Kopiere B3 und B4 nacheinander in TigerJython. Beide zeichnen dasselbe. Welcher Code ist kürzer? Was passiert, wenn du in B4 die 4 auf 6 änderst — und warum?
Ein Sechseck hat 6 gleiche Seiten. Die Schildkröte muss sich insgesamt um 360° drehen — also pro Ecke: 360° ÷ 6 = 60°.
from gturtle import * makeTurtle() repeat 6: forward(100) right(60)
Ein Fünfeck hat 5 Seiten. Welchen Winkel brauchst du? Schreibe den Code mit repeat.
Was wäre, wenn du mit einer einzigen Zahl bestimmst, wie viele Ecken die Figur hat — und der Rest automatisch passt? Genau das machen Variablen möglich.
n = 7
Speichert die Zahl 7 unter dem Namen n. Ab jetzt steht n im ganzen Programm für 7.
600/n
Berechnet die Seitenlänge automatisch: je mehr Ecken, desto kürzer jede Seite.
360/n
Berechnet den Drehwinkel automatisch: 360° geteilt durch die Anzahl der Ecken.
from gturtle import * makeTurtle() n = 7 repeat n: forward(600/n) right(360/n)
repeat 7, forward(85.7), right(51.4°)
repeat 12, forward(50), right(30°)
Nur n ändern — alles andere passt sich automatisch an. Das ist die Stärke von Variablen.
Bei einem Stern überquert die Linie die Mitte. Statt 360/n verwendest du 720/n als Winkel. Probiere verschiedene ungerade Werte für n aus (5, 7, 9, 11…).
Eine Schleife kann eine andere Schleife enthalten. Das nennt man Verschachtelung. Die äußere Schleife läuft 12 Mal — und bei jedem Durchlauf zeichnet die innere Schleife ein ganzes n-Eck.
speed(-1)
Setzt die Zeichengeschwindigkeit auf Maximum — kein Warten mehr zwischen den Schritten.
hideTurtle()
Versteckt die Schildkröte am Ende — das fertige Muster sieht so aufgeräumter aus.
repeat 12:← äußere Schleife: 12 Durchläufe repeat n:← innere Schleife: zeichnet 1 n-Eck forward(600/n)← gehört zur inneren Schleife right(360/n)← gehört zur inneren Schleife right(30)← gehört zur äußeren Schleife (dreht für nächstes n-Eck)from gturtle import * makeTurtle() speed(-1) n = 8 repeat 12: repeat n: forward(600/n) right(360/n) right(30) hideTurtle()
Ändere in B7 den Wert von n (probiere 5, 7, 9) und den äußeren Drehwinkel right(30). Wann entsteht ein schönes Muster? Wann nicht? Schreibe deine Beobachtung auf.
back(), Farbe & StiftbreiteJetzt verlassen wir Formen und zeichnen echte Buchstaben. Dafür brauchen wir neue Befehle für Farbe, Dicke — und rückwärts fahren.
back(100)
Bewegt die Schildkröte rückwärts — in die entgegengesetzte Richtung, ohne sich zu drehen.
setPenWidth(6)
Setzt die Stiftdicke auf 6 Pixel. Dickere Linien wirken wie echte Buchstaben-Stämme.
setPenColor("#1D3557")
Setzt die Farbe mit einem Hex-Code. Den Hex-Code kannst du unten im Farb-Werkzeug auswählen.
from gturtle import * makeTurtle() setPenWidth(6) setPenColor("#1D3557") # Linker Stamm forward(100) back(50) # Querbalken right(90) forward(60) # Rechter Stamm left(90) forward(50) back(100)
penUp() und penDown()Beim Buchstaben E müssen wir die Schildkröte mehrmals versetzen, ohne eine Linie zu hinterlassen. Dafür heben wir den Stift an.
penUp()
Hebt den Stift an. Die Schildkröte bewegt sich weiter, zeichnet aber keine Linie.
penDown()
Senkt den Stift wieder. Ab jetzt hinterlässt jede Bewegung wieder eine Linie.
from gturtle import * makeTurtle() setPenWidth(6) # ── Buchstabe H ── setPenColor("#1D3557") forward(100) back(50) right(90) forward(60) left(90) forward(50) back(100) # ── Abstand zum E ── penUp() right(90) forward(25) left(90) penDown() # ── Buchstabe E ── setPenColor("#E63946") forward(100) back(100) right(90) forward(55) back(55) left(90) forward(50) right(90) forward(45) back(45) left(90) forward(50) right(90) forward(55)
Zeichne die ersten drei Buchstaben deines Vornamens mit der Schildkröte.
Jeder Buchstabe soll eine andere Farbe haben. Verwende setPenWidth(7) für alle.
Trenne die Buchstaben mit penUp() / penDown().
setPenColor()-Befehl direkt.
TigerJython akzeptiert Hex-Codes direkt: setPenColor("#E63946").
Wähle eine Farbe und kopiere den fertigen Befehl.
setPenColor("#E63946")
Hake ab, was du heute gelernt und geübt hast.
repeat in TigerJython schreiben.
setPenColor, setPenWidth und penUp/penDown verwenden.
penUp() in TigerJython?seite = 80?right(30) durch right(45) ersetzt?Klicke auf eine Karte, um die Definition zu sehen.
repeat n:).seite = 80.setPenColor("red").setPenWidth(5).Öffne TigerJython zuhause (webtigerjython.ethz.ch — kein Download nötig).
Verändere B5 (Stern-Muster) so, dass ein dir gefallenes Muster entsteht.
Schreibe dazu auf:
welche Zahlen du geändert hast, was sich verändert hat, und
einen Satz: „Mein Algorithmus zeichnet …"
Experimentiere auch mit setPenColor und setPenWidth.
Beschreibe einen Alltagsvorgang (Zähneputzen, Schulweg, Frühstück zubereiten) als Algorithmus — mindestens 6 Schritte, nummeriert, so präzise wie möglich. Kein Code — nur Sprache. Prüfe: Ist jeder Schritt eindeutig? Endet der Algorithmus?
„Wir beschreiben Algorithmen jeden Tag — ohne es zu merken."