Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| lehrkraefte:snr:informatik:bruehl-2022 [2022/03/28 15:52] – [Lösungen der Test-Prüfung] Olaf Schnürer | lehrkraefte:snr:informatik:bruehl-2022 [2022/04/10 13:27] (current) – [1. Doppellektion (ca. 14. bzw. 15. Februar 2022)] Olaf Schnürer | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ~~NOTOC~~ | ||
| + | |||
| + | |||
| + | ====== Informatik: Algorithmen und Programme (1AFGsK und 1CFP) ====== | ||
| + | |||
| + | ===== 1. Doppellektion (ca. 14. bzw. 15. Februar 2022) ===== | ||
| + | * Vorstellung und Organisatorisches (Prüfung, Hausaufgaben: | ||
| + | * <wrap hi>Setze eine Bookmark auf die aktuelle Seite!</ | ||
| + | * [[lehrkraefte: | ||
| + | |||
| + | ===== 2. Doppellektion (ca. 21. bzw. 22. Februar 2022) ===== | ||
| + | * [[lehrkraefte: | ||
| + | |||
| + | ===== 3. Doppellektion (ca. 28. Februar bzw. 08. März 2022) ===== | ||
| + | (< | ||
| + | |||
| + | (Erster Besuch am Dienstag, 08. März) | ||
| + | |||
| + | * [[lehrkraefte: | ||
| + | |||
| + | |||
| + | ===== 4. Doppellektion (07. bzw. 15. März 2022) ===== | ||
| + | |||
| + | < | ||
| + | |||
| + | * [[lehrkraefte: | ||
| + | |||
| + | ===== 5. Doppellektion (ca. 21. bzw. 22. März 2022) ===== | ||
| + | |||
| + | (Zweiter Besuch am Dienstag, 22. März) | ||
| + | |||
| + | * [[lehrkraefte: | ||
| + | |||
| + | |||
| + | ===== 6. Doppellektion (ca. 28. bzw. 29. März 2022) ===== | ||
| + | |||
| + | * [[lehrkraefte: | ||
| + | * [[lehrkraefte: | ||
| + | * [[lehrkraefte: | ||
| + | * Fragen? | ||
| + | * [[lehrkraefte: | ||
| + | |||
| + | ===== Lösungen der Test-Prüfung ===== | ||
| + | <hidden $n$-Eck-Aufgabe> | ||
| + | <code python> | ||
| + | from gturtle import * | ||
| + | makeTurtle() | ||
| + | n = 5 | ||
| + | |||
| + | repeat n: | ||
| + | forward(50) | ||
| + | right(360/ | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden Berechne-Quadrat-von-Eingabe-Aufgabe> | ||
| + | <code python> | ||
| + | x = input(" | ||
| + | print(" | ||
| + | print(x) | ||
| + | print(" | ||
| + | print(x*x) | ||
| + | </ | ||
| + | </ | ||
| + | ===== 7. Doppellektion (ca. 04. bzw. 05. April 2022) ===== | ||
| + | * Prüfung (gute 45 Minuten) | ||
| + | * Feedback | ||
| + | * Erste Begegnung mit Rekursion (Animation, Pflanze - Sierpinski-Dreieck), | ||
| + | |||
| + | <hidden Schrittweise Hinführung zur Rekursion: Zuerst ast0, dann ast1, ast2> | ||
| + | <code python> | ||
| + | from gturtle import * | ||
| + | |||
| + | def ast0(s): | ||
| + | forward(s) | ||
| + | backward(s) | ||
| + | |||
| + | def ast1(s): | ||
| + | forward(s) | ||
| + | left(winkel) | ||
| + | ast0(s/2) | ||
| + | right(winkel) | ||
| + | ast0(s/2) | ||
| + | right(winkel) | ||
| + | ast0(s/2) | ||
| + | left(winkel) | ||
| + | backward(s) | ||
| + | |||
| + | |||
| + | def ast2(s): | ||
| + | forward(s) | ||
| + | left(winkel) | ||
| + | ast1(s/2) | ||
| + | right(winkel) | ||
| + | ast1(s/2) | ||
| + | right(winkel) | ||
| + | ast1(s/2) | ||
| + | left(winkel) | ||
| + | backward(s) | ||
| + | |||
| + | winkel = 25 | ||
| + | # Nette andere Winkel: 120, 60, 90 | ||
| + | makeTurtle() | ||
| + | backward(300) | ||
| + | ast2(300) | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <hidden ... und nun rekursiv (also ast(X,s) statt astX(s)) ... und dann gleich animiert> | ||
| + | <code python> | ||
| + | from gturtle import * | ||
| + | |||
| + | def ast(t, s): | ||
| + | if t == 0: | ||
| + | forward(s) | ||
| + | backward(s) | ||
| + | else: | ||
| + | forward(s) | ||
| + | left(winkel) | ||
| + | ast(t - 1, s/2) | ||
| + | right(winkel) | ||
| + | ast(t - 1, s/2) | ||
| + | right(winkel) | ||
| + | ast(t - 1, s/2) | ||
| + | left(winkel) | ||
| + | backward(s) | ||
| + | |||
| + | makeTurtle() | ||
| + | hideTurtle() | ||
| + | backward(300) | ||
| + | |||
| + | enableRepaint(False) | ||
| + | winkel = 0 | ||
| + | while winkel <= 120: | ||
| + | clear() | ||
| + | ast(9, 300) | ||
| + | repaint() | ||
| + | winkel = winkel + 1 | ||
| + | delay(50) | ||
| + | </ | ||
| + | </ | ||
| + | ===== Organisatorisches zur Prüfung ===== | ||
| + | |||
| + | Die Prüfung wird 45 Minuten dauern und findet im [[https:// | ||
| + | * Kommunikation mit anderen Personen ist verboten; insbesondere darf weder Teams noch Email noch Whatsapp o.ä. verwendet werden, Handys sind auszuschalten. | ||
| + | * Ihr dürft das Internet verwenden und insbesondere alle Webseiten, die ich erstellt habe. | ||
| + | * Ihr dürft alle Dokumente auf eurem Rechner verwenden, insbesondere Python-Programme. | ||
| + | * Ihr dürft auch Spickzettel, | ||
| + | |||
| + | Die einzige erlaubte Kommunikation ist: Wenn in einer Aufgabenstellung etwas unklar ist, dürft ihr mich fragen. | ||
| + | |||
| + | Damit ich überprüfen kann, dass ihr nicht unerlaubt kommuniziert, | ||
| + | |||
| + | **schrittaufzeichnung** | ||
| + | |||
| + | laufen, das bei jedem Maus-Klick und Fensterwechsel einen Screenshot abspeichert. Diese Screenshots werden in eine Zip-Datei gespeichert, | ||
| + | |||
| + | Wichtig: In diesem Programm bitte bei Einstellungen so einstellen, dass die letzten 999 Screenshots gespeichert weden. | ||
| + | |||
| + | **Bei Betrugsversuch (in der Regel unerlaubte Kommunikation) gibt es die Note 1.0, was die Promotion massiv erschweren dürfte.** | ||
| + | |||
| + | Wir machen am 28. bzw. 29. März einen Testlauf. | ||
| + | |||
| + | ==== Hinweise zur Vorbereitung ==== | ||
| + | |||
| + | * Zu jeder Doppellektion gibt es eine Web-Seite. Am Ende dieser Seite findet ihr Lösungsvorschläge zu den Aufgaben. | ||
| + | * Wenn ihr ein Programm nicht versteht, geht es im Einzelschrittverfahren durch! | ||
| + | * Schreibt euch wichtige Sachen auf Papier oder in ein Dokument auf eurem Computer, also als klassischen oder elektronischen Spickzettel. | ||
| + | * Ihr dürft ganze Python-Programme etc. auf eurem Computer verwenden. Oft geht es schneller, ein bestehendes Programm anzupassen oder Copy+Paste zu verwenden, als alles neu zu schreiben. | ||
| + | * Wenn ihr wollt, könnt ihr euch einige wenige Seiten ausdrucken, ABER: | ||
| + | * Das exzessive Ausdrucken von Unterlagen halte ich nicht für sinnvoll: Weder ist Copy-Paste beim Programmieren möglich noch könnt ihr per " | ||
| + | ===== Lernziele ===== | ||
| + | |||
| + | Du kennst die folgenden Begriffe und kannst sie erklären (und, wenn sinnvoll, voneinander unterscheiden): | ||
| + | |||
| + | * Algorithmus | ||
| + | * Flussdiagramm | ||
| + | * Computer-Programm | ||
| + | * Programmiersprache | ||
| + | * Python | ||
| + | * IDE, d. h. Integrated development environment, | ||
| + | * Tigerjython | ||
| + | * Variable (Name und Wert - was der Typ ist, müsst ihr nicht wissen) | ||
| + | * '' | ||
| + | * '' | ||
| + | * Funktion (Funktionsdefinition, | ||
| + | * '' | ||
| + | |||
| + | Du kannst Python-Programme schreiben, die | ||
| + | |||
| + | * [[lehrkraefte: | ||
| + | * [[lehrkraefte: | ||
| + | * [[lehrkraefte: | ||
| + | * '' | ||
| + | * [[lehrkraefte: | ||
| + | * [[lehrkraefte: | ||
| + | |||
| + | Ausserdem: | ||
| + | * Du kannst fehlerhafte Programme korrigieren, | ||
| + | * Du kannst Flussdiagramme in Python-Programme verwandeln. (wie z. B. in [[lehrkraefte: | ||
| + | |||
| + | |||
| + | Die Schwierigkeit wird in etwa auf dem Niveau der einfachen bis mittelschwierigen Aufgaben aus den Lektionen sein. | ||