Algorithmen und erste Schritte in Python (und Tigerjython)
Einzel- oder Partnerarbeit: Bearbeite die Aufgabe Haus vom Nikolaus auf dem Arbeitsblatt (pdf).
Algorithmen
Der Begriff Algorithmus meint einfach eine Folge von Anweisungen, also eine Handlungsvorschrift.
Die Anweisungsfolge zum Zeichnen des Hauses vom Nikolaus ist ein Beispiel eines Algorithmus.
Überlege dir weitere Beispiele, bevor du
Flussdiagramm
In der Informatik meint man mit Algorithmen Handlungsanweisungen, die man einem Computer beibringen kann.
Der Name Algorithmus kommt übrigens von dem persischen Gelehrten Al-Chwarizmi, der um 800 in Bagdad gelehrt hat.
Grober Überblick über die Themen bis Ostern
Das Diagramm links illustriert grob, womit wir uns beschäftigen: Wir wollen lernen, wie man mit der Programmiersprache Python Computer-Programme schreibt und so dem Computer beibringt, Algorithmen auszuführen.
In den nächsten Lektionen werden wir die farbig hinterlegten Konstrollstrukturen in Python kennenlernen: In unserem Kuchenback-Programm sind die entsprechenden Strukturen farbig markiert und vermitteln so hoffentlich einen ersten Eindruck.
Erste Schritte in Tigerjython
Wir lernen die Programmiersprache Python1) bzw. genauer deren Variante Tigerjython kennen.
Programmieren schreiben wir in der IDE Tigerjython. Eine IDE ist ein Editor mit Zusatzfunktionen, etwa zum Starten des Programms oder zum Debuggen, d. h. zur Fehlersuche. IDE bedeutet Integrated Development Environment, also Integrierte Entwicklungsumgebung.
- Installiere Tigerjython von hier.
- Öffne Tigerjython.
Ich gebe erste Erklärungen: Editor (kopieren wie üblich), abspeichern.
Nimm deine Lösung der Haus-vom-Nikolaus-Aufgabe.
Übersetze deine Befehle der Reihe nach wie folgt in Python und schreibe sie in den Editor (jeder neue Befehl kommt in eine neue Zeile, ohne Leerzeichen am Zeilenbeginn):
- Der Befehl
Gehe 100 Meter vorwärts.
wird zuforward(100)
(und analog für andere Längenangaben). Achtung: Statt 141,1 muss man 141.1 schreiben, also Punkt statt Komma. - Der Befehl
Drehe dich um 90 Grad nach rechts.
wird zuright(90)
(und analog für andere Winkel). - Der Befehl
Drehe dich um 135 Grad nach links.
wird zuleft(135)
(und analog für andere Winkel).
Schreibe die folgenden beiden Zeilen ganz am Anfang in deinen Editor:
from gturtle import * makeTurtle()
Lass das Programm laufen (Button mit dem grünen Dreieck).
Sobald es fehlerfrei läuft, speichere es unter einem geeigneten Namen ab. (Erläuterungen zur Fehlersuche gebe ich gleich.)
- Wähle vernünftige Fensteranordnung auf Bildschirm: Etwa Tigerjython-Editor rechte Bildschirmhälfte, wenn das Zeichenfenster links aufgeht.
- Ihr dürft euch gerne gegenseitig helfen. Mein Tipp: Selbst tippen bzw. Maus verwenden - dann lernt man deutlich mehr, als wenn jemand anderes alles erledigt.
- Erklärung, wie man ein Programm schrittweise ablaufen lassen kann.
Hier ist ein relativ langes Python-Programm verlinkt. Öffne es in deinem Editor (per Copy-and-Paste oder per Abspeichern auf deinem Rechner und dann Datei → Öffnen im Menü des Editors).
Lass das Programm (schrittweise) laufen und lerne so die folgenden neuen Befehle kennen:
penWidth(10)
setPenColor(“red”)
hideTurtle()
undshowTurtle()
undspeed(2000)
penUp()
undpenDown()
backward(100)
home()
dot(10)
undopenDot(20)
- die
repeat
-Struktur zum Wiederholen
Du darfst gerne Herumspielen: Teile des Programms löschen, Zahlen verändern etc.! So lernt man viel!
Zum leichteren Erinnern von Befehlen wie makeTurtle
, penWidth
, setPenColor
, hideTurtle
etc.: Die Befehle starten stets mit einem Kleinbuchstaben und jedes “neue Wort” beginnt dann mit einem Grossbuchstaben.
Freiwillig: Wenn jemand eigenständig mehr Turtle-Befehle lernen will: Dokumentation Turtle-Grafik in einem Tutorial.
Hausaufgabe (die eventuell schon während der Lektion erledigt werden kann)
Schreibe ein Programm, das eine schöne Zeichnung deiner Wahl erstellt. Das Programm muss die folgenden Bedingungen erfüllen:
- Mindestens zwei verschiedene Farben werden verwendet (
setPenColor(…)
). - Mindestens zwei verschiedene Strichbreiten werden verwendet (
penWidth(…)
). - Der Zeichenstift wird mindestens einmal angehoben - die Zeichnung kann also nicht ohne Absetzen gezeichnet werden (
penUp()
undpenDown
). - Gerne sehe ich es, wenn mindestens eine
repeat
-Struktur verwendet wird. - Das Programm unterscheidet sich deutlich von deinem Haus-vom-Nikolaus-Programm und von dem obigen Beispielprogramm. Du darfst aber dein Haus-vom-Nikolaus-Programm ausbauen (Wolken, Bäume, Segelboot, …).
- Hoffentlich selbstverständlich: Das Programm ist nicht aus dem Internet kopiert.
Abgabe bis spätestens Sonntagabend 23:59 Uhr vor der nächsten Doppellektion über den folgenden Link:
Falls jemand eine Zeichenidee benötigt:
- irgendeine “Kinderzeichnung” - mit dickem Stift kann man auch leicht gefüllte Flächen zeichnen
- irgendeine abstrakte Zeichnung, beispielsweise Bild von Mondrian
- Drahtmodell eines Würfels
- eine der Aufgaben am Ende dieser Seite oder von einer anderen Seite dieses Tutorials
Lösungsvorschläge
Link zur Kursseite
repeat
-Struktur, wenn ich es recht verstehe