lehrkraefte:snr:informatik:bruehl-2022:algorithmen

Algorithmen und erste Schritte in Python (und Tigerjython)

Einzel- oder Partnerarbeit: Bearbeite die Aufgabe Haus vom Nikolaus auf dem Arbeitsblatt (pdf).

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

hier klickst: Weitere Beispiele:

hier klickst: Weitere Beispiele:

  • Rezepte: Wie kocht man Spaghetti mit Tomatensosse? Wie bäckt man einen Schokoladenkuchen?
  • Bastelanleitungen: Wie baut man einen Schrank? Wie strickt man einen Pullover? Wie näht man ein Kleid?
  • Wegbeschreibungen: Wie geht es hier zum Bahnhof?
  • Behandlungsanweisungen: Wie operiert man einen Bänderriss im Knie?
  • Problemlösungen: Wie löst man Rubiks Zauberwürfel?

Algorithmen kann man durch sogenannte Flussdiagramme veranschaulichen:

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.

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.

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 zu forward(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 zu right(90) (und analog für andere Winkel).
  • Der Befehl Drehe dich um 135 Grad nach links. wird zu left(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() und showTurtle() und speed(2000)
  • penUp() und penDown()
  • backward(100)
  • home()
  • dot(10) und openDot(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() und penDown).
  • 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

Python-Programm zum Haus des Nikolaus

Python-Programm zum Haus des Nikolaus

from gturtle import *
makeTurtle()
 
right(90)
forward(50)
left(90)
forward(100)
right(45)
forward(70.7)
right(90)
forward(70.7)
right(135)
forward(100)
left(135)
forward(141.4)
left(135)
forward(100)
left(135)
forward(141.4)
left(135)
forward(150)
left(90)

1)
oder genauer einen Dialekt davon, nämlich Jython, erweitert um die repeat-Struktur, wenn ich es recht verstehe
  • lehrkraefte/snr/informatik/bruehl-2022/algorithmen.txt
  • Last modified: 2022/04/10 15:28
  • by Olaf Schnürer