|
|
| Modulbezeichnung (engl.):
Programming 3 |
|
| Code: PIB-PR3 |
|
|
2V+2P (4 Semesterwochenstunden) |
|
5 |
| Studiensemester: 3 |
| Pflichtfach: ja |
Arbeitssprache:
Deutsch |
Studienleistungen (lt. Studienordnung/ASPO-Anlage):
Praktikum |
Prüfungsart:
Projektarbeit
[letzte Änderung 18.10.2016]
|
PIB-PR3 (P221-0033) Praktische Informatik, Bachelor, ASPO 01.10.2022
, 3. Semester, Pflichtfach
|
|
Die Präsenzzeit dieses Moduls umfasst bei 15 Semesterwochen 60 Veranstaltungsstunden (= 45 Zeitstunden). Der Gesamtumfang des Moduls beträgt bei 5 Creditpoints 150 Stunden (30 Std/ECTS). Daher stehen für die Vor- und Nachbereitung der Veranstaltung zusammen mit der Prüfungsvorbereitung 105 Stunden zur Verfügung.
|
Empfohlene Voraussetzungen (Module):
PIB-PR1 Programmierung 1 PIB-PR2 Programmierung 2
[letzte Änderung 11.10.2025]
|
Als Vorkenntnis empfohlen für Module:
PIB-ASE Automatisierte Softwareentwicklung PIB-SES Softwareentwicklung mit Spring PIB-WEB Grundlagen der Webentwicklung
[letzte Änderung 01.08.2025]
|
Modulverantwortung:
Prof. Dr.-Ing. Martin Burger |
Dozent/innen: Prof. Dr.-Ing. Martin Burger
[letzte Änderung 28.09.2016]
|
Lernziele:
- Die Studierenden implementieren moderne Programmierkonzepte, um die Effizienz und Lesbarkeit ihrer Software zu verbessern. - Die Studierenden wenden die Prinzipien des Clean Code an, um die Lesbarkeit und Wartbarkeit ihres Codes sicherzustellen. - Die Studierenden entwerfen objektorientierte Softwarelösungen unter Anwendung fortgeschrittener Techniken und Methoden, um skalierbare und wartbare Systeme zu realisieren. - Die Studierenden integrieren fortgeschrittene Bibliotheken und Frameworks in ihre Softwareprojekte, um deren Funktionalität zu erweitern. - Die Studierenden implementieren Testautomatisierung und betten diese in Continuous Integration ein, um die Qualität und Stabilität ihrer Software kontinuierlich sicherzustellen. - Die Studierenden analysieren und refaktorisieren bestehende Software, um deren Struktur und Effizienz zu verbessern. - Die Studierenden lösen regelmäßig Programmieraufgaben, um ihre Fähigkeiten zur Problemlösung und zur effizienten Anwendung von Programmierkonzepten zu demonstrieren. - Die Studierenden planen und realisieren ein Projekt im Team unter Anwendung agiler Praktiken, um ein komplexes Softwareprojekt zu managen.
[letzte Änderung 11.10.2025]
|
Inhalt:
Schwerpunkte sind die Anwendung fortgeschrittener Programmierkonzepte, die Verbesserung der Softwarequalität durch Refactoring sowie der Einsatz moderner Werkzeuge und Technologien in der Softwareentwicklung. Die folgenden Inhalte werden anhand der Programmiersprache Java und relevanter Werkzeuge vermittelt und durch praktische Übungen gefestigt: Fortgeschrittene objektorientierte Programmierung: - Java-Records und Pattern-Matching - Entwurfsmuster wie Singleton, Factory, Observer Clean Code und Softwarequalität: - Prinzipien von Clean Code, einschließlich Namenskonventionen, Kommentaren im Code, Methodenstruktur und einfachem Design Refactorings und Code-Verbesserungen: - Refactorings zur Verbesserung der Lesbarkeit und Wartbarkeit - Unterstützung durch IDEs (z.B. IntelliJ IDEA) Testautomatisierung und Continuous Integration: - Unit-Tests und Integrationstests mit JUnit - Continuous Integration mit Maven und GitLab/Github auf einem gemeinsamen Branch Bibliotheken und Frameworks: - Google Guava für erweiterte Funktionalitäten und Datenstrukturen - jOOQ für typsichere und fluent-style SQL-Abfragen Versionsverwaltung und kollaborative Entwicklung: - Git-Grundlagen: zentrale Konzepte, grundlegende Befehle, Workflow-Grundlagen - Gemeinsames Arbeiten an einem Branch in Verbindung mit Continuous Integration Projektarbeit: - Mehrwöchiges Teamprojekt, das die vermittelten Inhalte integriert und vertieft
[letzte Änderung 11.10.2025]
|
Weitere Lehrmethoden und Medien:
- Folien - Beamer - Tafel - vorlesungsspezifische Website
[letzte Änderung 13.10.2024]
|
Literatur:
- Bloch, J. (2017). Effective Java (3rd Edition). Addison-Wesley Professional - Farley, D. (2010). Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Addison-Wesley Professional. - Farley, D. (2021). Modern Software Engineering: Doing What Works to Build Better Software Faster. Addison-Wesley Professional. - Freeman, E. (2021). Entwurfsmuster von Kopf bis Fuß. dpunkt. - Inden, M. (2020). Java Challenge. dpunkt. - Martin, R. C. (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Pearson. - Siessegger, N. (2024). Git – kurz & gut. dpunkt. - Ullenboom, C. (2023). Java ist auch eine Insel: Einführung, Ausbildung, Praxis. Rheinwerk.
[letzte Änderung 13.10.2024]
|
Modul angeboten in Semester:
WS 2024/25,
WS 2023/24,
WS 2022/23,
WS 2021/22,
WS 2020/21,
...
|