*** Status offen *** *** PO 2024 *** *** Studiengang und Semester --- für Studiengang nur Kürzel verwenden: E, EP, EE, I, MT oder II 2MT *** Modulbezeichnung Programmieren 2 *** Englische Modulbezeichnung Programming 2 *** Modulkuerzel PRG2 *** *** Art Pflichtfach *** ECTS-Punkte 7,5 *** Studentische Arbeitsbelastung 105, 120 *** Voraussetzungen (laut Prüfungsordnung) *** Empfohlene Voraussetzungen Programmieren 1 *** Pruefungsform und -dauer Klausur 1,5h oder mündliche Prüfung oder Studienarbeit *** Lehrmethoden und Lernmethoden Vorlesung, Praktikum *** Modulverantwortlicher M. Rauschenberger *** Qualifikationsziele Die Studierenden können komplexe, objektorientierte Programmierkonzepte verstehen und selbstständig anwenden. Sie planen und strukturieren Softwareprojekte und entwerfen grafische Benutzerschnittstellen. Die Studierenden können Code analysieren, optimieren und dokumentieren, um Schwachstellen, ineffiziente Abschnitte oder potenzielle Verbesserungen zu identifizieren. Die Studierenden können professionelle Programmierwerkzeuge zum Beispiel integrierten Entwicklungsumgebungen (IDEs) oder Versionskontrollsysteme (z.B. Git) anwenden. --- ggf. kürzen *** Lehrinhalte 1) Komplexe Programmierkonzepte und objektorientierte Programmierung: Fortgeschrittene Konzepte der objektorientierten Programmierung (z.B. Vererbung, Kapselung), Anwendung dieser Konzepte in praktischen Programmieraufgaben, Umgang mit Datenstrukturen und Bibliotheken, z.B. Pandas für Datenanalyse, NumPy für numerische Berechnung oder Pygame für die Spieleentwicklung 2) Softwareprojektplanung und -strukturierung: Agile Vorgehensweisen, Verwendung von Entwurfsmustern zur Strukturierung des Codes z.B. MVC 3) Entwurf grafischer Benutzerschnittstellen: Grundlagen der Benutzerinteraktion und Benutzerschnittstellengestaltung, Verwendung von Frameworks und Bibliotheken zur Entwicklung von grafischen Benutzerschnittstellen, Implementierung von grafischen Elementen, Interaktionsmöglichkeiten und Feedback-Mechanismen, 4) Codeanalyse, -optimierung und -dokumentation: Dokumentation des Codes für eine klare Wartbarkeit und Nachvollziehbarkeit, Verwendung von Codestandards, Umgang mit Refactoring 5) Teamarbeit und Qualitätssicherung: Agile Zusammenarbeit in einem Team bei der Entwicklung von Softwareprojekten, Aufgabenverteilung, Kommunikation und Koordination innerhalb des Teams, Grundlegende Qualitätssicherungsmethoden zur Sicherstellung der Funktionalität und Zuverlässigkeit der Software 6) Professionelle Programmierwerkzeuge und Entwicklungsumgebungen: Verwendung einer gängigen Programmiersprache und effektiver Einsatz in der Programmierung, Umgang mit integrierten Entwicklungsumgebungen (IDEs), Anwendung von Versionskontrollsystemen (z.B. Git) zur Verwaltung, Zusammenarbeit und Dokumentation von Codeänderungen *** Literatur Zuckarelli, J. L. (2021). Programmieren lernen mit Python und JavaScript. In Programmieren lernen mit Python und JavaScript. https://doi.org/10.1007/978-3-658-29850-0 Dörn, S. (2020). Python lernen in abgeschlossenen Lerneinheiten. https://doi.org/10.1007/978-3- 658-28976-8 Schön, E.-M., Buchem, I., Sostak, S., & Rauschenberger, M. (2023). Shift Toward Value-Based Learning - Applying Agile Approaches in Higher Education. Springer Selection, 1–20. ------------------------------------------------------------------ --- --- Hier beginnt die Aufzählung der einzelnen Lehrveranstaltungen --- des Moduls (z.B. Vorlesung und Praktikum). --- --- Falls mehrere Lehrveranstaltungen vorgesehen sind, bitte die --- entsprechenden Bereiche auskommentieren. --- ------------------------------------------------------------------ *** Titel der Lehrveranstaltung Programmieren 2 *** Dozent M. Rauschenberger *** SWS 4 *** Titel der Lehrveranstaltung Praktikum Programmieren 2 *** Dozent M. Rauschenberger, B. Arp *** SWS 2 *** Parallelitaet 3 ***