|
|
||
|---|---|---|
| Assignment_001 | ||
| Assignment_002 | ||
| Assignment_003 | ||
| Assignment_004 | ||
| Assignment_005 | ||
| Assignment_006 | ||
| Assignment_007 | ||
| Assignment_008 | ||
| Assignment_009 | ||
| bin | ||
| help | ||
| solutions | ||
| sources | ||
| .gitignore | ||
| readme.md | ||
readme.md
Programmieren 2 (Wintersemester 2025/2026)
👋 Willkommen zum Kurs Programmieren 2 (PR2)
In Programmieren 2 lernen Sie die Programmierung in Java auf einem fortgeschrittenen Niveau. Sie werden alle wichtigen Konzepte von Java kennenlernen und diese in praktischen Übungen anwenden. Hierbei werden Sie in kleinen Teams arbeiten und komplexere, objektorientierte Programme in Java entwickeln. Die dazu nötigen objektorientierten Konzepte (Polymorphie, Vererbung, Interfaces, etc.) werden Sie ebenso im Kurs anwenden, wie die dazu grundlegenden Algorithmen und Datenstrukturen.
🏛️ Aufbau der Veranstaltung
Die folgende Tabelle zeigt Ihnen die Themen der Woche und welche Kapitel Sie bis wann vorbereitet haben müssen. Da die Veranstaltung als Inverted Classroom durchgeführt wird, ist es Ihre Aufgabe das entsprechende Kapitel im Skript bis zum genannten Termin durchgearbeitet zu haben.
| # | 📢 Motto | 🎓 Themen | 📚 Kapitel | Übungen | 📆 bis |
|---|---|---|---|---|---|
| 1 | Auffrischen, einchecken und loslegen | Auffrischung | 1 | 1, 2, 3, 4, 5, 6 | ¹ |
| 2 | Wie Julius Caesar programmieren | JUnit, JavaDoc, Programmierstil, Pakete, Module, JARs | 2, 3 | 1, 2, 3, 4, 5 | 29.09 |
| 3 | Erben und vererben | Vererbung, Überladen, Verdecken, Konstruktoren | 4 | 1, 2, 3, 4, 5 | 06.10 |
| 4 | Verhaltenstherapie für Klassen | Überschreiben, Polymorphie, static, final | 4 | 6, 7, 8, 9, 10, 11, 12 | 13.10 |
| 5 | Mit Interfaces geht es noch abstrakter | Interfaces, abstrakte Klassen, SOLID, STUPID | 5 | 1, 2, 3, 4, 5, 6 | 20.10 |
| 6 | Wer sortiert, muss trotzdem suchen | Suchen, Sortieren, Regex | 6 | 27.10 | |
| 7 | Geschenkverpackungen und andere Feinheiten | Object, Wrapper, Optional, Enums, Records | 7, 8 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 | 03.11 |
| 8 | Wenn es mal schief geht, Ausnahmen | Exceptions, try, catch | 9 | 1, 2, 3, 4, 5 | 10.11 |
| 9 | Rein oder raus, die Daten müssen fließen | Input/Output mit Streams und Reader/Writer | 10 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 | 17.11 |
| 10 | One size fits all, mit generischen Typen | Generische Typen, Wildcards | 11 | 1, 2, 3, 4, 5, 6, 7, 8, 9 | 24.11 |
| 11 | Matroschka-Klassen | Geschachtelte Klassen, Lambdas | 12 | 1, 2, 3, 4, 5 | 01.12 |
| 12 | Daten brauchen Struktur | Abstrakte Datentypen | 13 | 08.12 | |
| 13 | Objekte sammeln | Collections und Streams | 14, 15 | 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 | 15.12 |
| 14 | Parallel läuft es schneller | Threads, Probleme der Thread-Programmierung | 16 | 1, 2, 3, 4, 5, 6, 7, 8 | 07.01 |
¹ = Wird als aus PR1 bekannt vorausgesetzt
📆 Assignments (Pflichtübungen)
Hier finden Sie die Assignments (Aufgaben) für die Vorlesung Programmieren 2 (PR2). Die Assignments sind unten, zusammen mit dem Ausgabe- und Fälligkeitsdatum aufgelistet.
Die Bearbeitung der Aufgaben und das Erreichen einer hinreichend großen Zahl von Punkten sind die Voraussetzung für die Teilnahme an der Klausur.
Hinweise zur nötigen Softwareausstattung finden Sie hier.
Wichtige Einstellungen für Eclipse sind hier beschrieben.
| # | Ausgabe | Thema | Fällig am 📆 |
|---|---|---|---|
| 1. | 23.09.2025 | Umgebung aufsetzen | 01.10.2025 |
| 2. | 23.09.2025 | Erster Commit | 01.10.2025 |
| 3. | 01.10.2025 | Stein, Papier, Schere (, Echse, Spock) | 07.10.2025 |
| 4. | 08.10.2025 | Vektor | 21.10.2025 |
| 5. | 22.10.2025 | Live-Testat | 29.10.2025 |
| 6. | 22.10.2025 | Racewars | 04.11.2025 |
| 7. | 05.11.2025 | Ein Traum in Zucker oder kann ich dem Zufallsgenerator trauen? | 18.11.2025 |
| 8. | 05.11.2025 | Live-Testat | 19.11.2025 |
| 9. | 19.11.2025 | Mist die Festplatte ist schon wieder voll | 02.12.2025 |
😀 Freiwillige Übungen
Die freiwilligen Übungen zur Vertiefung der Vorlesungsinhalte finden Sie in einem getrennten Repository: Freiwillige Übungen.