Einführung in die Programmierung mit Python 2.7 (= Jython) mit der IDE TigerJython (v26/27)
1. Einführung – Erste Schritte mit TigerJython und der Turtle
- TigerJython kennenlernen
- Lies im Artikel über TigerJython den Abschnitt „Überblick und Hinweise“ und beachte die wichtigsten Informationen.
- Mache dich mit der Entwicklungsumgebung TigerJython vertraut. Überprüfe am Schulrechner die grundlegenden Einstellungen anhand der Abbildungen im Artikel.
- Für die Arbeit zu Hause sind insbesondere die Installationshinweise wichtig. Weitere Informationen zur Einrichtung findest du auch im Online-Material „Programmierkonzepte“.
- Im WvS-Artikel findest du außerdem zahlreiche Hinweise und Tipps, die du bei Bedarf zum Nachschlagen verwenden kannst.
- Unser Unterrichtsmaterial
- Wir verwenden das Skript von Tobias Kohn: Einführung in die Computer-Programmierung (August 2017).
- Alle folgenden Aufgaben mit Kapitel- oder Seitenangaben beziehen sich, wenn nicht anders angegeben, auf dieses Skript.
- Durcharbeiten bedeutet: Lies die Erklärungen, probiere die Programmbeispiele selbst aus und verändere sie gegebenenfalls, bis du verstanden hast, wie sie funktionieren. Nur Lesen reicht nicht!
- Erste Schritte mit der Turtle
- Arbeite die Seiten 7–9 des Skripts durch (Kapitel 2). Probiere die Programmbeispiele in TigerJython selbst aus.
- Verändere einzelne Anweisungen und beobachte, wie sich die Zeichnung dadurch verändert.
- Implementiere Aufgabe 2 auf Seite 9: Das Haus vom Nikolaus (DHvN). Überlege dir, in welcher Reihenfolge die Strecken gezeichnet werden müssen und welche Längen und Winkel benötigt werden.
- Teste dein Programm und speichere es unter einem sinnvollen Dateinamen ab.
- Bei Schwierigkeiten: Bearbeite zunächst Aufgabe 1 auf Seite 9 (zwei ineinanderliegende Quadrate), bevor du dich erneut am Haus vom Nikolaus versuchst.
- Weiterführende Aufgaben – Der Turtle neue Befehle beibringen
- Arbeite die Seiten 10–13 durch, insbesondere Kapitel 2.3 „Der Turtle Neues beibringen“.
- Dort lernst du, wie du eigene Befehle definieren kannst. Diese werden in Python als Funktionen bezeichnet.
- Erweitere dein DHvN-Programm um drei verschiedene Funktionen, die beim Aufruf jeweils ein Haus vom Nikolaus mit unterschiedlicher Seitenlänge zeichnen:
- dhvn1() – Seitenlänge 120
- dhvn2() – Seitenlänge 180
- dhvn3() – Seitenlänge 243
- Überlege anschließend: Was fällt dir beim Vergleich der drei Funktionen auf? Welche Teile sind gleich, welche unterscheiden sich?
2. Arbeiten mit der Turtle, Funktionen und Parametern
Benutze die Dokumentation aller verfügbaren Befehle der Bibliothek gturtle zum Nachschlagen oder Bearbeiten der Aufgaben!
- Zur Ergänzung und Vertiefung dient das Durcharbeiten der Kapitel 2.4 bis 2.6 im o.a. Script "August 2017".
- Konkret sind dort folgende Aufgaben zur Übung zu bearbeiten:
- Aufgaben 8., 9., 11. eigene Wahl von (a),(b) oder (c), 13., 14., 15.
- Erweiterung des DHvN um Funktionen und Parameter:
- Durcharbeiten des Arbeitsblattes Anweisungen-Funktionen-Parameter
- Als Ergänzung: das Kapitel 2.6 Modularität (Seite 18)
- Definiere eine Funktion dhvnSeite(seitengroesse), die ein DHvN mit beliebiger angegebener Seitengroesse zeichnet.
- Beispielaufruf: dhvnSeite(174) zeichnet ein DHvN mit der Seitengroesse des Quadrats von 174.
- Beachte dabei, dass die Groesse des Daches in der dazugehörigen Funktion entsprechend berechnet werden muss!
- Hier die Aufgaben mit einem höheren Schwierigkeitsgrad:
- Definiere eine Funktion dhvnHoehe(hoehe), die ein DHvN der angegebenen Gesamthöhe (also von der Grundseite des Quadrats bis zur Spitze des Rechtecks) zeichnet!
- Hinweis: hier ist (ein wenig) Mathematik der Geometrie und logisches Überlegen gefordert.
- Weitere (noch höhere) Herausforderung:
- Definiere eine Funktion mit zwei Parametern dhvn2(seitengroesse, dachwinkel), die ein DHvN mit beliebiger angegebener seitengroesse zeichnet und das Dach oben den angegebenen Winkel dachwinkel bekommt.
3. Funktionen mit (mehreren) Parameter
- Selbstständige Wiederholung der Inhalte aus Teil 1 und 2
- Durcharbeiten des Kapitels 2.9 "Mehrere Parameter" und Aufgaben 25., 26.
- Vergiss nicht alle Übungen, Ausarbeitungen, etc. auf einem USB-Stick zusätzlich zu sichern!
4. Arbeiten mit Variablen
- Lies im TigerJython-Online-Material "Programmierkonzepte" das Kapitel Variablen durch.
- Übe die Verwendung von Variablen und Parametern mit folgendem (unfertigem) Programmstück. Wenn alles richtig ist, zeichnet dieses Programm nach Eingabe der Seitenlänge und des Winkels das entsprechende Haus mit Dach.
- Bearbeite von den vier Aufgaben des Kapitels zwei deiner Wahl.
- Für noch Schnellere:
Ergänze dein HvN-Programm um Variablen. Ersetze somit die notwendigen Berechnungen so, dass diese nur einmal durchgeführt werden, das Ergebnis in einer Variable gespeichert wird und dann diese Variable im weiteren Programmablauf benutzt wird (vgl. die Übung oben).
5. Vorübungen zu Kontrollstrukturen - EVA-Prinzip und Dialoge in TigerJython
- Zur Erinnerung: was steckt hinter dem EVA-Prinzip?
- Arbeitsblatt zu EVA-Prinzip und Dialoge in Tigerjython sowie erste Version des BMI-Programms
- Dokumentation zu Dialogen in TigerJython
6. Arbeiten mit der Kontrollstruktur Verzweigung (Selektion) - Einstieg über BMI
- Im TigerJython Online Material "Programmierkonzepte" das Kapitel Selektion(Link ist extern) durchlesen und verstehen.
- Probiere die im Text genannten Beispiele aus. Dies soll zum Verständnis beitragen.
- Ergänze dein BMI Programm aus Kapitel 5 um eine erweiterte Ausgabe / Rückmeldung für den Benutzer.
- Implementiere für das BMI-Programm eigene Erweiterungen deiner Wahl. Speichere dieses mit einem neuen Namenszusatz ab (z.B. bmi-von-name-version-02.py)
7. Hintergrundwissen zu Struktogrammen
- Ziele: ihr sollt Struktogramme lesen und verstehen können und diese in Python-Quelltext übertragen können.
- Lies dazu die Informationen zu Algorithmen und deren Umsetzung in Struktogramme (im Anhang)
8. Die Kontrollstruktur Wiederholung (Schleife) - while in Python - Beispiel Zahlenraten
Aufgaben
- Das Konzept der Schleife (Wiederholung von Anweisungen) (Kap 3.6.3 bei infschule.) durcharbeiten.
- Implementiere in Python das erste Beispiel zum Zahlenratens nach dem gegebenen Struktogramm. Hinweis: Aufgabe 2 bezieht sich schon auf die erweiterte Version (vgl. 3.) und braucht hier nicht bearbeitet werden!
- Implementiere in Python in einer neuen Datei (Versionierung!) die erweiterte Version zum Zahlenraten.
- Erweitere dein Programm aus 2. und 3. um Vorgaben aus der PDF-Datei "Zahlenraten Erweiterung" (siehe Anlage). Die (Sterne) geben den Schwierigkeitsgrad an. Je mehr Sterne, umso schwieriger wird die Erweiterung eingeschätzt, vergleichbar zu Turnübungen, die ebenfalls einen bestimmten Schwierigkeitsgrad bekommen. Du solltest alle (*)-Erweiterung implementieren. Die (**)-Erweiterungen sind für eine bessere Note gedacht. Top wären dann als Sahnehäubchen die (***)-Erweiterungen oder eigene sinnvolle Erweiterungen. Eigene Erweiterungen müssen nicht unbedingt besonders schwierig sein, sondern sollten das Spiel sinnvoll unterstützen.
- Als Hilfestellung für den Computerspieler dient die geZIPte Python-Programmvorlage (siehe Anhang).
- Als Hilfestellung zum Intervallhalbierungsverfahren dient die PDF-Datei dazu (siehe Anhang).
- Falls die Logarithmus-Funktion benötigt wird, auch diese hat Python 2.7 dabei:
- import math # wir benötigen die math-Bibliothek
- # vgl. u.a. https://www.w3schools.com/python/ref_math_log.asp
- print (math.log(19) ) # natürlicher Logarithmus (Basis e)
- print (math.log(19, 2) ) # Logarithmus zur Basis 2
- print (math.log(19, 10) ) # Logarithmus zur Basis 10
8.1. *NEU* Kleiner Wissentest zu Kontrollstrukturen *NEU*
9. Datenstruktur Liste
Ziel: Vertiefung der Kenntnisse zur Datenstruktur Liste in Python
- Auf inf-schule im Kapitel "Datenstruktur Liste"(Link ist extern) die Abschnitte 14.1 und 14.2 durchlesen und ggf. zum besseren Verständnis die im Kapitel enthaltenen (interaktiven) Aufgaben durcharbeiten.
- Bearbeite die Aufgaben 1 bis 6. des Kapitels 14.4 "Übungen"(Link ist extern).
- Für Schnelle: wie liesse sich eine Funktion primfaktorzerlegung realisieren, die eine natürliche Zahl als Parameter bekommt und eine Liste der Primfaktoren dieser Zahl (vgl. die o.a. Aufgaben) zurückgibt? Einbau in die o.a. Programme, wenn sinnvoll (z.B. der Benutzer kann eine Zahl eingeben und bekommt dann die Primzahlfaktorendarstellung). Abspeichern als neue Version!
- Weiter zu einer Beispielanwendung mit Listen (Funktionsplot)
9.1. *NEU* Interaktives Arbeitsblatt zu Listen *NEU*
10. Kleines Softwareprojekt mit der lunarlander-API
- Ziel: Durchführen eines kleines Softwareprojekts auf Grundlage einer vorgegebenen API zum Erstellen eines in TigerJython lauffähigen Version eines LunarLander-Spieles.
- Die Startseite für das Material zur LunarLander API.
- Arbeite zuerst das TUTORIAL (6 Schritte) durch und danach das PFLICHTPROGRAMM.
- Hier geht es zur KÜR-Aufgabe für die LunarLander API.
| Anhang | Größe |
|---|---|
| 139.34 KB | |
| 174.66 KB | |
| 67.24 KB | |
| 154.11 KB | |
| 176.94 KB | |
| 118.45 KB | |
| 157.32 KB | |
| 1.13 KB | |
| 83.1 KB |
