htw saar Piktogramm QR-encoded URL
Zurück zur Hauptseite Version des Moduls auswählen:
Lernziele hervorheben XML-Code



Programmierung 3

Modulbezeichnung:
Bezeichnung des Moduls innerhalb des Studiengangs. Sie soll eine präzise und verständliche Überschrift des Modulinhalts darstellen.
Programmierung 3
Modulbezeichnung (engl.): Programming 3
Studiengang:
Studiengang mit Beginn der Gültigkeit der betreffenden ASPO-Anlage/Studienordnung des Studiengangs, in dem dieses Modul zum Studienprogramm gehört (=Start der ersten Erstsemester-Kohorte, die nach dieser Ordnung studiert).
Praktische Informatik, Bachelor, ASPO 01.10.2022
Code: PIB-PR3
SAP-Submodul-Nr.:
Die Prüfungsverwaltung mittels SAP-SLCM vergibt für jede Prüfungsart in einem Modul eine SAP-Submodul-Nr (= P-Nummer). Gleiche Module in unterschiedlichen Studiengängen haben bei gleicher Prüfungsart die gleiche SAP-Submodul-Nr..
P221-0033
SWS/Lehrform:
Die Anzahl der Semesterwochenstunden (SWS) wird als Zusammensetzung von Vorlesungsstunden (V), Übungsstunden (U), Praktikumsstunden (P) oder Projektarbeitsstunden (PA) angegeben. Beispielsweise besteht eine Veranstaltung der Form 2V+2U aus 2 Vorlesungsstunden und 2 Übungsstunden pro Woche.
2V+2P (4 Semesterwochenstunden)
ECTS-Punkte:
Die Anzahl der Punkte nach ECTS (Leistungspunkte, Kreditpunkte), die dem Studierenden bei erfolgreicher Ableistung des Moduls gutgeschrieben werden. Die ECTS-Punkte entscheiden über die Gewichtung des Fachs bei der Berechnung der Durchschnittsnote im Abschlusszeugnis. Jedem ECTS-Punkt entsprechen 30 studentische Arbeitsstunden (Anwesenheit, Vor- und Nachbereitung, Prüfungsvorbereitung, ggfs. Zeit zur Bearbeitung eines Projekts), verteilt über die gesamte Zeit des Semesters (26 Wochen).
5
Studiensemester: 3
Pflichtfach: ja
Arbeitssprache:
Deutsch
Studienleistungen (lt. Studienordnung/ASPO-Anlage):
Praktikum
Prüfungsart:
Projektarbeit

[letzte Änderung 18.10.2016]
Verwendbarkeit / Zuordnung zum Curriculum:
Alle Studienprogramme, die das Modul enthalten mit Jahresangabe der entsprechenden Studienordnung / ASPO-Anlage.

PIB-PR3 (P221-0033) Praktische Informatik, Bachelor, ASPO 01.10.2022 , 3. Semester, Pflichtfach
Arbeitsaufwand:
Der Arbeitsaufwand des Studierenden, der für das erfolgreiche Absolvieren eines Moduls notwendig ist, ergibt sich aus den ECTS-Punkten. Jeder ECTS-Punkt steht in der Regel für 30 Arbeitsstunden. Die Arbeitsstunden umfassen Präsenzzeit (in den Vorlesungswochen), Vor- und Nachbereitung der Vorlesung, ggfs. Abfassung einer Projektarbeit und die Vorbereitung auf die Prüfung.

Die ECTS beziehen sich auf die gesamte formale Semesterdauer (01.04.-30.09. im Sommersemester, 01.10.-31.03. im Wintersemester).
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 13.10.2024]
Als Vorkenntnis empfohlen für Module:
PIB-ASE Automatisierte Softwareentwicklung
PIB-SES Softwareentwicklung mit Spring
PIB-WEB Grundlagen der Webentwicklung


[letzte Änderung 11.10.2024]
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 setzen Logging-Techniken ein, um Fehler in ihrer Software effizient zu identifizieren und zu beheben.
 
- 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 bewerten die Qualität ihrer Software anhand vorgegebener Testmethoden und nehmen auf Basis der Ergebnisse Anpassungen vor.
 
- Die Studierenden verwenden moderne Werkzeuge zur Codegenerierung und wenden KI-basierte Ansätze zur Programmierunterstützung an, um sich wiederholende Aufgaben zu automatisieren.
 
- 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 Projekte in Teams unter Anwendung agiler Praktiken, um komplexe Softwareprojekte zu managen.

[letzte Änderung 13.10.2024]
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
 
Coding Katas und Programmierpuzzles:
 
- Regelmäßige Coding Katas zur Vertiefung der Programmierkenntnisse
- Java Challenges als Programmierrätsel
 
Generierung des Programmcodes mit modernen Werkzeugen:
 
- Codegenerierung zur Automatisierung wiederkehrender Aufgaben mit modernen IDEs
- KI-gestützte Codegenerierung zur Erzeugung von Boilerplate Code (z.B. GitHub Copilot)
 
Logging und Fehlerdiagnose:
 
- Logging-Techniken und Frameworks zur Fehlerdiagnose (wie z.B. SLF4J und Logback)
- Einsatz von Logging zur Diagnose und Überwachung in Produktivsystemen unter Berücksichtigung von Logging-Level und Performance-Aspekten
 
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 13.10.2024]
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, ...
[Fri Dec 27 01:58:08 CET 2024, CKEY=pp3, BKEY=pi2, CID=PIB-PR3, LANGUAGE=de, DATE=27.12.2024]