Einführung in die Programmierung
Vorlesung
Dozent | Prof. Dr. Peter Thiemann | thiemann@info... | ||
Assistenz | Marius Weidner | weidner@cs... | Hannes Saffrich | saffrich@info... |
Übungen | Lukas Kleinert | lukas.kleinert@students... | Timpe Hörig | timpe.hoerig@students... |
Zeit | Di 10:15-11:45 Uhr, Mi 13:15-14:00 Uhr |
Ort | Geb. 101, Hörsaal 00-026 und gleichzeitig aufgezeichneter YouTube Livestream |
Klausureinsicht Nachtermin
- Die Klausureinsicht findet am 7.10. von 14-16 Uhr in der Werthmannstr. 4 statt (PC Pool 3).
Materialien
Die Vorlesung orientiert sich an den Vorlesungen der vorherigen Wintersemester.
Der Link zum Livestream wird jeweils spätestens am Vorabend der Vorlesung hier veröffentlicht.
Wichtig: Aktuell liegen ca. 400 Anmeldungen vor, aber unser Hörsaal hat lediglich eine Kapazität von 199 Personen, sodass nicht alle Angemeldeten Platz finden werden.
Datum | Thema | Folien | Livestream |
---|---|---|---|
Di, 17.10.2023 | Organisation | 00 (Bildschirm) | recording. |
Grundlagen | 01 (Bildschirm) 01 (Handout) | recording. Video (WS 2021) | |
Mi, 18.10.2023 | Übungssystem und Setup | setup.md. abgabesystem.md (dateien in VSC öffnen) | setup (video). abgabesystem (recording) |
Erste Schritte in Python | 02 (Bildschirm) 02 (Handout) | live stream Aufzeichnung (WS 2022) | |
Di, 24.10.2023 | Werte, Typen, Variable und Ausdrücke | 03 (Bildschirm) 03 (Handout) | Aufzeichnung |
Mi, 25.10.2023 | Funktionen: Aufrufe und Definitionen | 04 (Bildschirm) 04 (Handout) | Aufzeichnung |
Di, 31.10.2023 | Werte, Typen, Variable und Ausdrücke | 05 (Bildschirm) 05 (Handout) | Aufzeichnung YT |
Di, 07.11.2023 | Sequenzen und Iteration | 06 (Bildschirm) 06 (Handout) | Aufzeichnung YT |
Mi, 08.11.2023 | Entwurf von Schleifen | 07 (Bildschirm) 07 (Handout) | Aufzeichnung YT |
Di, 14.11.2023 | Entwurf von Schleifen | 07 (Bildschirm) 07 (Handout) | Aufzeichnung YT |
Mi, 15.11.2023 | Objekte und Datenklassen | 08 (Bildschirm) 08 (Handout) | Aufzeichnung YT |
Di, 21.11.2023 | Datenklassen. Alternativen, Enumerations | 09 (Bildschirm) 09 (Handout) | Aufzeichnung YT |
Mi, 22.11.2023 | Alternativen, Enumerations, Bäume | 10 (Bildschirm) 10 (Handout) | Aufzeichnung YT |
Di, 28.11.2023 | Bäume | update: 10 (Bildschirm) 10 (Handout) | Aufzeichnung YT |
Mi, 29.11.2023 | Suchbäume, Veränderliche Daten, Parameter | 11 (Bildschirm) 11 (Handout) | Aufzeichnung YT |
Di, 05.12.2023 | Objekt-orientierte Programmierung | 12 (Bildschirm) 12 (Handout) | Aufzeichnung YT |
Mi, 06.12.2023 | Objekt-orientierte Programmierung: Aggregierung | 13 (Bildschirm) 13 (Handout) | Aufzeichnung YT, Fortsetzung |
Di, 12.12.2023 | Objekt-orientierte Programmierung: Properties und Überladung | update: 13 (Bildschirm) 13 (Handout) | Aufzeichnung YT |
Mi, 13.12.2023 | Dictionaries und Sets | 14 (Bildschirm) 14 (Handout) | Aufzeichnung YT |
Di, 19.12.2023 | Dictionaries und Sets, Rekursion | 15 (Bildschirm) 15 (Handout) | Aufzeichnung YT, Fortsetzung |
Mi, 20.12.2023 | Rekursion | Aufzeichnung YT (von WS22/23 wegen technischer Probleme im Hörsaal) | |
Di, 09.01.2024 | Ausnahmen, Generatoren, Iteratoren, Backtracking | 16 (Bildschirm) 16 (Handout) | Aufzeichnung YT |
Mi, 10.01.2024 | Backtracking, IO (Forts.) | Altes Video über I/O (stream hat sich unbemerkt aufgehängt) | |
Di, 16.01.2024 | Funktionale Programmierung | 17 (Bildschirm) 17 (Handout) | Aufzeichnung YT |
Mi, 17.01.2024 | Komprehensionen, Sudoku mit Backtracking (Forts. vom 10.01.) | HEUTE NUR ONLINE, BEGINN 12:00 | Aufzeichnung YT |
Di, 23.01.2024 | Dekoratoren | 18 (Bildschirm) 18 (Handout) | Aufzeichnung YT, Aufzeichnung YT |
Mi, 24.01.2024 | Automaten | 19 (Bildschirm) 19 (Handout) | Aufzeichnung YT |
Di, 30.01.2024 | Interpreter | Slides, Interpreter1.py | Aufzeichnung |
Mi, 31.01.2024 | Interpreter | Interpreter2.py | Aufzeichnung |
Di, 06.02.2024 | Finale: Brainf*ck | 20 (Bildschirm) 20 (Handout) | Live stream YT |
Mi, 07.02.2024 | Fragestunde | BEGINN 13:00 "ask me anything" | Zoom Meeting Meeting ID: 827 5928 2295, Passcode: 1Question |
Übungsblätter
Die Abgabe der Übungsblätter und das Feedback für Ihre Abgaben läuft ausschließlich über unseren git-Server. Sie können sich dort mit Ihrem Rechenzentrum-Account einloggen (gleicher Account wie beim Ilias). Material aus den Tutoraten und Richtlinien zu den Übungsblättern finden Sie hier.
Ausgabe | Abgabe | Übungsblatt | Material |
---|---|---|---|
Di, 17.10.2023 | Mo, 23.10.2023 9:00 | Übungsblatt 01 | Lösungen |
Di, 24.10.2023 | Mo, 30.10.2023 9:00 | Übungsblatt 02 | Lösungen |
Di, 31.10.2023 | Mo, 06.11.2023 9:00 | Übungsblatt 03 | Lösungen |
Di, 07.11.2023 | Mo, 13.11.2023 9:00 | Übungsblatt 04 | Lösungen |
Di, 14.11.2023 | Mo, 20.11.2023 9:00 | Übungsblatt 05 | Lösungen |
Di, 21.11.2023 | Mo, 27.11.2023 9:00 | Übungsblatt 06 | Lösungen |
Di, 28.11.2023 | Mo, 04.12.2023 9:00 | Übungsblatt 07 | Lösungen |
Di, 05.12.2023 | Mo, 11.12.2023 9:00 | Übungsblatt 08 | Lösungen |
Di, 12.12.2023 | Mo, 18.12.2023 9:00 | Übungsblatt 09 | Lösungen |
Di, 19.12.2023 | Mo, 08.01.2024 9:00 | Weihnachtsblatt 10 | Lösungen |
Di, 09.01.2024 | Mo, 15.01.2024 9:00 | Übungsblatt 11 | Lösungen |
Di, 16.01.2024 | Mo, 22.01.2024 9:00 | Übungsblatt 12 | Lösungen |
Di, 23.01.2024 | Mo, 29.01.2024 9:00 | Übungsblatt 13 | Lösungen |
Di, 30.01.2024 | Mo, 05.02.2024 9:00 | Übungsblatt 14 Probeklausur test_exam.pdf | Lösungen |
Tutorate
Die Einteilung erfolgt in der ersten Vorlesungswoche über HisInOne. Die Teilnahme an den Tutoraten ist nicht Pflicht, allerdings müssen Sie 2 Mal ihre Lösung für eine (Teil-)Aufgabe in Ihrem Tutorat vorstellen. Zudem werden 20% der Übungspunkte für die Teilnahme an Tutoraten vergeben. Für das Bestehen der Studienleistung ist das zweimalige Vorstellen im Tutorat und 50% der Übungspunkte notwendig.
Die Notizen der Tutoren finden Sie hier.
Ihren persönlichen QR-Code für die Tutorate finden Sie hier: QR Code für die Tutorate
Termin | Tutor | Raum |
---|---|---|
Mi 08:00-10:00 | Till Herrmann | Geb. 051, SR 00 006 |
Mi 08:00-10:00 | Tim Schick | Geb. 051, SR 00 031 |
Mi 08:00-10:00 | Simon Dorer | Geb. 051, SR 00 034 |
Mi 08:00-10:00 | Christoph Ullinger (*) | Geb. 101, SR 01-009/13 |
Mi 16:00-18:00 | Daniel Mironow | Geb. 106, SR 00 007 |
Do 08:00-10:00 | Vincent von Bosse | Geb. 106, SR 00 007 |
Do 08:00-10:00 | Kevin Krüssenberg | Geb. 082, HS 00 006 |
Do 08:00-10:00 | Tilo Heep | Geb. 078, SR 00 014 |
Do 08:00-10:00 | Sebastian Klähn | Geb. 051, SR 00 006 |
Fr 08:00-10:00 | Tobias Bürger | Geb. 051, SR 00 006 |
Fr 08:00-10:00 | Max Eilers | Geb. 051, SR 03 026 |
Fr 08:00-10:00 | Max Schweigart | Geb. 101, SR 01-016/18 |
Fr 10:00-12:00 | Nils Pukropp | Geb. 101, SR 01-016/18 |
Fr 12:00-14:00 | Gloria Dobreva | Geb. 101, SR 01-009/13 |
Fr 12:00-14:00 | Julina Peucker | Geb. 106, SR 00 007 |
Fr 12:00-14:00 | Aliena Ziegler | Geb. 101, SR 01-016/18 |
Chat
Zusätzlich zu den Tutoraten gibt es einen Chat, in dem die Verantwortlichen Ihnen bei Fragen zur Seite stehen.
In dem Chat geht es in erster Linie um Fragen zu
- Vorlesungsinhalt
- Übungsblättern
- Programmierung mit Python
- Organisatorisches bezüglich Klausur und Übungsblättern
Es ist nicht erlaubt im Chat größere Ausschnitte von Lösungsansätzen zu posten! Stattdessen können Sie Ihre bisherige Abgabe auf unserem git-Server hochladen und uns im Chat bitten Ihre Abgabe anzuschauen.
Klausur
-
Die Klausur findet am Montag den 19.2.2024 in den Poolräumen der Werthmannstraße 4 bzw. im Rechenzentrum (Herman-Herder-Str. 10) in zwei Schichten statt. Jeder erhält einen individuellen Termin, der Über diesen Link verfügbar ist. Bei Problemen siehe Frage 1 unter Fragen und Antworten zur Klausur
-
Letzter Einlass zur Klausur ist die Startzeit aus Ihrem Termin. Daher sollten Sie sich spätestens 30 Minuten vor der Startzeit am Klausurort einfinden.
- Werthmannstr. 4
- Der Einlass erfolgt über den Hinterhof. Zugang durch das Tor an der Belfortstr. 14.
- Rechenzentrum
- Warten Sie an der rechten Treppe vor dem Haupteingang.
-
Bitte mitbringen: Studierendenausweis, Lichtbildausweis, Uni/Ilias Accountnummer nebst zugehörigem 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 einige Zeit vor der Klausur online mit der Umgebung (Ubuntu mit Visual Studio Code) vertraut machen, die Sie auch in der Klausur erwarten wird. Diese Umgebung wird dann unter https://bwlehrpool.ruf.uni-freiburg.de/guacamole/ verfügbar sein. Loggen Sie sich dort mit Ihrem Uni-Account ein und wählen die Veranstaltung "EidP Exam" aus. Dieser Online-Zugang ist auf fünf gleichzeitige Sitzungen beschränkt. Alternativ können Sie die Umgebung in allen Poolräumen des Rechenzentrums und der Werthmannstr. 4 ausprobieren.
- Für die Bearbeitung der Aufgaben haben Sie 150 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 für eine Aufgabe erarbeiten, markieren Sie deutlich, welcher gewertet werden soll. Die im Aufgabentext benannte "Zielfunktion" darf nur einmal in der Abgabe definiert werden, alles andere muss auskommentiert oder gelöscht werden. Andernfalls können wir keine Punkte vergeben.
- Verwenden Sie Typannotationen um die Typen der Parameter und des Rückgabewertes Ihrer Funktionen anzugeben. Fehlende Typannotationen führen zu Punktabzug.
- Bearbeiten Sie die einzelnen Aufgaben in den vorgegebenen Musterdateien, z.B. ex1_sequences.py. Falsch benannte Funktionen werden nicht bewertet. Neu erstellte Dateien werden nicht bewertet.
Hall of fame
Im dritten Übungsblatt sollte eine kleine Version des Akinator-Spiels geschrieben werden. Wir haben die Tutoren gefragt, mit welchen der Spiele sie sich am meisten vergnügt haben und präsentieren Ihnen eine kleine Auswahl in der Sammelpackung zum Herunterladen. Guten Appetit!
FAQ
-
Wann findet die Probeklausur statt und unter welchen Bedingungen?
Die Probeklausur wird als letztes Übungsblatt stattfinden. Wir entwerfen die Probeklausur nach den gleichen Kriterien, die wir auch für die echte Klausur verwenden. Für die echte Klausur haben Sie einen Computer 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. Die Tutoren wissen sonst nicht, was sie korrigieren sollen.
- 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ückgabewerte
- 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 etwas anderes 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?
Wir können nur Bescheinigungen über die Gesamtleistung, Übungen und Klausur, über 6 ECTS ausstellen. Diese Bescheinigung können Sie dann Ihrem Prüfungsamt vorlegen. Ggf. müssen Sie sich vorher bei Ihrer Fakultät anmelden. Auskunft dazu erteilt das dortige Prüfungsamt oder Studienkoordination.
Auf diese Art und Weise kann Ihre Studienleistung später als Modul "Einführung in die Programmierung" (Studienleistung und Prüfungsleistung, 6 ECTS) anerkannt werden, falls Sie später auf einen Studiengang an der TF umsteigen wollen.
Literatur
- Praktische Verwendung von Python in Deutsch: Michael Weigend, Python 3 (Oktober 2022). MITP-Verlag
- Referenz zu Python 3.8 in Deutsch: Michael Weigend. Python ge-packt. 8.Auflage. MITP-Verlag