Einführung in die Programmierung
Vorlesung
Dozent | Prof. Dr. Peter Thiemann | thiemann@info... |
Übungen | Hannes Saffrich | saffrich@info... |
Simon Ging | gings@info... |
Zeit | Di 10-12 Uhr c.t., Mi 12-13 Uhr c.t. |
Ort | Mit Einschränkung (s.u.) in Geb. 101, Hörsaal 00-026 und gleichzeitig Livestream (YouTube) mit Aufzeichnung |
Klausur
Die Klausur findet am Montag und Dienstag, den 21/22.2.2022, zwischen 9 und 18 Uhr in den Poolräumen der Werthmannstraße 4 bzw im Rechenzentrum statt. Jeder Prüfling erhält einen individuellen Termin, der ca. eine Woche vor der Prüfung bekanntgegeben wird.
Die Einteilung finden Sie in diesem Ilias Kurs. Innerhalb des Kurses finden Sie eine Gruppe (entweder "Rechenzentrum Beginn xxx" oder "Werthmannstraße 4 Beginn xxx"), deren Name Ihnen Ihren individuellen Prüfungsort und -termin angibt. Wenn Sie nicht auf den Kurs zugreifen können, sind Sie nicht zur Prüfung angemeldet oder es liegt ein Problem mit Ihrem Zugang vor. Zur Lösung dieses Problems beachten Sie bitte Frage 1 unter Fragen und Antworten zur Klausur
Bitte mitbringen: 3G-Nachweis, Studierendenausweis, Lichtbildausweis, FFP2-Maske, Uni/Ilias Accountnummer und Passwort
- Die Verwendung von Handy, Tablett o.ä. In den Prüfungsräumen betrachten wir als Täuschungsversuch. Diese Geräte müssen vor dem Betreten und bis zum Verlassen der Gebäude ausgeschaltet und nach Anweisung der Aufsicht verstaut sein.
- Sie können sich online mit der Klausurumgebung vertraut machen, die Sie auch in der Klausur erwarten wird. Eine Anleitung dazu ist im Chat zu finden.
Weitere Hinweise zur Klausur
- Für die Bearbeitung der Aufgaben haben Sie 120 Minuten Zeit.
- Es sind keine Hilfsmittel wie Skripte, Bücher, Notizen oder Taschenrechner erlaubt. Desweiteren sind alle elektronischen Geräte (wie z.B. Handys) auszuschalten. Ausnahme: Fremdsprachige Wörterbücher sind erlaubt.
- Falls Sie mehrere Lösungsansätze einer Aufgabe erarbeiten, markieren Sie deutlich, welcher gewertet werden soll. Die "Zielfunktion" darf nur einmal in der Abgabe definiert werden, alles andere muss auskommentiert oder gelöscht werden.
- Verwenden Sie Typannotationen um die Rückgabe- und Parameter-Typen Ihrer Funktion anzugeben. Fehlende Typannotationen führen zu Punktabzug.
- Bearbeiten Sie die einzelnen Aufgaben in den vorgegebenen Templates z.B. ex1_sequences.py. Falsch benannte Funktionen werden nicht bewertet. Neu erstellte Dateien werden nicht bewertet.
- Bei Bedarf können Sie weitere Module aus der Standardbibliothek importieren. Zum Lösen der Aufgaben ist dies aber nicht notwendig.
WICHTIG: Eingeschränkte Teilnahme an der Präsenzveranstaltung
Aktuell (Stand 13.10.2021) sind im Hörsaal maximal 150 Personen mit 3G und Maske zugelassen. Um dies zu gewährleisten, können wir Sie leider nur in den Hörsaal einlassen, wenn die Endziffer Ihrer Matrikelnummer bei dem Vorlesungstermin gelistet ist. Bei Veränderung der Voraussetzungen werden wir ggf. weitere Endziffern hinzunehmen oder wegnehmen.
Zur ersten Vorlesung sind nur Teilnehmer mit den Endziffern 1 und 2 zugelassen.
Bitte seien Sie fair! Wenn sich Teilnehmer mit anderen Endziffern einfinden, kann die Zahl von 150 Personen überschritten werden. Wir müssen den Zugang sperren, sobald sich 150 Personen im Hörsaal befinden.
Materialien
Die Vorlesung orientiert sich an der Informatik 1 Vorlesung des vorherigen Wintersemesters (Link).
Der Link zum Livestream wird jeweils am Vorabend der Vorlesung hier veröffentlicht.
Datum | Endziffer | Thema | Folien | Livestream | KV |
---|---|---|---|---|---|
Di, 19.10.2021 | 1,2 | Organisation | 00 (Bildschirm) | YouTube | X |
Grundlagen | 01 (Bildschirm) 01 (Handout) | Video (Rest 01) | |||
Mi, 20.10.2021 | 3,4 | Erste Schritte in Python | 02 (Bildschirm) 02 (Handout) | YouTube | X |
Di, 26.10.2021 | 5,6 | Werte, Typen, Variable und Ausdrücke | 03 (Bildschirm) 03 (Handout) | YouTube | X |
Mi, 27.10.2021 | 7,8 (3,4) | Funktionen: Aufrufe und Definitionen | 04 (Bildschirm) 04 (Handout) | YouTube | X |
Di, 02.11.2021 | 9,0 (1,2) | Funktionen; Bedingungen und bedingte Ausführung | 05 (Bildschirm) 05 (Handout) | YouTube | X |
Mi, 03.11.2021 | 1,2 (5,6) | Bedingungen und bedingte Ausführung | YouTube, Beispiel Freizeitpark | X | |
Di, 09.11.2021 | 3,4 (7,8,9) | Python-Programme, Sequenztypen und Iteration | 06 (Bildschirm) 06 (Handout) | YouTube | X |
Mi, 10.11.2021 | 5,6 (0,1,2) | Entwurf von Schleifen (Teil 1), Akkumulatoren | 07 (Bildschirm) 07 (Handout) | YouTube | X |
Di, 16.11.2021 | 7,8 (9,0,1,2) | Entwurf von Schleifen (Teil 2), While-Schleifen, Hilfsfunktionen | 07 (Bildschirm) 07 (Handout) | YouTube | X |
Mi, 17.11.2021 | 9,0 (1, 2, 3, 4) | Objekte und Datenklassen | 08 (Bildschirm) 08 (Handout) | YouTube | X |
Di, 23.11.2021 | 1,2 (3, 4, 5, 6) | Datenklassen und Alternativen | 09 (Bildschirm) 09 (Handout) | YouTube | X |
Mi, 24.11.2021 | 3,4 (5, 6, 7, 8) | Aufzählungstypen, Bäume (1) | 10 (Bildschirm) 10 (Handout) | YouTube | X |
Di, 30.11.2021 | 5,6 (7, 8, 9, 0) | Bäume (2), Suchbäume | YouTube | X | |
Mi, 01.12.2021 | 7,8 (9, 0, 1, 2) | Programmentwicklung: Testen und Debuggen (1) | 11 (Bildschirm) 11 (Handout) | YouTube | X |
Di, 07.12.2021 | 0-9 | Programmentwicklung: Testen und Debuggen (2), Objekt-orientierte Programmierung (1) | 12 (Bildschirm) 12 (Handout) | YouTube | |
Mi, 08.12.2021 | 0-9 | Objekt-orientierte Programmierung (2) | YouTube | ||
Di, 14.12.2021 | 0-9 | Dictionaries und Mengen | 13 (Bildschirm) 13 (Handout) | YouTube | |
Mi, 15.12.2021 | 0-9 | Objekt-orientierte Programmierung (3), Geometrische Objekte | YouTube | ||
Di, 21.12.2021 | 0-9 | Objektorientierte Programmierung (4): Aggregierung, Invarianten, etc | 14 (Bildschirm) 14 (Handout) | YouTube | |
Mi, 22.12.2021 | 0-9 | YouTube | |||
Weihnachten | |||||
Neujahr | |||||
Di, 11.01.2022 | 0-9 | Ausnahmen, Generatoren, Iteratoren | 15 (Bildschirm) 15 (Handout) | YouTube | |
Mi, 12.01.2022 | 0-9 | Generatoren, Iteratoren, Backtracking | YouTube | ||
Di, 18.01.2022 | 0-9 | Backtracking (Sudoku), Funktionale Programmierung (1) | 16 (Bildschirm) 16 (Handout) | YouTube | |
Mi, 19.01.2022 | 0-9 | Funktionale Programmierung (2): Funktionen höherer Ordnung | YouTube | ||
Di, 25.01.2022 | 0-9 | Funktionale Programmierung (3): Comprehensionen, Dekoratoren | YouTube | ||
Mi, 26.01.2022 | 0-9 | Funktionale Programmierung (4): Geschachtelte Funktionen, Closures | YouTube | ||
Di, 01.02.2022 | 0-9 | Sudoku beschleunigt! Rekursion, Endrekursion, Iteration (1) | 17 (Bildschirm) 17 (Handout) sudoku.py | YouTube | |
Mi, 02.02.2022 | 0-9 | Rekursion, Endrekursion, Iteration (2) | YouTube | ||
Di, 08.02.2022 | 0-9 | Finale: Brainf*ck | 18 (Bildschirm) 18 (Handout) | YouTube | |
Mi, 09.02.2022 | 0-9 | Fragestunde zur Klausur | Fragen vorher per Email oder live via Zoom Meeting ID: 827 5928 2295 Passcode: 1Question | Nur im Zoom ohne Aufzeichnung. |
Übungsblätter
Ausgabe | Abgabe | Übungsblatt | Material |
---|---|---|---|
Di, 19.10.2021 | Mo, 25.10.2021 9:00 | Übungsblatt 1 | |
Di, 26.10.2021 | Mo, 01.11.2021 9:00 | Übungsblatt 2 | |
Mo, 01.11.2021 | Mo, 08.11.2021 9:00 | Übungsblatt 3 | |
Mo, 08.11.2021 | Mo, 15.11.2021 9:00 | Übungsblatt 4 | |
Mo, 15.11.2021 | Mo, 22.11.2021 9:00 | Übungsblatt 5 | hangman.py, pillow_test.py, color.py |
Di, 23.11.2021 | Mo, 29.11.2021 9:00 | Übungsblatt 6 | test_supermarket.py, test_mail.py |
Mo, 29.11.2021 | Mo, 06.12.2021 9:00 | Übungsblatt 7 | tree.py, parser.py |
Di, 07.12.2021 | Mo, 13.12.2021 9:00 | Übungsblatt 8 | |
Mo, 13.12.2021 | Mo, 20.12.2021 9:00 | Übungsblatt 9 | read_files.py, ignored_words.py |
Mo, 20.12.2021 | Mo, 10.01.2021 18:00 | Übungsblatt 10 | Auswertung, Video zum Blatt, Aufgaben, Abgabe hier (nicht git)!, Python-Version ist 3.9, d.h. es ist kein Pattern Matching möglich! Das Modul pytest ist nicht installiert. |
Di, 11.01.2022 | Mo, 17.01.2022 9:00 | Übungsblatt 11 | geo.py, test_vector.py |
Di, 18.01.2022 | Mo, 24.01.2022 9:00 | Übungsblatt 12 | test_cachedtuple.py, test_pathfinder.py |
Di, 25.01.2022 | Mo, 31.01.2022 9:00 | Übungsblatt 13 | |
Mo, 31.01.2022 | Mo, 07.02.2022 9:00 | Übungsblatt 14 | exam-2021.zip |
Die Abgabe der Übungsblätter und das Feedback für Ihre Abgaben läuft über unseren git-Server. Sie können Sich dort mit Ihrem Rechenzentrum-Account einloggen (gleicher Account wie beim Ilias).
Tutorate
Die Tutorate finden in der ersten Woche ausschließlich online statt. Falls Sie Interesse an einem Präsenztutorat in den kommenden Wochen haben, melden Sie sich hier.
Termin | Tutor | Raum |
---|---|---|
Mi 8-10 s.t. | Jascha Hettich | Online |
Mi 8-10 s.t. | Julina Peucker | Online |
Mi 8-10 s.t. | Simon Dorer | Online |
Mi 8-10 s.t. | Timpe Hörig | Online |
Mi 10-12 s.t. | Alexander Kurz | Online |
Mi 10-12 s.t. | Julius Bredemeyer | Online |
Mi 10-12 s.t. | Mika Wilpert | Online |
Mi 10-12 s.t. | Simon Blauth | Online |
Mi 10-12 s.t. | Tobias Bürger | Gebäude 76, Raum 01 007 |
Do 8-10 s.t. | Daniel Mironow | Online |
Do 8-10 s.t. | Florian Pollitt | (*) |
Do 8-10 s.t. | Kevin Krüssenberg | Gebäude 76, Raum 01 007 |
Do 8-10 s.t. | Mischa Dörfler | Online |
Do 8-10 s.t. | Vincent von Bosse | Online |
Do 10-12 s.t. | Aliena Ziegler | Online |
Do 10-12 s.t. | Christian Handschuh | Gebäude 76, Raum 00 004 |
Do 10-12 s.t. | Gloria Dobreva | Online |
Do 10-12 s.t. | Lena Funk | Online |
Do 10-12 s.t. | Lisa Hofert | Online |
Do 10-12 s.t. | Lukas Kleinert | Gebäude 76, Raum 01 007 |
(*): Fällt diese Woche aus. Die Betroffen können sich nach Belieben auf die anderen Tutorate verteilen.
Die Notizen der Tutoren finden Sie hier.
Text Adventures
Im dritten Übungsblatt sollte ein Textadventure geschrieben werden. Wir haben die Tutoren gefragt mit welchen der Spiele sie sich am meisten vergnügt haben und präsentieren stolz:
- Apocalyptic for Dummies von Kevin Zha & Mark L.
- Baffled Beyond Belief von Florian Vogt
- Blade Runner Prequel von FjellsMemory
- Das Abenteuer im Wald von Hemmersberg von Angelina Miller, Radha Lal, Micha Erkel
- Hunger Game von Laurin & Aaron
- Informatikstudium-Simulator 3000 Collector's Edition von Gill Peterson (doppelt geimpft) & Itani Mulli (doppelt geimpft)
- Muggeltester 9000 von Maya Wirsing, Jacob Urban, Jule Nogaj
- Na Rick i whakataka koe von Nils P., Leo R. & Vincent B.
- Nightmare von Pinija
- Smaugs Einöde von Manolo Blaufuß & Jakob Kailer
- Turtle Quest von Hellequin & Zengrimm
- Uni-Simulator 2022 (Demo) von Lukas Seyfried
Die Textadventures gibt es in der Sammelpackung hier zum Herunterladen. Guten Appetit!
Kunstwerke
Die gesammelten Bilder aus Blatt 11 können Sie hier anschauen.
Altklausur
Für die Klausurvorbereitung werden hier die Aufgaben und Lösungen der letztjährigen Klausur angeboten. Die Probeklausur von letzten Jahr kann auf der entsprechenden Vorlesungsseite gefunden werden.
Hinweis: Die Vorlesungsinhalte sind nicht komplett identisch.
FAQ
-
Wann findet die Probeklausur statt und unter welchen Bedingungen?
Die Probeklausur wird in den letzten beiden Vorlesungswochen stattfinden und übernimmt die Rolle des 13. oder 14. Übungsblattes. Wir entwerfen die Probeklausur mit den gleichen Kriterien, die wir auch für die echte Klausur verwenden. Für die echte Klausur haben Sie einen Rechner mit VSCode, keine Internetverbindung und 2 Stunden Bearbeitungszeit. Es liegt in Ihrer Verantwortung bei der Probeklausur die gleichen Bedingungen zu schaffen.
-
Welche Vorgaben sind bei der Abgabe der Übungsblätter zu beachten?
- Die Python-Dateien müssen ausführbar sein. Konkret heißt das:
python3 foo.py
darf nicht direkt abstürzen. - Es müssen die Style-Guidelines eingehalten werden. Dies kann in
vscode
und nach dem Hochladen auf dem Buildserver überprüft werden (siehe Tutorial). - Dateien, Funktionen, Klassen und Parameter müssen exakt wie auf dem Übungsblatt beschrieben benannt werden. Dies erleichtert den Tutoren erheblich ihre Arbeit, da sie zusätzlich Unittests verwenden können.
- Bei Gruppenaufgaben müssen alle Teilnehmer die Abgabe hochladen und die RZ-Kürzel der Teilnehmer als Kommentar in der ersten Zeile angeben. Dies trifft auch zu, wenn Sie die Gruppenaufgabe alleine machen.
- Verwenden Sie nur Programmierkonzepte die wir bereits in der Vorlesung behandelt haben.
- Verwenden Sie
if __name__ == '__main__'
um sicherzustellen, dass beim Importieren Ihrer Python-Dateien ausschließlich Definitionen ausgeführt werden. - Verwenden Sie für alle Ihre Funktions- und Methoden-Definitionen korrekte Typannotationen für Parameter und Rückbabewerte
- Die Python-Dateien müssen ausführbar sein. Konkret heißt das:
-
Soll ich
print
oderreturn
verwenden um das Ergebnis eines Funktionsaufrufes zu kommunizieren?Dies kann an der Formulierung im Aufgabentext erkannt werden:
- es soll etwas zurückgegeben werden:
return etwas
- es soll etwas ausgegeben werden:
print(etwas)
- es soll etwas eingegeben werden:
etwas = input()
- es soll etwas als Argument übergegeben werden:
f(etwas)
- es zurückgegeben werden ob etwas wahr ist: Rückgabetyp
bool
, falls wahr dannTrue
ansonstenFalse
- es soll etwas zurückgegeben werden:
-
Ich belege diese Semester die Veranstaltung "Einführung in die Programmierung" als fachfremdes Modul, da ich selbst VWL studiere. Ich brauche allerdings nur die 4 ECTS-Punkte, also nur die Studienleistung. Außer jede Woche die Übungsblätter einzureichen, gibt es sonst (formal) etwas zu beachten (z.B. Anmeldung), sodass am Ende bei Erreichen der nötigen Punktzahl auch wirklich die 4 ECTS-Punkte auf meinem Konto sind?
Wenn Sie die Blätter erfolgreich gemacht haben, können Sie von uns eine Bescheinigung als Studienleistung (4 ECTS) bekommen, die Sie dann Ihrem Prüfungsamt vorlegen können. Ggf. müssen Sie sich vorher bei Ihrer Fakultät anmelden. Auskunft dazu erteilt das dortige Prüfungsamt oder Studienkoordination.
Forum
Falls Sie Fragen zum Stoff der Vorlesung, zur Organisation, usw. haben, bitten wir Sie, das Forum als ersten Anlaufpunkt zu nutzen. Der Vorteil zum Email-Kontakt besteht darin, dass hier alle anderen Teilnehmer der Vorlesung Ihrer Frage, und unsere Antwort mitverfolgen können. Hierduch wird sich mit der Zeit eine kleine Sammlung von Frage/Antworten im Forum finden. Bitte verwenden Sie auch die Suchfunktion, um die vorhandenen Fragen zu durchsuchen.
Selbstverständlich können Sie uns bei individuellen Fragen gern eine Mail schrieben oder unsere Zoom-Sprechstunde besuchen (Mo 11-12 während der Vorlesungszeit): Meeting ID: 827 5928 2295 Passcode: Info1Frage
Literatur
- Referenz zu Python 3.8 in Deutsch: Michael Weigend. Python ge-packt. 8.Auflage. MITP-Verlag