# Programmieren 2 (Sommersemester 2023) ## 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 📚 | bis 📆 | |----|--------------------------------------------|-------------------------------------------------------|--------------------|----------| | 1 | Auffrischen, einchecken und loslegen | Auffrischung | [1][1] | ¹ | | 2 | Wie Julius Caesar programmieren | JUnit, JavaDoc, Programmierstil, Pakete, Module, JARs | [2][2], [3][3] | **19.3** | | 3 | Erben und vererben | Vererbung, Überladen, Verdecken, Konstruktoren | [4][4] | **26.3** | | 4 | Verhaltenstherapie für Klassen | Überschreiben, Polymorphie, static, final | [4][4] | **02.4** | | 5 | Mit Interfaces geht es noch abstrakter | Interfaces, abstrakte Klassen, SOLID, STUPID | [5][5] | **10.4** | | 6 | Wer sortiert, muss trotzdem suchen | Suchen, Sortieren, Regex | [6][6] | **16.4** | | 7 | Geschenkverpackungen und andere Feinheiten | Object, Wrapper, Optional, Enums, Records | [7][7], [8][8] | **23.4** | | 8 | Wenn es mal schief geht, Ausnahmen | Exceptions, try, catch | [9][9] | **01.5** | | 9 | Rein oder raus, die Daten müssen fließen | Input/Output mit Streams und Reader/Writer | [10][10] | **07.5** | | 10 | One size fits all, mit generischen Typen | Generische Typen, Wildcards | [11][11] | **14.5** | | 11 | Matroschka-Klassen | Geschachtelte Klassen, Lambdas | [12][12] | **21.5** | | 12 | Daten brauchen Struktur | Abstrakte Datentypen | [13][13] | **04.6** | | 13 | Objekte sammeln | Collections und Streams | [14][14], [15][15] | **11.6** | | 14 | Parallel läuft es schneller | Threads, Probleme der Threadprogrammierung | [16][16] | **18.6** | ¹ = Wird als bekannt vorausgesetzt [1]: https://smits-net.de/files/pr2/html/01_auffrischung/ [2]: https://smits-net.de/files/pr2/html/02_intro/ [3]: https://smits-net.de/files/pr2/html/03_strukturierung/ [4]: https://smits-net.de/files/pr2/html/04_vererbung/ [5]: https://smits-net.de/files/pr2/html/05_interfaces/ [6]: https://smits-net.de/files/pr2/html/06_algorithmen/ [7]: https://smits-net.de/files/pr2/html/06_algorithmen/ [8]: https://smits-net.de/files/pr2/html/08_enumerationen/ [9]: https://smits-net.de/files/pr2/html/09_exceptions/ [10]: https://smits-net.de/files/pr2/html/10_io/ [11]: https://smits-net.de/files/pr2/html/11_generics/ [12]: https://smits-net.de/files/pr2/html/12_geschachtelte_klassen/ [13]: https://smits-net.de/files/pr2/html/13_datenstrukturen/ [14]: https://smits-net.de/files/pr2/html/14_collections/ [15]: https://smits-net.de/files/pr2/html/15_streams/ [16]: https://smits-net.de/files/pr2/html/16_threads/ ## Assignments Hier finden Sie die Assignments (Aufgaben) für die Vorlesung Programmieren 2 (PR2). Die Assignments sind unten, zusammen mit dem 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](help/softwareausstattung.md). | # | Ausgabe | Thema | Fällig am 📆 | |----|------------|-------------------------------------------------|----------------| | 1. | 14.03.2023 | [Umgebung aufsetzen](Assignment_001/readme.md) | | | 2. | 14.03.2023 | [Erster Commit](Assignment_002/readme.md) | **24.03.2023** |