Repository for Team
Go to file
Jan Emmerich 12a2d35f6e Bearbeitung von Aufgaben 2026-05-28 14:24:59 +02:00
Abstrakte_Klassen_001 Update of exercises 2026-05-12 16:49:45 +02:00
Abstrakte_Klassen_002 Update of exercises 2026-05-12 16:49:45 +02:00
Auffrischung_001 Update of exercises 2026-05-12 16:49:45 +02:00
Auffrischung_002 Update of exercises 2026-05-12 16:49:45 +02:00
Auffrischung_003 Update of exercises 2026-05-12 16:49:45 +02:00
Auffrischung_004 Update of exercises 2026-05-12 16:49:45 +02:00
Auffrischung_005 Update of exercises 2026-05-12 16:49:45 +02:00
Auffrischung_006 Update of exercises 2026-05-12 16:49:45 +02:00
Ausnahmen_001 Update of exercises 2026-05-12 16:49:45 +02:00
Ausnahmen_002 Update of exercises 2026-05-12 16:49:45 +02:00
Ausnahmen_003 Update of exercises 2026-05-12 16:49:45 +02:00
Ausnahmen_004 Update of exercises 2026-05-12 16:49:45 +02:00
Ausnahmen_005 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_001 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_002 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_003 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_004 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_005 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_006 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_007 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_008 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_009 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_010 Update of exercises 2026-05-12 16:49:45 +02:00
Collections_011 Update of exercises 2026-05-12 16:49:45 +02:00
Einfuehrung_001 Update of exercises 2026-05-12 16:49:45 +02:00
Einfuehrung_002 Update of exercises 2026-05-12 16:49:45 +02:00
Einfuehrung_003 Update of exercises 2026-05-12 16:49:45 +02:00
Enumerationen_001 Update of exercises 2026-05-12 16:49:45 +02:00
Enumerationen_002 Update of exercises 2026-05-12 16:49:45 +02:00
Enumerationen_003 Update of exercises 2026-05-12 16:49:45 +02:00
Enumerationen_004 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_001 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_002 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_003 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_004 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_005 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_006 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_007 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_008 Update of exercises 2026-05-12 16:49:45 +02:00
Generische_Typen_009 Update of exercises 2026-05-12 16:49:45 +02:00
Geschachtelte_Klassen_001 Update of exercises 2026-05-12 16:49:45 +02:00
Geschachtelte_Klassen_002 Update of exercises 2026-05-12 16:49:45 +02:00
Geschachtelte_Klassen_003 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_001 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_002 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_003 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_004 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_005 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_006 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_007 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_008 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_009 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_010 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_011 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_012 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_013 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_014 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_015 Update of exercises 2026-05-12 16:49:45 +02:00
Input_und_Output_016 Update of exercises 2026-05-12 16:49:45 +02:00
Interfaces_001 Update of exercises 2026-05-12 16:49:45 +02:00
Interfaces_002 Update of exercises 2026-05-12 16:49:45 +02:00
Interfaces_003 Update of exercises 2026-05-12 16:49:45 +02:00
Interfaces_004 Update of exercises 2026-05-12 16:49:45 +02:00
Lambdas_001 Update of exercises 2026-05-12 16:49:45 +02:00
Lambdas_002 Update of exercises 2026-05-12 16:49:45 +02:00
Object_und_Wrapper_001 Update of exercises 2026-05-12 16:49:45 +02:00
Object_und_Wrapper_002 Update of exercises 2026-05-12 16:49:45 +02:00
Object_und_Wrapper_003 Update of exercises 2026-05-12 16:49:45 +02:00
Object_und_Wrapper_004 Update of exercises 2026-05-12 16:49:45 +02:00
Object_und_Wrapper_005 Update of exercises 2026-05-12 16:49:45 +02:00
Object_und_Wrapper_006 Update of exercises 2026-05-12 16:49:45 +02:00
Object_und_Wrapper_007 Update of exercises 2026-05-12 16:49:45 +02:00
Reflection_001 Update of exercises 2026-05-12 16:49:45 +02:00
Reflection_002 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_001 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_002 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_003 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_004 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_005 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_006 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_007 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_008 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_009 Update of exercises 2026-05-12 16:49:45 +02:00
Streams_010 Update of exercises 2026-05-12 16:49:45 +02:00
Strukturierung_001 Update of exercises 2026-05-12 16:49:45 +02:00
Strukturierung_002 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_001 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_002 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_003 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_004 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_005 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_006 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_007 Update of exercises 2026-05-12 16:49:45 +02:00
Threads_008 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_001 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_002 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_003 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_004 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_005 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_006 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_007 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_008 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_009 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_010 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_011 Update of exercises 2026-05-12 16:49:45 +02:00
Vererbung_012 Update of exercises 2026-05-12 16:49:45 +02:00
help Update of exercises 2026-04-16 18:51:32 +02:00
solutions Bearbeitung von Aufgaben 2026-05-28 14:24:59 +02:00
sources Bearbeitung von Aufgaben 2026-05-28 14:24:59 +02:00
README.md Initial commit 2026-04-16 18:51:15 +02:00
erledigt.txt Bearbeitung von Aufgaben 2026-05-28 14:24:59 +02:00
readme.md Update of exercises 2026-05-12 16:49:45 +02:00

readme.md

Programmieren 2 (Sommersemester 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 Musterlösung
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 ✅