Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:bruehl-2022 [2022/04/04 12:39] – [Klasse 1a: Prüfung] Olaf Schnürerlehrkraefte: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: vermutlich meist ein Computerprogramm als Abgabe - eventuell wird man damit bereits in der Doppellektion fertig; eventuelle Nacharbeit, falls es zu schnell war; Fragen? Fragen! auch gerne per Email) 
 +  * <wrap hi>Setze eine Bookmark auf die aktuelle Seite!</wrap> - Materialien zum Kurs werden hier bereitgestellt.
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:algorithmen|Algorithmen und erste Schritte in Python (und Tigerjython)]]
 +
 +===== 2. Doppellektion (ca. 21. bzw. 22. Februar 2022) =====
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:ein-und-ausgabe-variablen|Ein- und Ausgabe, Variablen]]
 +
 +===== 3. Doppellektion (ca. 28. Februar bzw.  08. März 2022) =====
 +(<del>01. März 2022</del> entfällt) 
 +
 +(Erster Besuch am Dienstag, 08. März)
 +
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:variablen-2|Variablen sinnvoll einsetzen und erste Schritte mit dem Roboter]]
 +
 +
 +===== 4. Doppellektion (07. bzw. 15. März 2022) =====
 + 
 +<del>14. März entfällt</del>
 +
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:auswahl|if-then-else-Selektion]]
 +
 +===== 5. Doppellektion (ca. 21. bzw. 22. März 2022) =====
 +
 +(Zweiter Besuch am Dienstag, 22. März)
 +
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:funktionen|Funktionen]]
 +
 +
 +===== 6. Doppellektion (ca. 28. bzw. 29. März 2022) =====
 + 
 +  * [[lehrkraefte:snr:informatik:bruehl-2022#organisatorisches_zur_pruefung|Organisatorisches zur Prüfung und Hinweise zur Vorbereitung]]
 +  * [[lehrkraefte:snr:informatik:bruehl-2022#lernziele|Lernziele oder was bei der Prüfung abgefragt wird]] 
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:aaaa|Test des Prüfungsformats]]
 +  * Fragen?
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:schleifen|Schleifen]] 
 +
 +===== Lösungen der Test-Prüfung =====
 +<hidden $n$-Eck-Aufgabe>
 +<code python>
 +from gturtle import *
 +makeTurtle()
 +n = 5
 +
 +repeat n:
 +    forward(50)
 +    right(360/n)
 +</code>
 +</hidden>
 +
 +<hidden Berechne-Quadrat-von-Eingabe-Aufgabe>
 +<code python>
 +x = input("Gib eine Zahl ein!")
 +print("Das Quadrat von")
 +print(x)
 +print("ist")
 +print(x*x)
 +</code>
 +</hidden>
 +===== 7. Doppellektion (ca. 04. bzw. 05. April 2022) =====
 +  * Prüfung (gute 45 Minuten)
 +  * Feedback
 +  * Erste Begegnung mit Rekursion (Animation, Pflanze - Sierpinski-Dreieck), siehe Programme in den folgenden Ausklapp-Boxen.
 +
 +<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)
 +</code>
 +</hidden>
 +
 +<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)
 +</code>
 +</hidden>
 +===== Organisatorisches zur Prüfung =====
 +
 +Die Prüfung wird 45 Minuten dauern und findet im [[https://www.deutschlandfunknova.de/beitrag/bei-open-book-klausuren-sind-hilfsmittel-erlaubt-ueber-fairness-und-wie-sie-das-lernen-veraendern|"Open book"]]-Format statt. Dies bedeutet:
 +  * 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, Blätter und andere schriftliche Unterlagen mitbringen.
 +
 +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, lasst ihr während der Klausur das Windows-Programm 
 +
 +**schrittaufzeichnung** 
 +
 +laufen, das bei jedem Maus-Klick und Fensterwechsel einen Screenshot abspeichert. Diese Screenshots werden in eine Zip-Datei gespeichert, die am Ende der Klausur abzugeben ist.
 +
 +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 "digitaler Suchfunktion" nach einem Begriff suchen. Überdies sind alle nicht verwendeten Unterlagen umweltschädliche Papierverschwendung.
 +===== 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, Integrierte Entwicklungsumgebung
 +  * Tigerjython
 +  * Variable (Name und Wert - was der Typ ist, müsst ihr nicht wissen) 
 +  * ''repeat''-Schleife
 +  * ''if''-''else''-Selektion
 +  * Funktion (Funktionsdefinition, Funktionsaufruf, Parameter = Übergabewert)
 +  * ''while''-Schleife
 +
 +Du kannst Python-Programme schreiben, die
 +
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:algorithmen#erste_schritte_in_tigerjython|Zeichnungen mit der Turtle erstellen]] (auch Farbwechsel, Stiftdicke, auch ''repeat'').
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:ein-und-ausgabe-variablen|mit Variablen (deren Wert zahlen sind) rechnen, Eingabe und Ausgabe]] (''input'', ''print'').
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:variablen-2|Variablen sinnvoll einsetzen]] (Roboterwissen wird nicht abgefragt).
 +  * ''if''-''else''-[[lehrkraefte:snr:informatik:bruehl-2022:auswahl|Selektion verwenden]] (etwa [[lehrkraefte:snr:informatik:bruehl-2022:auswahl#aufgabe_5_quiz|Quiz]]).
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:funktionen|Funktionen (ohne oder mit einem Parameter) definieren und sinnvoll verwenden.]] (Die Definition von Funktionen mit Rückgabewert wurde nicht besprochen und wird deshalb nicht verlangt)
 +  * [[lehrkraefte:snr:informatik:bruehl-2022:schleifen|''while''-Schleifen verwenden.]]
 +
 +Ausserdem:
 +  * Du kannst fehlerhafte Programme korrigieren, vgl. eine Frage in [[lehrkraefte:snr:informatik:bruehl-2022:algorithmen:quiz|diesem Quiz]]
 +  * Du kannst Flussdiagramme in Python-Programme verwandeln. (wie z. B. in [[lehrkraefte:snr:informatik:bruehl-2022:variablen-2#aufgabe_2_algorithmus_bzw_flussdiagramm_in_python-programm_uebersetzen|dieser Aufgabe]]; das Flussdiagramm, das wir in der Aufgabe zuvor erstellt haben findest du unter [[lehrkraefte:snr:informatik:bruehl-2022:variablen-2#loesungsvorschlaege|Lösungsvorschläge]].
 +
 +
 +Die Schwierigkeit wird in etwa auf dem Niveau der einfachen bis mittelschwierigen Aufgaben aus den Lektionen sein.