| SWS |
7 |
| ECTS |
10 |
| Sprache(n) |
Deutsch
|
| Lehrform |
SU mit Praktikum |
| Angebot |
in jedem Wintersemester |
| Aufwand |
4 SWS Seminaristischer Unterricht und 3 SWS Praktikum
Gesamtaufwand: 300 Zeitstunden, davon ca. 80 Stunden Kontaktzeit |
| Voraussetzungen |
Keine, das Modul setzt insbesondere kein Vorwissen in Programmierung voraus. |
| Ziele |
Die Studierenden …
- erklären in eigenen Worten die Bedeutung der Softwareentwicklung für ihren fachlichen Kontext.
- beschreiben den Unterschied zwischen einzelnen programmiersprachlichen Konstrukten.
- begründen, welches Sprachkonstrukt in welchem Kontext zu verwenden ist, und warum.
- wägen systematisch ab, welches Konzept der Programmiersprache am besten geeignet ist, um eine bestimmte Anforderung in einem Algorithmus umzusetzen.
- identifizieren Stärken und Verbesserungspotenzial in gegebenem Quelltext.
- bewerten eine von ihnen selbst erstellte Software kritisch hinsichtlich Stärken und Schwächen, die in Bezug zu grundlegenden Qualitätsanforderungen bestehen (Lesbarkeit, Testbarkeit, Korrektheit).
- bewerten KI-generierte Software kritisch hinsichtlich Stärken und Schwächen sowie ihrer Eignung für den Anwendungszweck.
- entwickeln für ein einfaches Problem aus einer gegebenen Anforderungsspezifikation heraus eine Umsetzung in Software. Diese erfüllt dabei grundlegende Qualitätsanforderungen.
- erstellen schematisch grundlegende Testfälle.
- nutzen ein Werkzeug, um Testfälle automatisiert auszuführen.
- setzen systematisch Werkzeuge ein, die den Grad der erreichten Testabdeckung ermitteln.
- nutzen Werkzeug zur Versionsverwaltung sowie eine moderne IDE.
- gleichen beim Verwenden des Debuggers das, was der Debugger anzeigt, ab mit der eigenen mentalen Erwartung, bis beides nicht mehr zueinander passt und zeigen so Soll-/Ist-Differenzen auf.
- nutzen gängige KI-Modelle zur Unterstützung im Software-Entwicklungsprozess.
|
| Inhalt |
Es werden folgende Themen behandelt:
- Imperative Grundlagen: Variablen, Datentypen (primitive Typen, Strings, Arrays, Listen), Ausdrücke, Kontrollstrukturen (Verzweigungen, Schleifen)
- Algorithmische Basiskonzepte: Systematische Problemlösung, Entwurf einfacher Algorithmen, Funktionen und Methoden.
- Objektorientierung (OO): Klassen und Objekte, Attribute und Methoden, Konstruktoren, Kapselung, Vererbung, Polymorphie, abstrakte Klassen und Interfaces
- Anwendung von generischen Container-Klassen
- Testen
- Entwicklungswerkzeuge (Tooling): Einsatz einer Integrierten Entwicklungsumgebung (IDE), Debugging, Grundlagen der Versionskontrolle (z.B. Git Basics), Code-Qualität (Stylechecker, AI/MCP)
- Softwarequalität: Vorgehen beim Testen (schreiben, ausführen), Test-Systematik, Abdeckung (Coverage)
- Fehlerbehandlung: Umgang mit Ausnahmen (Exceptions)
- Systematische Fehlersuche und Debugging
- Systematisches Arbeiten mit KI-Modellen
Im Praktikum werden die theoretischen Konzepte unmittelbar an Programmieraufgaben geübt und die Nutzung der Entwicklungswerkzeuge trainiert. |
| Medien und Methoden |
-
Medien: Präsentationsmedien (Folien, Tafel, Whiteboard), Digitale Lerninhalte (E-Learning-Plattform, Videos), Software-Tools (IDE, Versionskontrollsystem, Debugger, Test-Frameworks), Haptische Materialien
-
Methoden: Seminaristischer Unterricht, Live-Übungen, Eigenständiges Programmieren (Praktikum), Aufgabenorientierte Diskussion und Arbeit in Kleingruppen, Aktivierende Lehr-/Lernmethoden
|
| Literatur |
- Ullenbloom, Christian: Java ist auch eine Insel, Rheinwerk Computing, 2022/16, ISBN 978-3-8362-8745-6
R. Schiedermeier, K. Köhler: Das Java-Praktikum, dpunkt, ISBN 978-3-89864-513-3
- Harrer, Simon; Lenhard, Jörg; Dietz, Linus: Java by Comparison, Pragmatic Programmers, 2018
- Dörn, S.: Java lernen in abgeschlossenen Lerneinheiten, Springer Vieweg, 1. Auflage, 2019
- Abts, D.: Grundkurs JAVA, Springer Vieweg, 11. Auflage, 2020
|
| Zuordnungen Curricula |
| SPO |
Fachgruppe |
Code |
ab Semester |
Prüfungsleistungen |
IF Version 2026 |
Pflicht |
|
1 |
unbenotete schriftliche Prüfung
|
|