~~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)
* Setze eine Bookmark auf die aktuelle Seite! - 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) =====
(01. März 2022 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) =====
14. März entfällt
* [[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 =====
from gturtle import *
makeTurtle()
n = 5
repeat n:
forward(50)
right(360/n)
x = input("Gib eine Zahl ein!")
print("Das Quadrat von")
print(x)
print("ist")
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), siehe Programme in den folgenden Ausklapp-Boxen.
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)
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://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.