2
0
Fork 0
Übungen zur Vorlesung Programmieren 2 (PR2)
Go to file
Thomas Smits 42a003165b Update of exercises 2025-08-30 05:38:44 +02:00
Abstrakte Klassen_001 Update of exercises 2024-09-15 15:48:58 +02:00
Abstrakte Klassen_002 Update of exercises 2024-09-15 15:48:58 +02:00
Abstrakte_Klassen_001 Update of exercises 2025-08-30 05:38:06 +02:00
Abstrakte_Klassen_002 Update of exercises 2025-08-30 05:38:06 +02:00
Auffrischung_001 Update of exercises 2025-08-30 05:38:06 +02:00
Auffrischung_002 Update of exercises 2025-08-30 05:38:06 +02:00
Auffrischung_003 Update of exercises 2025-08-30 05:38:06 +02:00
Auffrischung_004 Update of exercises 2025-08-30 05:38:06 +02:00
Auffrischung_005 Update of exercises 2025-08-30 05:38:06 +02:00
Auffrischung_006 Update of exercises 2025-08-30 05:38:06 +02:00
Ausnahmen_001 Update of exercises 2025-08-30 05:38:06 +02:00
Ausnahmen_002 Update of exercises 2025-08-30 05:38:06 +02:00
Ausnahmen_003 Update of exercises 2025-08-30 05:38:06 +02:00
Ausnahmen_004 Update of exercises 2025-08-30 05:38:06 +02:00
Ausnahmen_005 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_001 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_002 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_003 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_004 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_005 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_006 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_007 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_008 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_009 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_010 Update of exercises 2025-08-30 05:38:06 +02:00
Collections_011 Update of exercises 2025-08-30 05:38:06 +02:00
Einfuehrung_001 Update of exercises 2025-08-30 05:38:06 +02:00
Einfuehrung_002 Update of exercises 2025-08-30 05:38:06 +02:00
Einfuehrung_003 Update of exercises 2025-08-30 05:38:06 +02:00
Einführung_001 Update of exercises 2024-09-15 15:48:58 +02:00
Einführung_002 Update of exercises 2024-09-15 15:48:58 +02:00
Einführung_003 Update of exercises 2024-09-15 15:48:58 +02:00
Enumerationen_001 Update of exercises 2025-08-30 05:38:06 +02:00
Enumerationen_002 Update of exercises 2025-08-30 05:38:06 +02:00
Enumerationen_003 Update of exercises 2025-08-30 05:38:06 +02:00
Enumerationen_004 Update of exercises 2025-08-30 05:38:06 +02:00
Generische Typen_001 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_002 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_003 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_004 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_005 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_006 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_007 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_008 Update of exercises 2024-09-15 15:48:58 +02:00
Generische Typen_009 Update of exercises 2024-09-15 15:48:58 +02:00
Generische_Typen_001 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_002 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_003 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_004 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_005 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_006 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_007 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_008 Update of exercises 2025-08-30 05:38:06 +02:00
Generische_Typen_009 Update of exercises 2025-08-30 05:38:06 +02:00
Geschachtelte Klassen_001 Update of exercises 2024-09-15 15:48:58 +02:00
Geschachtelte Klassen_002 Update of exercises 2024-09-15 15:48:58 +02:00
Geschachtelte Klassen_003 Update of exercises 2024-09-15 15:48:58 +02:00
Geschachtelte_Klassen_001 Update of exercises 2025-08-30 05:38:06 +02:00
Geschachtelte_Klassen_002 Update of exercises 2025-08-30 05:38:06 +02:00
Geschachtelte_Klassen_003 Update of exercises 2025-08-30 05:38:06 +02:00
Input und Output_001 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_002 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_003 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_004 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_005 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_006 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_007 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_008 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_009 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_010 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_011 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_012 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_013 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_014 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_015 Update of exercises 2024-09-15 15:48:58 +02:00
Input und Output_016 Update of exercises 2024-09-15 15:48:58 +02:00
Input_und_Output_001 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_002 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_003 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_004 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_005 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_006 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_007 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_008 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_009 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_010 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_011 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_012 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_013 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_014 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_015 Update of exercises 2025-08-30 05:38:06 +02:00
Input_und_Output_016 Update of exercises 2025-08-30 05:38:06 +02:00
Interfaces_001 Update of exercises 2025-08-30 05:38:06 +02:00
Interfaces_002 Update of exercises 2025-08-30 05:38:06 +02:00
Interfaces_003 Update of exercises 2025-08-30 05:38:06 +02:00
Interfaces_004 Update of exercises 2025-08-30 05:38:06 +02:00
Lambdas_001 Update of exercises 2025-08-30 05:38:06 +02:00
Lambdas_002 Update of exercises 2025-08-30 05:38:06 +02:00
Object und Wrapper_001 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_002 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_003 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_004 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_005 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_006 Update of exercises 2024-09-15 15:48:58 +02:00
Object und Wrapper_007 Update of exercises 2024-09-15 15:48:58 +02:00
Object_und_Wrapper_001 Update of exercises 2025-08-30 05:38:06 +02:00
Object_und_Wrapper_002 Update of exercises 2025-08-30 05:38:06 +02:00
Object_und_Wrapper_003 Update of exercises 2025-08-30 05:38:06 +02:00
Object_und_Wrapper_004 Update of exercises 2025-08-30 05:38:06 +02:00
Object_und_Wrapper_005 Update of exercises 2025-08-30 05:38:06 +02:00
Object_und_Wrapper_006 Update of exercises 2025-08-30 05:38:06 +02:00
Object_und_Wrapper_007 Update of exercises 2025-08-30 05:38:06 +02:00
Reflection_001 Update of exercises 2024-09-15 15:48:58 +02:00
Reflection_002 Update of exercises 2024-09-15 15:48:58 +02:00
Streams_001 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_002 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_003 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_004 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_005 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_006 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_007 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_008 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_009 Update of exercises 2025-08-30 05:38:06 +02:00
Streams_010 Update of exercises 2025-08-30 05:38:06 +02:00
Strukturierung_001 Update of exercises 2025-08-30 05:38:06 +02:00
Strukturierung_002 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_001 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_002 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_003 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_004 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_005 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_006 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_007 Update of exercises 2025-08-30 05:38:06 +02:00
Threads_008 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_001 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_002 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_003 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_004 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_005 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_006 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_007 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_008 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_009 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_010 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_011 Update of exercises 2025-08-30 05:38:06 +02:00
Vererbung_012 Update of exercises 2025-08-30 05:38:06 +02:00
help Update of exercises 2024-09-15 15:44:10 +02:00
solutions Update of exercises 2025-08-30 05:38:06 +02:00
sources Update of exercises 2025-08-30 05:38:06 +02:00
readme.md Update of exercises 2025-08-30 05:38:44 +02:00

readme.md

Programmieren 2 (Wintersemester 2025/2026)

👋 Willkommen zum Kurs Programmieren 2

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.

🎓 Freiwillige Übungen

Hier finden Sie die freiwilligen Übungen zur Vorlesung Programmieren 2 (PR2). Die Übungen sind unten aufgelistet. Die Spalte Ausgabe hat keine Bedeutung.

Hinweise zur nötigen Softwareausstattung finden Sie hier.

# Kapitel Thema
1. Auffrischung String in Großbuchstaben umwandeln
2. Auffrischung Labeled Break
3. Auffrischung Passwortbewertung
4. Auffrischung printf mit Formatstring
5. Auffrischung Maximum in einem Array suchen
6. Auffrischung Taschenrechner
7. Einführung Java-Coding-Standard anwenden
8. Einführung JavaDoc schreiben
9. Einführung Klasse mit JUnit testen
10. Strukturierung Information-Hiding einer Klasse verbessern
11. Strukturierung Vorhandene Bibliotheken als JAR einbinden
12. Vererbung Final anwenden
13. Vererbung Figur und Rechteck
14. Vererbung Figur erweitern
15. Vererbung Figur noch einmal erweitern
16. Vererbung Konstruktoren schreiben
17. Vererbung Polymorphie einsetzen
18. Vererbung Singleton
19. Vererbung Statische Methoden und Attribute
20. Vererbung Methode überladen
21. Vererbung Methoden überschreiben
22. Vererbung Varag-Methode schreiben
23. Vererbung Vererbung von Figuren
24. Abstrakte Klassen Abstrakte Klassen
25. Abstrakte Klassen Abstrakte Klasse
26. Interfaces Comparable implementieren
27. Interfaces Interface Stack entwerfen
28. Interfaces Interface: Uebersetzer
29. Interfaces Interfaces anwenden und entwerfen
30. Object und Wrapper Deep-Copy mit clone()
31. Object und Wrapper Clone
32. Object und Wrapper equals() und hashCode() implementieren und nutzen
33. Object und Wrapper equals und hashCode
34. Object und Wrapper toString()-Methode implementieren
35. Object und Wrapper Optimierung bei Integer
36. Object und Wrapper Methoden der Wrapper-Klassen
37. Enumerationen Eigene Enumeration schreiben und verwenden
38. Enumerationen Enumeration schreiben
39. Enumerationen Singleton-Eigenschaft von Enumerationen
40. Enumerationen Stein, Papier, Schere, Echse, Spock
41. Ausnahmen Ausnahmen testen
42. Ausnahmen Eigene Ausnahmen schreiben und an entsprechender Stelle werfen
43. Ausnahmen Eigene Exception schreiben
44. Ausnahmen Handle-or-Declare-Regel anwenden
45. Ausnahmen Ausnahmen mit try und catch behandeln.
46. Input und Output BufferedReader zum zeilenweisen Lesen einsetzen
47. Input und Output DataOutputStream
48. Input und Output DataOutputStream durch Serialisierung ersetzen
49. Input und Output Daten mit DataOutputStream und DataInputStream verarbeiten
50. Input und Output Daten mit einem InputStream lesen
51. Input und Output Daten mit einem OutputStream schreiben
52. Input und Output Filesystem-Abstraktion mit File
53. Input und Output Fileattribute lesen
54. Input und Output FilterReader
55. Input und Output Konsolen Input/Output
56. Input und Output Zeilen einer Textdatei zählen
57. Input und Output RandomAccessFile
58. Input und Output Reader verwenden
59. Input und Output Rot13-Verschlüsselung
60. Input und Output Datei zerhacken
61. Input und Output Serialisierung
62. Generische Typen Einen generischen Typ schreiben
63. Generische Typen Generische Klasse Pair schreiben
64. Generische Typen Generische Klasse Pair erweitern: NumberPair
65. Generische Typen Generische Klasse Pair erweitern: SamePair
66. Generische Typen PairList
67. Generische Typen Wildcard benutzen
68. Generische Typen Generische Queue
69. Generische Typen super und extends einsetzen
70. Generische Typen Generische Typen zusammen mit Wildcards einsetzen
71. Geschachtelte Klassen Eigene compare-Methode schreiben
72. Geschachtelte Klassen Innere Klasse Beobachter
73. Geschachtelte Klassen Callback mit anonymer Klasse realisieren
74. Lambdas Comparator als Lambda
75. Lambdas Callback mit Lambda realisieren
76. Geschachtelte Klassen MatrixSuche
77. Lambdas StringTransmogrifier
78. Lambdas StringTransmogrifier erweitern
79. Collections Iterator schreiben
80. Collections Iterator programmieren
81. Collections List<T> und dessen Implementierungen
82. Collections Map<T> verwenden
83. Collections ReverserGeneric
84. Collections Strings umgekehrt sortieren: Reverser
85. Collections Set<T> und dessen Implementierungen
86. Collections CommandLineSorter
87. Collections CommandLineSorter -- Version 2
88. Collections Comparator<T> verwenden und Objekte sortieren
89. Collections Wörterbuchprogramm
90. Streams Kleinbuchstaben in einem String zählen
91. Streams Buchstaben in einer Liste von Strings zählen
92. Streams Kleinbuchstaben in einem String zählen
93. Streams Liste filtern
94. Streams Streams mit interner Iteration
95. Streams Map und Filter auf Streams
96. Streams Map und Reduce auf Streams
97. Streams Reduce
98. Streams Summe über reduce bestimmen
99. Streams Wörter zählen
100. Threads Fakultät parallel berechnen
101. Threads Thread per interrupt beenden
102. Threads wait und notify benutzen
103. Threads Parallele Ausgaben erzeugen
104. Threads Race-Condition finden und beheben
105. Threads Stack und Heap unterscheiden
106. Threads synchronized verwenden
107. Threads Timer und TimerTask verwenden
108. Reflection Klasse per Reflection analysieren
109. Reflection Objekte per Reflection erzeugen