Skip to content

Programmiermethoden-CampusMinden/PM-Lecture

Repository files navigation

archetype title
home
IFM 2.2: Programmiermethoden (Sommer 2023)

::: center [Das Modul "Programmiermethoden" wurde im Rahmen der Reakkreditierung im Herbst 2023 durch das kleinere Modul "Programmieren 2" ersetzt.]{.alert}

[Die Inhalte von "Programmiermethoden" werden hier für Wiederholende weiterhin angeboten und gepflegt.]{.alert} [Es finden auch weiterhin Prüfungen für Wiederholende statt (siehe auch Abkündigung des Moduls "Programmiermethoden").]{.alert}

:::

Kursbeschreibung

Sie haben letztes Semester in OOP 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
    • Funktionale Programmierung: Default-Methoden, Funktionsinterfaces, Methodenreferenzen, Lambdas, Stream-API
    • Generische Programmierung: Generics
    • Parallele Programmierung: Threads
    • Reguläre Ausdrücke, Annotationen, Reflection
    • CLI, Konfiguration, Fremde APIs nutzen
  2. Fortgeschrittenes OO-Design
    • Entwurfsmuster: Strategy, Template-Method, Factory-Method, Singleton, Observer, Visitor, Command, ...
  3. Programmiermethoden
    • Versionskontrolle: Git
    • Testen, Coding Conventions, Refactoring
    • Logging, Build-Tools, CI

Team

Kursformat

:::::: {.tabs groupid="vl-pr"} ::: {.tab title="Vorlesung"}

Vorlesung (2 SWS)

Fr, 16:30 - 18:00 Uhr (online/J104)

::: ::: {.tab title="Praktikum"}

Praktikum (2+1 SWS)

Praktikumsgruppe Zeit Raum
Gruppe 1 Fr, 09:00 - 10:30 Uhr online/J104
Gruppe 2 Fr, 13:30 - 15:00 Uhr online/J104
Gruppe 3 Fr, 15:00 - 16:30 Uhr online/J104
Gruppe 4 Fr, 10:45 - 12:15 Uhr online/J104

::: ::::::

Durchführung als Flipped Classroom: Alle Sitzungen online/per Zoom (Zugangsdaten siehe ILIAS)

Prüfungsform, Note und Credits

Performanzprüfung, 7 ECTS

  • Praktische Teilleistung: Regelmäßige Bearbeitung der Praktikumsaufgaben, fristgerechte Abgabe der Lösungen (PDF, ZIP, Link) im ILIAS, Erstellung von Peer-Feedback im ILIAS, Vorstellung der Lösungen im Praktikum => Punkte

    Notenspiegel:

    • 90 Punkte gesamt erreichbar: Zyklus 1 und 2 je 15 Punkte, Zyklus 3 bis 5 je 15+5 Punkte
    • 4.0: ab 50% (45.0 Punkte), alle 5% nächste Teilnote, 1.0: ab 95% (85.5 Punkte)
  • Theoretische Teilleistung: Digitale Klausur ("Klausur") in den Prüfungszeiträumen; Prüfungsvorbereitung.

  • Gesamtnote: 50% Praxis, 50% Theorie

Wiederholer mit bereits begonnener Parcours-Prüfung absolvieren stattdessen eine Parcours-Prüfung. Bitte melden Sie sich vor Beginn der Praktika per E-Mail beim Dozenten.

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, 2023.
  4. "Learn Java". Oracle Corporation, 2023.

Tools

Fahrplan

:::::: {.tabs groupid="vl-pr"} ::: {.tab title="Vorlesung"}

Woche Datum Vorlesung Themen Bemerkungen
15 Fr, 14.04. Orga (Zoom) || Einführung Versionierung | Git Basics || Lambda-Ausdrücke || Javadoc
16 Fr, 21.04. Git: Branches | Branching-Strategies || Gradle || Methodenreferenzen || Strategy-Pattern
17 Fr, 28.04. Git: Remotes | Workflows || Stream-API | Optional
18 Fr, 05.05. Testen: Einführung | JUnit-Basics | Testfallermittlung | Mocking || Logging
19 Fr, 12.05. Code-Smells | Coding-Rules | Refactoring || CI Gastvortrag zu JUnit/Mocking in der Praxis von Daniel Rosowski (Smartsquare GmbH, Bielefeld)
20 Fr, 19.05. Serialisierung || Records | Default-Methoden || Docker || Git-Worktree
21 Fr, 26.05. Generics: Klassen und Methoden | Bounds und Wildcards | Type Erasure | Polymorphie || Collections
22 Fr, 02.06. RegExp || Pattern: Visitor | Observer | Command
23 Fr, 09.06. Annotationen | Reflection | Exception-Handling || Singleton-Pattern
24 Fr, 16.06. Enumerationen | Konfiguration | ANT || Template-Method-Pattern | Factory-Method-Pattern
25 Fr, 23.06. Multi-Threading: Intro Threads | Synchronisierung | Highlevel Threadkonzepte || Maven || Type-Object-Pattern
26 Fr, 30.06. Rückblick (Zoom) | Prüfungsvorbereitung
27 Mi, 05.07. (Start: 09:00 und 11:00 Uhr) Klausur (Campus Minden, B40)

::: ::: {.tab title="Praktikum"}

Woche Blatt Abgabe ILIAS und Peer-Feedback (ILIAS) Vorstellung Praktikum
16 B01a Abgabe: Do, 20.04., 08 Uhr; Peer-Feedback: Fr, 21.04., 08 Uhr Praktikum: Fr, 21.04.
17 B01b Abgabe: Do, 27.04., 08 Uhr; Peer-Feedback: Fr, 28.04., 08 Uhr Praktikum: Fr, 28.04.
18 B02a Abgabe: Do, 04.05., 08 Uhr; Peer-Feedback: Fr, 05.05., 08 Uhr Praktikum: Fr, 05.05.
19 B02b Abgabe: Do, 11.05., 08 Uhr; Peer-Feedback: Fr, 12.05., 08 Uhr Praktikum: Fr, 12.05.
20 B03a Abgabe: Do, 18.05., 08 Uhr; Peer-Feedback: Fr, 19.05., 08 Uhr Praktikum: Fr, 19.05.
21 B03b Abgabe: Do, 25.05., 08 Uhr; Peer-Feedback: Fr, 26.05., 08 Uhr Praktikum: Fr, 26.05.
22 B04a Abgabe: Do, 01.06., 08 Uhr; Peer-Feedback: Fr, 02.06., 08 Uhr Praktikum: Fr, 02.06.
23 B04b Abgabe: Do, 08.06., 08 Uhr; Peer-Feedback: Fr, 09.06., 08 Uhr Praktikum: Fr, 09.06.
24 B05a Abgabe: Do, 15.06., 08 Uhr; Peer-Feedback: Fr, 16.06., 08 Uhr Praktikum: Fr, 16.06.
25 B05b Abgabe: Do, 22.06., 08 Uhr; Peer-Feedback: Fr, 23.06., 08 Uhr Praktikum: Fr, 23.06.
26 B06 Abgabe: Fr, 30.06., 08 Uhr Praktikum: Fr, 30.06.

::: ::::::

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 wird zudem 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.

::: slides

LICENSE

Unless otherwise noted, this work is licensed under CC BY-SA 4.0. :::