Uni-Logo

Einführung in die Programmierung

Vorlesung

Dozent Prof. Dr. Peter Thiemann thiemann@info...
Übungen Hannes Saffrich saffrich@info...
Simon Ging gings@info...
ZeitDi 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.
  • Fragen und Antworten zur Klausur

  • 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.

DatumEndzifferThemaFolienLivestreamKV
Di, 19.10.20211,2Organisation 00 (Bildschirm) YouTube X
Grundlagen 01 (Bildschirm) 01 (Handout) Video (Rest 01)
Mi, 20.10.20213,4Erste Schritte in Python 02 (Bildschirm) 02 (Handout) YouTube X
Di, 26.10.20215,6Werte, Typen, Variable und Ausdrücke 03 (Bildschirm) 03 (Handout) YouTube X
Mi, 27.10.20217,8 (3,4) Funktionen: Aufrufe und Definitionen 04 (Bildschirm) 04 (Handout) YouTube X
Di, 02.11.20219,0 (1,2) Funktionen; Bedingungen und bedingte Ausführung 05 (Bildschirm) 05 (Handout) YouTube X
Mi, 03.11.20211,2 (5,6) Bedingungen und bedingte Ausführung YouTube, Beispiel Freizeitpark X
Di, 09.11.20213,4 (7,8,9) Python-Programme, Sequenztypen und Iteration 06 (Bildschirm) 06 (Handout) YouTube X
Mi, 10.11.20215,6 (0,1,2) Entwurf von Schleifen (Teil 1), Akkumulatoren 07 (Bildschirm) 07 (Handout) YouTube X
Di, 16.11.20217,8 (9,0,1,2) Entwurf von Schleifen (Teil 2), While-Schleifen, Hilfsfunktionen 07 (Bildschirm) 07 (Handout) YouTube X
Mi, 17.11.20219,0 (1, 2, 3, 4) Objekte und Datenklassen 08 (Bildschirm) 08 (Handout) YouTube X
Di, 23.11.20211,2 (3, 4, 5, 6) Datenklassen und Alternativen 09 (Bildschirm) 09 (Handout) YouTube X
Mi, 24.11.20213,4 (5, 6, 7, 8) Aufzählungstypen, Bäume (1) 10 (Bildschirm) 10 (Handout) YouTube X
Di, 30.11.20215,6 (7, 8, 9, 0) Bäume (2), Suchbäume YouTube X
Mi, 01.12.20217,8 (9, 0, 1, 2) Programmentwicklung: Testen und Debuggen (1) 11 (Bildschirm) 11 (Handout) YouTube X
Di, 07.12.20210-9 Programmentwicklung: Testen und Debuggen (2), Objekt-orientierte Programmierung (1) 12 (Bildschirm) 12 (Handout) YouTube
Mi, 08.12.20210-9 Objekt-orientierte Programmierung (2) YouTube
Di, 14.12.20210-9 Dictionaries und Mengen 13 (Bildschirm) 13 (Handout) YouTube
Mi, 15.12.20210-9 Objekt-orientierte Programmierung (3), Geometrische Objekte YouTube
Di, 21.12.20210-9 Objektorientierte Programmierung (4): Aggregierung, Invarianten, etc 14 (Bildschirm) 14 (Handout) YouTube
Mi, 22.12.20210-9 YouTube
Weihnachten
Neujahr
Di, 11.01.20220-9 Ausnahmen, Generatoren, Iteratoren 15 (Bildschirm) 15 (Handout) YouTube
Mi, 12.01.20220-9 Generatoren, Iteratoren, Backtracking YouTube
Di, 18.01.20220-9 Backtracking (Sudoku), Funktionale Programmierung (1) 16 (Bildschirm) 16 (Handout) YouTube
Mi, 19.01.20220-9 Funktionale Programmierung (2): Funktionen höherer Ordnung YouTube
Di, 25.01.20220-9 Funktionale Programmierung (3): Comprehensionen, Dekoratoren YouTube
Mi, 26.01.20220-9 Funktionale Programmierung (4): Geschachtelte Funktionen, Closures YouTube
Di, 01.02.20220-9 Sudoku beschleunigt! Rekursion, Endrekursion, Iteration (1) 17 (Bildschirm) 17 (Handout) sudoku.py YouTube
Mi, 02.02.20220-9 Rekursion, Endrekursion, Iteration (2) YouTube
Di, 08.02.20220-9 Finale: Brainf*ck 18 (Bildschirm) 18 (Handout) YouTube
Mi, 09.02.20220-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

AusgabeAbgabeÜbungsblattMaterial
Di, 19.10.2021Mo, 25.10.2021 9:00 Übungsblatt 1
Di, 26.10.2021Mo, 01.11.2021 9:00 Übungsblatt 2
Mo, 01.11.2021Mo, 08.11.2021 9:00Übungsblatt 3
Mo, 08.11.2021Mo, 15.11.2021 9:00Übungsblatt 4
Mo, 15.11.2021Mo, 22.11.2021 9:00Übungsblatt 5 hangman.py, pillow_test.py, color.py
Di, 23.11.2021Mo, 29.11.2021 9:00Übungsblatt 6 test_supermarket.py, test_mail.py
Mo, 29.11.2021Mo, 06.12.2021 9:00Übungsblatt 7 tree.py, parser.py
Di, 07.12.2021Mo, 13.12.2021 9:00Übungsblatt 8
Mo, 13.12.2021Mo, 20.12.2021 9:00Übungsblatt 9 read_files.py, ignored_words.py
Mo, 20.12.2021Mo, 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.2022Mo, 17.01.2022 9:00Übungsblatt 11 geo.py, test_vector.py
Di, 18.01.2022Mo, 24.01.2022 9:00Übungsblatt 12 test_cachedtuple.py, test_pathfinder.py
Di, 25.01.2022Mo, 31.01.2022 9:00Übungsblatt 13
Mo, 31.01.2022Mo, 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.

TerminTutorRaum
Mi 8-10 s.t.Jascha HettichOnline
Mi 8-10 s.t.Julina PeuckerOnline
Mi 8-10 s.t.Simon DorerOnline
Mi 8-10 s.t.Timpe HörigOnline
Mi 10-12 s.t.Alexander KurzOnline
Mi 10-12 s.t.Julius BredemeyerOnline
Mi 10-12 s.t.Mika WilpertOnline
Mi 10-12 s.t.Simon BlauthOnline
Mi 10-12 s.t.Tobias BürgerGebäude 76, Raum 01 007
Do 8-10 s.t.Daniel MironowOnline
Do 8-10 s.t.Florian Pollitt(*)
Do 8-10 s.t.Kevin KrüssenbergGebäude 76, Raum 01 007
Do 8-10 s.t.Mischa DörflerOnline
Do 8-10 s.t.Vincent von BosseOnline
Do 10-12 s.t.Aliena ZieglerOnline
Do 10-12 s.t.Christian HandschuhGebäude 76, Raum 00 004
Do 10-12 s.t.Gloria DobrevaOnline
Do 10-12 s.t.Lena FunkOnline
Do 10-12 s.t.Lisa HofertOnline
Do 10-12 s.t.Lukas KleinertGebä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
  • Soll ich print oder return 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 dann True ansonsten False
  • 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

Links