*** Status offen *** --- Angabe der Prüfungsordnung (ohne Angabe: PO 2011) *** PO 2024 *** *** Studiengang und Semester 2MT *** Modulbezeichnung --- Name laut Modulliste verwenden 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 1) Die Studierenden können komplexe Programmierkonzepte verstehen und anwenden. Die Studierenden beherrschen fortgeschrittene Konzepte der objektorientierten Programmierung und können diese in der Praxis selbstständig anwenden. 2) Die Studierenden können Softwareprojekte planen und strukturieren. Sie entwerfen grafische Benutzerschnittstellen, um die Anwendung Ihrer Algorithmen für einen Benutzer zu ermöglichen. 3) Die Studierenden können Code analysieren, optimieren und dokumentieren. Die Studierenden können bestehenden Code analysieren, um Schwachstellen, ineffiziente Abschnitte oder potenzielle Verbesserungen zu identifizieren. Sie haben erste Erfahrungen mit Teamarbeit und Qualitätssicherung. Die Studierenden können den entwickelten Code dokumentieren, um die Wartbarkeit und Nachvollziehbarkeit für andere Entwickler zu gewährleisten. 4) Die Studierenden können professionelle Programmierwerkzeuge und Entwicklungsumgebungen nutzen. Die Studierenden sind vertraut mit einer gängigen Programmiersprache und können diese effektiv einsetzen. Die Studierenden beherrschen den Umgang mit integrierten Entwicklungsumgebungen (IDEs) und können diese für die Entwicklung von Softwarelösungen nutzen. Die Studierenden können Versionskontrollsysteme (z.B. Git) anwenden, um ihre Arbeit zu verwalten und zu dokumentieren. --- 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 ***