# Programmieren 2 (Sommersemester 2023) ## Freiwillige Übungen Hier finden Sie die **freiwilligen Übungen** zur Vorlesung Programmieren 2 (PR2). Die Übungen sind unten, zusammen mit dem Ausgabedatum, aufgelistet. Das **Abgabedatum** dient nur der Orientierung für Ihre persönliche Planung, da keine Abgabe erforderlich ist. Hinweise zur nötigen Softwareausstattung finden Sie [hier](help/softwareausstattung.md). | # | Ausgabe | Thema | |----|---------------------------------------------------------------------------------------------|----------------| | 1. | 14.03.2023 | [String in Großbuchstaben umwandeln](Assignment_001/readme.md) | | 2. | 14.03.2023 | [Labeled Break](Assignment_002/readme.md) | | 3. | 14.03.2023 | [Passwortbewertung](Assignment_003/readme.md) | | 4. | 14.03.2023 | [printf mit Formatstring](Assignment_004/readme.md) | | 5. | 14.03.2023 | [Maximum in einem Array suchen](Assignment_005/readme.md) | | 6. | 14.03.2023 | [Taschenrechner](Assignment_006/readme.md) | | 7. | 14.03.2023 | [Quine](Assignment_007/readme.md) | | 8. | 20.03.2023 | [Java-Coding-Standard anwenden](Assignment_008/readme.md) | | 9. | 20.03.2023 | [JavaDoc schreiben](Assignment_009/readme.md) | | 10. | 20.03.2023 | [Klasse mit JUnit testen](Assignment_010/readme.md) | | 11. | 20.03.2023 | [Information-Hiding einer Klasse verbessern](Assignment_011/readme.md) | | 12. | 20.03.2023 | [Vorhandene Bibliotheken als JAR einbinden](Assignment_012/readme.md) | | 13. | 24.03.2023 | [Final anwenden](Assignment_013/readme.md) | | 14. | 24.03.2023 | [Figur und Rechteck](Assignment_014/readme.md) | | 15. | 24.03.2023 | [Figur erweitern](Assignment_015/readme.md) | | 16. | 24.03.2023 | [Figur noch einmal erweitern](Assignment_016/readme.md) | | 17. | 24.03.2023 | [Konstruktoren schreiben](Assignment_017/readme.md) | | 18. | 24.03.2023 | [Polymorphie einsetzen](Assignment_018/readme.md) | | 19. | 24.03.2023 | [Singleton](Assignment_019/readme.md) | | 20. | 24.03.2023 | [Statische Methoden und Attribute](Assignment_020/readme.md) | | 21. | 24.03.2023 | [Methode überladen](Assignment_021/readme.md) | | 22. | 24.03.2023 | [Methoden überschreiben](Assignment_022/readme.md) | | 23. | 24.03.2023 | [Varag-Methode schreiben](Assignment_023/readme.md) | | 24. | 24.03.2023 | [Vererbung von Figuren](Assignment_024/readme.md) | | 25. | 11.04.2023 | [Abstrakte Klassen](Assignment_025/readme.md) | | 26. | 11.04.2023 | [Abstrakte Klasse](Assignment_026/readme.md) | | 27. | 11.04.2023 | [Comparable implementieren](Assignment_027/readme.md) | | 28. | 11.04.2023 | [Interface Stack entwerfen](Assignment_028/readme.md) | | 29. | 11.04.2023 | [Interface: Uebersetzer](Assignment_029/readme.md) | | 30. | 11.04.2023 | [Interfaces anwenden und entwerfen](Assignment_030/readme.md) | | 31. | 20.04.2023 | [Deep-Copy mit `clone()`](Assignment_031/readme.md) | | 32. | 20.04.2023 | [Clone](Assignment_032/readme.md) | | 33. | 20.04.2023 | [`equals()` und `hashCode()` implementieren und nutzen](Assignment_033/readme.md) | | 34. | 20.04.2023 | [equals und hashCode](Assignment_034/readme.md) | | 35. | 20.04.2023 | [`toString()`-Methode implementieren](Assignment_035/readme.md) | | 36. | 20.04.2023 | [Optimierung bei Integer](Assignment_036/readme.md) | | 37. | 20.04.2023 | [Methoden der Wrapper-Klassen](Assignment_037/readme.md) | | 38. | 20.04.2023 | [Eigene Enumeration schreiben und verwenden](Assignment_038/readme.md) | | 39. | 20.04.2023 | [Enumeration schreiben](Assignment_039/readme.md) | | 40. | 20.04.2023 | [Singleton-Eigenschaft von Enumerationen](Assignment_040/readme.md) | | 41. | 20.04.2023 | [Eine vorhandene Enumeration nutzen](Assignment_041/readme.md) | | 42. | 20.04.2023 | [Stein, Papier, Schere, Echse, Spock](Assignment_042/readme.md) | | 43. | 27.04.2023 | [Ausnahmen testen](Assignment_043/readme.md) | | 44. | 27.04.2023 | [Eigene Ausnahmen schreiben und an entsprechender Stelle werfen](Assignment_044/readme.md) | | 45. | 27.04.2023 | [Eigene Exception schreiben](Assignment_045/readme.md) | | 46. | 27.04.2023 | [Handle-or-Declare-Regel anwenden](Assignment_046/readme.md) | | 47. | 27.04.2023 | [Ausnahmen mit `try` und `catch` behandeln.](Assignment_047/readme.md) | | 48. | 04.05.2023 | [`BufferedReader` zum zeilenweisen Lesen einsetzen](Assignment_048/readme.md) | | 49. | 04.05.2023 | [DataOutputStream](Assignment_049/readme.md) | | 50. | 04.05.2023 | [DataOutputStream durch Serialisierung ersetzen](Assignment_050/readme.md) | | 51. | 04.05.2023 | [Daten mit `DataOutputStream` und `DataInputStream` verarbeiten](Assignment_051/readme.md) | | 52. | 04.05.2023 | [Daten mit einem `InputStream` lesen](Assignment_052/readme.md) | | 53. | 04.05.2023 | [Daten mit einem `OutputStream` schreiben](Assignment_053/readme.md) | | 54. | 04.05.2023 | [Filesystem-Abstraktion mit `File`](Assignment_054/readme.md) | | 55. | 04.05.2023 | [Fileattribute lesen](Assignment_055/readme.md) | | 56. | 04.05.2023 | [`FilterReader`](Assignment_056/readme.md) | | 57. | 04.05.2023 | [Konsolen Input/Output](Assignment_057/readme.md) | | 58. | 04.05.2023 | [Zeilen einer Textdatei zählen](Assignment_058/readme.md) | | 59. | 04.05.2023 | [`RandomAccessFile`](Assignment_059/readme.md) | | 60. | 04.05.2023 | [`Reader` verwenden](Assignment_060/readme.md) | | 61. | 04.05.2023 | [Rot13-Verschlüsselung](Assignment_061/readme.md) | | 62. | 04.05.2023 | [Datei zerhacken](Assignment_062/readme.md) | | 63. | 04.05.2023 | [Serialisierung](Assignment_063/readme.md) | | 64. | 22.05.2023 | [Einen generischen Typ schreiben](Assignment_064/readme.md) | | 65. | 22.05.2023 | [Generische Klasse Pair schreiben](Assignment_065/readme.md) | | 66. | 22.05.2023 | [Generische Klasse Pair erweitern: NumberPair](Assignment_066/readme.md) | | 67. | 22.05.2023 | [Generische Klasse Pair erweitern: SamePair](Assignment_067/readme.md) | | 68. | 22.05.2023 | [PairList](Assignment_068/readme.md) | | 69. | 22.05.2023 | [Wildcard benutzen](Assignment_069/readme.md) | | 70. | 22.05.2023 | [Generische Queue](Assignment_070/readme.md) | | 71. | 22.05.2023 | [`super` und `extends` einsetzen](Assignment_071/readme.md) | | 72. | 22.05.2023 | [Generischen Typ verwenden](Assignment_072/readme.md) | | 73. | 22.05.2023 | [Generische Typen zusammen mit Wildcards einsetzen](Assignment_073/readme.md) | | 74. | 05.06.2023 | [Anonyme Klasse schreiben](Assignment_074/readme.md) | | 75. | 05.06.2023 | [Eigene compare-Methode schreiben](Assignment_075/readme.md) | | 76. | 05.06.2023 | [Innere Klasse Beobachter](Assignment_076/readme.md) | | 77. | 05.06.2023 | [Callback mit anonymer Klasse realisieren](Assignment_077/readme.md) | | 78. | 05.06.2023 | [Comparator als Lambda](Assignment_078/readme.md) | | 79. | 05.06.2023 | [Callback mit Lambda realisieren](Assignment_079/readme.md) | | 80. | 05.06.2023 | [Lokale Klasse schreiben](Assignment_080/readme.md) | | 81. | 05.06.2023 | [MatrixSuche](Assignment_081/readme.md) | | 82. | 05.06.2023 | [StringTransmogrifier](Assignment_082/readme.md) | | 83. | 05.06.2023 | [StringTransmogrifier erweitern](Assignment_083/readme.md) | | 84. | 05.06.2023 | [Nonstatic Member Class](Assignment_084/readme.md) | | 85. | 05.06.2023 | [Static Member Class](Assignment_085/readme.md) | | 86. | 12.06.2023 | [Iterator schreiben](Assignment_086/readme.md) | | 87. | 12.06.2023 | [Mithilfe eines Iterators über Daten iterieren](Assignment_087/readme.md) | | 88. | 12.06.2023 | [Iterator programmieren](Assignment_088/readme.md) | | 89. | 12.06.2023 | [`List` und dessen Implementierungen](Assignment_089/readme.md) | | 90. | 12.06.2023 | [`Map` verwenden](Assignment_090/readme.md) | | 91. | 12.06.2023 | [ReverserGeneric](Assignment_091/readme.md) | | 92. | 12.06.2023 | [Strings umgekehrt sortieren: Reverser](Assignment_092/readme.md) | | 93. | 12.06.2023 | [`Set` und dessen Implementierungen](Assignment_093/readme.md) | | 94. | 12.06.2023 | [CommandLineSorter](Assignment_094/readme.md) | | 95. | 12.06.2023 | [CommandLineSorter -- Version 2](Assignment_095/readme.md) | | 96. | 12.06.2023 | [`Comparator` verwenden und Objekte sortieren](Assignment_096/readme.md) | | 97. | 12.06.2023 | [Wörterbuchprogramm](Assignment_097/readme.md) |