3. Einführung in die Programmierung mit Python 2.7 (=Jython) mit der IDE TigerJython v22/23 (op)

Einführung in die Programmierung mit Python 2.7 (=Jython) mit der IDE TigerJython (v22/23)

1. Einführung

  1. Den Artikel über TigerJython zum Teil durchlesen und beachten. Für die Arbeit zu Hause sind insbesondere die Installationshinweise wichtig. Für die generelle Arbeit sind in den Bildern zum Artikel viele wichtige grundlegende Erläuterungen und Hinweise zu finden. Diese bitte auch am Schulrechner nochmal überprüfen bzw. einstellen. Dann TigerJython zu Hause und/oder im Computerraum der Schule ausprobieren!
    • Im Kapitel 1.1 Einrichtung beim Online-Material Programmierkonzepte findest du eine kurze Einführung zu TigerJython und Hinweise zur Installation.
  2. Alle Aufgaben mit Kapitel- oder Seitenangaben beziehen sich, wenn nicht anders angegeben, auf  das im obigen Artikelaufgeführte Script von Tobias Kohn: Einführung in die Computer-Programmierung August 2017
  3. Folgende Aufgaben im Script von Tobias Kohn: Einführung in die Computer-Programmierung August 2017 bearbeiten:
    • Durcharbeiten der Seiten 1 - 9 (Kapitel 1 und Teil von Kapitel 2).
    • Aufgabe 2. ( S. 9) Das Haus vom Nikolaus (DHvN)
    • Durcharbeiten der Seiten 10 - 13, insbesondere Kap. 2.3 "Der Turtle Neues beibringen"
    • Erweiterung der Aufgabe 2. (DHvN): Schreibe drei verschiedene Funktionen (dhvn1, dhvn2, dhvn3), die beim Aufruf das HvN mit unterschiedlichen Seitenlängen zeichnen.dhvn1: Seitenlänge 120dhvn2: Seitenlänge 180dhvn3: Seitenlänge 243

2. Arbeiten mit der Turtle

  1. Zur Ergänzung und Vertiefung dient das Durcharbeiten der Kapitel 2.4 bis 2.6 im o.a. Script "August 2017".
    • Konkret sind folgende Aufgaben zu bearbeiten:
    • Aufgaben 8., 9., 11. eigene Wahl von (a),(b) oder (c), 13., 14., 15.
  2. Erweiterung des DHvN um Funktionen und Parameter:
  3. Definiere eine Funktion dhvnSeite(seitengroesse), die ein DHvN mit beliebiger angegebener Seitengroesse zeichnet.
    • Beispielaufruf: dhvn(174) zeichnet ein DHvN mit der Seitengroesse des Quadrats von 174.
    • Beachte dabei, dass die Groesse des Daches entsprechend in der dazugehörigen Funktion berechnet werden muss!
  4. Als Herausforderung (nur für helle Köpfe!):
    • 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.
  5. Weitere (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 angebenen Winkel dachwinkel bekommt.

3. Funktionen mit (mehreren) Parameter

  1. Selbsständige Wiederholung der Inhalte aus Teil 1 und 2
  2. Durcharbeiten des Kapitels 2.9 "Mehrere Parameter" und Aufgaben 25., 26.
  3. Vergiss nicht alle Übungen, Ausarbeitungen, etc. auf einem USB-Stick zusätzlich zu sichern!

4. Arbeiten mit Variablen

  1. Lies im TigerJython Online Material "Programmierkonzepte" das Kapitel Variablen durch.
  2. Ü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.
  3. Bearbeite von den vier Aufgaben des Kapitels zwei deiner Wahl.
  4. 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

  1. Im TigerJython Online Material "Programmierkonzepte" das Kapitel Selektion(Link ist extern) durchlesen und verstehen.
  2. Probiere die im Text genannten Beispiel aus.Dies soll zum Verständnis beitragen.
  3. Ergänze dein BMI Programm aus 5. um eine erweiterte Ausgabe / Rückmeldung für den Benutzer. 
  4. 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

  1. Ziele: ihr sollt Struktogramme lesen und verstehen können und diese in Python-Quelltext übertragen können.
  2. Lies dazu die Informationen zu Algorithmen und deren Umsetzung in Struktogramme (im Anhang)
  3. Die Übersicht fasst die zweite Seite der o.a. Informationen nochmal zusammen (im Anhang)

8. Die Kontrollstruktur Wiederholung (Schleife) - while in Python - Beispiel Zahlenraten

Aufgaben

  1. Das Konzept der Schleife (Wiederholung von Anweisungen)  (Kap 3.6.3 bei infschule.) durcharbeiten.
  2. 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!
  3. Implementiere in Python in einer neuen Datei (Versionierung!) die erweiterte Version zum Zahlenraten.
  4. 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.aspprint math.log(19) # gibt den natürlichen Logarithmus der Zahl 19 zur Basis e zurückprint math.log(19,2) # gibt den Logarithmus der Zahl 19 zur Basis 2 zurückprint math.log(19,10) # gibt den  Logarithmus der Zahl 19 zur Basis 10 zurück

9. Datenstruktur Liste

Aufgaben

  1. Ziel: Vertiefung der Kenntnisse zur Datenstruktur Liste in Python

  2. 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.
  3. Bearbeite die Aufgaben 1 bis 6. des Kapitels 14.4 "Übungen"(Link ist extern).
  4. 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!
  5. Weiter zu einer Beispielanwendung mit Listen (Funktionsplot)