Skip to content

Programmiermethoden-CampusMinden/PM-Lecture

Repository files navigation

archetype title
home
IFM 2.2: Programmiermethoden (Sommer 2023)

{{% notice style="note" %}}{=markdown}

Abkündigung des Moduls "Programmiermethoden"

Das Modul "Programmiermethoden" wurde im Rahmen der Reakkreditierung im Herbst 2023 durch das kleinere Modul "Programmieren 2" ersetzt und kann nicht mehr belegt werden (es werden keine Vorlesungen und keine Praktika mehr für "Programmiermethoden" angeboten).

Die Inhalte von "Programmiermethoden" werden hier für Wiederholende weiterhin gepflegt. Das zugehörige Lernmodul finden Sie im offenen ILIAS-Bereich der HSBI.

Bis zum Auslaufen der zugehörigen Prüfungsordnungen PO10 und PO18 finden auch weiterhin Prüfungen für Wiederholende statt.

Regelung für noch offene Prüfungen

Wer in "Programmiermethoden" noch eine Prüfung benötigt, kann diese in den Prüfungszeiträumen des Sommersemesters (und ggf. des Wintersemesters, falls angeboten) als Klausur nachholen.

Dabei gelten folgende Regelungen (vgl. Mail von Frau Seele vom 28.09.2023) für offene Prüfungsverfahren:

  • Parcoursprüfung: Bei einer offenen Parcoursprüfung bildet die Klausur die gesamte Prüfung.
  • Performanzprüfung:
    • Der praktische Teil der Performanzprüfung entfällt, die Note und CP werden über eine Klausur bestimmt.
    • Wenn Sie aber bereits eine Note bzw. CP für den praktischen Teil haben (und nur die theoretische Leistung noch fehlt), dann nehmen Sie an der weiterhin angebotenen Klausur teil und die Gesamtnote wird sich wie bisher aus den beiden Teilnoten zusammensetzen.

Nächste Klausur: Freitag, 27. September 2024

Die nächste Klausur für "Programmiermethoden" wird am Freitag, 27. Juli 2024 angeboten.

Die Klausur wird als digitale Klausur auf dem Prüfungs-ILIAS der HSBI in Präsenz vor Ort in Minden im Raum B40 durchgeführt. Die Prüfung beginnt um 08:00 Uhr und dauert 90 Minuten. Ein DIN-A4-Zettel ist als Hilfsmittel zugelassen. Der geprüfte Stoff bezieht sich auf den zuletzt durchgeführten Kurs (Sommer 2023, s.u.). Weitere Informationen siehe Prüfungsvorbereitung.

{{% /notice %}}{=markdown}


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)

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.

::: ::::::

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

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. :::