Files
eidp-klausuraufgaben/README.md
2024-01-30 14:34:14 +01:00

65 lines
3.3 KiB
Markdown

# Übungsaufgaben zur EidP (WS2023) Klausur
Alle Aufgaben hier behandeln Konzepte aus der Vorlesung **Einführung in die Programmierung** von der Albert-Ludwig-Universität Freiburg. Hierbei handelt es sich um selbsterstellte Aufgaben der EidP-Tutoren [**Nils Pukropp**](mailto:nils@narl.io) und [**Daniel Mironow**](mailto:mail@danielmironov.dev) die bei der Vorbereitung auf die Klausur helfen sollen. :D
## Reihenfolge der Themen
Es gibt keine direkte Reihenfolge, lediglich Themen die sich teilweise überschneiden. Dennoch gibt es eine Reihenfolge nach Wichtigkeit der Themen:
- [Grundkonzept Schleifen (`for`, `while`, ...)](src/branch/main/loops)
- allgemeine Knobelaufgaben rund um Schleifen
- Einfach mit ein paar schwierigeren Aufgaben zum Nachdenken
- [Zeichenketten (Strings `str`)](src/branch/main/strings)
- allgemeine Knobelaufgaben rund um `str`
- Einfach mit ein paar schwierigeren Aufgaben zum Nachdenken
- [Dataclasses (OOP `@dataclass`)](src/branch/main/dataclasses)
- Objekt orientierte Programmierung mit `@dataclass`
- Einfach (Auswendig lernen)
- [Pattern Matching (`match`)](src/branch/main/pattern_matching)
- Intensive Übungen zu `match`
- Mittel (Auswendig lernen, aber erfordert grundlegende Konzepte)
- [Typvariabeln (Generics `[T]`)](src/branch/main/generics)
- Platzhalter Variabeln um generische Typannotation umzusetzen
- Mittel (Auswendig lernen, aber erfordert grundlegende Konzepte)
- [Rekursion (Tree)](src/branch/main/recursion)
- Sich selbst aufrufende Funktionen
- Schwer, da das Konzept etwas verwirrend ist, aber gut für schnelle Punkte in der Klausur!
- [Generator](src/branch/main/generator)
- Erzeugen von Iteratoren auf die seltsame Python Art und Weise!
- Mittel, da das Konzept etwas seltsam ist. Muss man einfach ein paar mal machen!
- [Funktionale Programmierung](src/branch/main/functional_programming)
- Programmieren-Paradigma bei dem der Programmfluss durch Funktionen bestimmt wird!
- Schwer, da das Konzept etwas schwer zu verstehen ist und viele Grundlagen vorraussetzt
## Wie funktionierts?
- In jedem Themen-Ordner habt ihr wieder verschiedene Ordner, welche jeweils beinhalten:
- **Aufgabenstellungen** zum jeweiligen Thema als `README.md`
- Eine **Template-Datei**
- Eine **Test-Datei**, damit ihr nicht direkt in die Lösung schauen müsst
- Und einen `solution` Ordner der die Musterlösung beinhaltet
## Wie benutze ich die Test-Datei?
- Zunächst braucht Ihr `pytest` welches ihr mit `pip install -m pytest` installieren könnt
- Könnt auch gerne nachfragen wenn was nicht funktioniert!
- Dann könnt ihr einfach die Tests mit `pytest` in der Konsole aufrufen
- Schlagen die Tests fehl sieht das so aus:
![image not found](https://cloud.narl.io/s/8Dj4E79RKnHZQNJ/preview)
- Hier sagt euch Pytest auch was alles nicht an eurem Code funktioniert
- Funktioniert euer Code sieht das so aus:
![image not found](https://cloud.narl.io/s/2HGdaiQkP4YEQ5K/preview)
## Kontakt
- Nils Pukropp (Tutor)
- [E-Mail](mailto:nils@narl.io)
- [Discord](https://discord.com/users/208979474988007425)
- [Telegram](https://t.me/narl_np)
- Daniel Mironow (Tutor)
- [E-Mail](mailto:mail@danielmironov.dev)
- [Discord](https://discord.com/users/236939658301407243)
- [Discord-Server](https://discord.gg/naeprrX7hB)