# 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)                      |
