Skip to content

Programmiermethoden-CampusMinden/Prog2-Lecture

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IFM 2.1: Programmieren 2 (Sommer 2025)

Important

🖇 Unterlagen

… And, lastly, there’s the explosive growth in demand, which has led to many people doing it who aren’t any good at it. Code is merely a means to an end. Programming is an art and code is merely its medium. Pointing a camera at a subject does not make one a proper photographer. There are a lot of self-described coders out there who couldn’t program their way out of a paper bag.

– John Gruber auf daringfireball.net

Kursbeschreibung

Sie haben letztes Semester in Prog1 die wichtigsten Elemente und Konzepte der Programmiersprache Java kennen gelernt.

In diesem Modul geht es darum, diese Kenntnisse sowohl auf der Java- als auch auf der Methoden-Seite so zu erweitern, dass Sie gemeinsam größere Anwendungen erstellen und pflegen können. Sie werden fortgeschrittene Konzepte in Java kennenlernen und sich mit etablierten Methoden in der Softwareentwicklung wie Versionierung von Code, Einhaltung von Coding Conventions, Grundlagen des Softwaretests, Anwendung von Refactoring, Einsatz von Build-Tools und Logging auseinander setzen. Wenn uns dabei ein Entwurfsmuster “über den Weg läuft”, werden wir die Gelegenheit nutzen und uns dieses genauer anschauen.

Überblick Modulinhalte

  1. Fortgeschrittene Konzepte in Java (“Classic Java”)
    • Reguläre Ausdrücke, Annotationen, Reflection
    • Generische Programmierung: Generics
    • Parallele Programmierung: Threads
    • CLI, Konfiguration, fremde APIs nutzen1
    • Graphische Oberflächen mit Swing2
  2. Fortgeschrittene Konzepte in Java (“FP”)
    • Default-Methoden, Funktionsinterfaces, Methodenreferenzen, Lambdas, Optional, Stream-API
  3. Versionierung mit Git
  4. Softwarequalität
    • Testen, Coding Conventions & Smells, Refactoring, Javadoc, Logging
  5. Entwurfsmuster
    • Strategy, Template-Method, Factory-Method, Singleton, Observer, Visitor, Command, …
  6. Bauen von Software
    • Gradle, Docker, Continuous Integration (GitHub Workflows)

(durchgestrichene Themen nicht im Sommersemester 2025)

Team

  • Carsten Gips (Sprechstunde nach Vereinbarung)
  • BC George (Sprechstunde nach Vereinbarung)
  • Tutoren (siehe ILIAS-Mitgliederliste)

Kursformat

Vorlesung (2 SWS) Praktikum (2 SWS)
Fr, 08:00 - 09:30 Uhr (online) G1: Fr, 09:45 - 11:15 Uhr (online, Carsten)
(Carsten: Flipped Classroom) G2: Fr, 11:30 - 13:00 Uhr (online, Carsten)
G3: Fr, 09:45 - 11:15 Uhr (online, BC)
G4: Fr, 11:30 - 13:00 Uhr (online, BC)

Online-Sitzungen per Zoom (Zugangsdaten siehe ILIAS). Sie können hierzu den Raum J101 bzw. J104 (vgl. Stundenplan) nutzen.

Fahrplan

Hier finden Sie einen abonnierbaren Google Kalender mit allen Terminen der Veranstaltung zum Einbinden in Ihre Kalender-App.

Monat Tag Vorlesung VL-Quiz Praktikum
April 11. Orga (Zoom), FAQ
18. Feiertag Feiertag Feiertag
25. Einführung Versionierung, Git Basics; Lambda-Ausdrücke; Gradle Q01 B01
Mai 02. Git-Branches, Branching-Strategien; Methodenreferenzen; Logging Q02 B02
09. Git-Remotes, Git-Workflows; Stream-API; Record-Klassen Q03 B03
16. Station I 09:00-11:00 Uhr, B40 (Aufteilung siehe Ankündigung #997)
23. Einführung Testen, JUnit-Basics; Optional; Visitor-Pattern Q04 B04
30. Testfallermittlung, Mocking; Default-Methoden; Observer-Pattern; Continuous Integration (CI) Q05 B05
Juni 06. Code-Smells, Coding-Rules, Refactoring; Javadoc Q06 B06
13. Station II 09:00-10:30 Uhr, B40 (Aufteilung siehe Ankündigung #1025)
20. RegExp; Template-Method-Pattern, Command-Pattern; Annotationen Q07 B07
27. Generics: Klassen und Methoden, Bounds und Wildcards, Type Erasure, Polymorphie; Docker Q08 B08
Juli 04. Intro Threads, Synchronisierung, Highlevel Threadkonzepte; Reflection Q09 B09
Prüfungsphase I 09.07. Station III 09:00-10:30 Uhr, B40 (Aufteilung siehe Ankündigung #1032)
Prüfungsphase II 24.09.(?) Station IV, B40 (Aufteilung siehe Ankündigung)

Abgabe der Übungsblätter jeweils bis Fr, 08:00 Uhr im ILIAS, Vorstellung der Lösung im zugehörigen Praktikum. Bearbeitung der Quizzes jeweils Sa, 00:00 Uhr (Vorwoche) bis Fr, 08:00 Uhr im ILIAS.

Prüfungsform, Note und Credits

Parcoursprüfung, 5 ECTS (PO23)

Da Sie das Programmierhandwerk erlernen und üben und vertiefen sollen, dürfen Sie im Rahmen dieser Lehrveranstaltung noch keine KI-gestützten Assistenten benutzen. Lösungen, die dennoch ganz oder teilweise unter Zuhilfenahme von KI-Unterstützung erstellt wurden, werden wie nicht abgegeben behandelt.

Prüfung im ersten Zeitraum

  1. Quizzes: mind. 5 der 9 Quizzes bestanden (ohne Note/Punkte) (Einzelbearbeitung, fristgerecht bis zur jeweiligen Vorlesung, je Quiz bis zu 3x wiederholbar, 60% pro Quiz zum Bestehen nötig)
  2. Praktikum: mind. 5 der 9 Übungsblätter bestanden (ohne Note/Punkte) (bis zu 3er Teams, alle Aufgaben eines Blattes bearbeitet, individuelle(!) fristgerechte Abgabe der Lösungen im ILIAS als aussagekräftiges Post Mortem3, Vorstellung der Lösungen im Praktikum durch jedes Teammitglied, aktive Beteiligung an der Diskussion im Praktikum)
  3. Station I: ILIAS-Test (30 Minuten in Minden im B40)
  4. Station II: ILIAS-Test (30 Minuten in Minden im B40)
  5. Station III: ILIAS-Test (30 Minuten in Minden im B40)

Station I und II finden im Vorlesungsslot statt (Aufteilung siehe separate Ankündigung), Station III im ersten Prüfungszeitraum (Termin lt. Bekanntgabe vom Prüfungsamt: Mi, 09.07., Aufteilung siehe separate Ankündigung). Die Punkte der beiden besseren Stationen werden summiert bzw. es wird der Mittelwert der beiden besten prozentualen Ergebnisse ermittelt zur die Berechnung der Note.4

Gesamtnote: 4.0: ab 50%, alle 5% nächste Teilnote, 1.0: ab 95% (jeweils nur wenn Quizzes bestanden und Praktikum bestanden)

Bei mind. drei über das Minimum hinaus bestandenen Quizzes und/oder Aufgabenblättern verbessert sich die Gesamtnote um eine Teilnote.

(Hinweise zur Prüfungsvorbereitung für Station I bis III)

Prüfung im zweiten Zeitraum

  1. Station IV: Schriftliche Prüfung (digitale Klausur) 90 Minuten in Minden im B40 (Termin lt. Bekanntgabe vom Prüfungsamt: voraussichtlich 24.09.)

Gesamtnote: 4.0: ab 50%, alle 5% nächste Teilnote, 1.0: ab 95%

(Hinweise zur Prüfungsvorbereitung für Station IV)

Materialien

Literatur

  1. Java ist auch eine Insel. Ullenboom, C., Rheinwerk-Verlag, 2021. ISBN 978-3-8362-8745-6.
  2. Pro Git (Second Edition)”. Chacon, S. und Straub, B., Apress, 2014. ISBN 978-1-4842-0077-3.
  3. “The Java Tutorials”. Oracle Corporation, 2024.
  4. “Learn Java”. Oracle Corporation, 2025.

Tools

Förderungen und Kooperationen

Förderung durch DH.NRW (Digi Fellowships)

Die Überarbeitung dieser Lehrveranstaltung wurde vom Ministerium für Kultur und Wissenschaft (MKW) in NRW im Einvernehmen mit der Digitalen Hochschule NRW (DH.NRW) gefördert: “Fellowships für Innovationen in der digitalen Hochschulbildung” (Digi Fellowships).

Kooperation mit dem DigikoS-Projekt

Diese Vorlesung wurde vom Projekt “Digitalbaukasten für kompetenzorientiertes Selbststudium” (DigikoS) unterstützt. Ein vom DigikoS-Projekt ausgebildeter Digital Learning Scout hat insbesondere die Koordination der digitalen Gruppenarbeiten, des Peer-Feedbacks und der Postersessions in ILIAS technisch und inhaltlich begleitet. DigikoS wird als Verbundprojekt von der Stiftung Innovation in der Hochschullehre gefördert.


LICENSE

Unless otherwise noted, this work by Carsten Gips and contributors is licensed under CC BY-SA 4.0. See the credits for a detailed list of contributing projects.

Last modified: 0250314 (Readme: remove links to different preview variants (#1033), 2025-07-02)

Footnotes

  1. als Teilaufgabe im Praktikum

  2. nur als Wiederholung im Praktikum

  3. Post Mortem: Jede Person beschreibt in der ILIAS-Abgabe individuell(!) die Bearbeitung des jeweiligen Aufgabenblattes zurückblickend mit 200 bis 400 Wörtern. Gehen Sie dabei aussagekräftig und nachvollziehbar auf folgende Punkte ein: (a) Zusammenfassung: Was wurde gemacht? (b) Implementierungsdetails: Kurze Beschreibung besonders interessanter Aspekte der Umsetzung. (c) Was war der schwierigste Teil bei der Bearbeitung? Wie haben Sie dieses Problem gelöst? (d) Was haben Sie gelernt oder (besser) verstanden? (e) Team: Mit wem haben Sie zusammengearbeitet? (f) Links zu Ihren Pull-Requests mit der Lösung (erst ab Blatt 04). Siehe auch https://github.com/Programmiermethoden-CampusMinden/Prog2-Lecture/discussions/981.

  4. Wenn die Maximalzahl der Punkte für Station I, II und III identisch ist, wird einfach die Summe der Punkte der beiden besseren Stationen berechnet und für die Bildung der Gesamtnote genutzt. Wenn die Maximalzahl der Punkte für Station I, II und III voneinander abweicht, dann wird jeweils das erreichte prozentuale Ergebnis berechnet und die Gesamtnote über den Mittelwert der beiden besseren Ergebnisse berechnet.