pm-lecture

Lecture "Programmiermethoden"

https://github.com/programmiermethoden-campusminden/pm-lecture

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (2.7%) to scientific vocabulary

Keywords

clean-code git hacktoberfest java logging oer open-educational-resources programming refactoring teaching-materials teaching-website testing
Last synced: 4 months ago · JSON representation ·

Repository

Lecture "Programmiermethoden"

Basic Info
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • Open Issues: 1
  • Releases: 0
Topics
clean-code git hacktoberfest java logging oer open-educational-resources programming refactoring teaching-materials teaching-website testing
Created almost 2 years ago · Last pushed 4 months ago
Metadata Files
Readme License Citation Codeowners

readme.md


haslicense: true nobeamer: true

title: "IFM 2.2: Programmiermethoden (Sommer 2023)"

::: warning

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

Der Termin für die nächste Klausur für "Programmiermethoden" wird über den Prüfplan vom Studierendenservice bekanntgegeben. (vgl. LSF und Ankündigungen) :::

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

Vorlesung (2 SWS)

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

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

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) | |

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.


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.

Owner

  • Name: Programmiermethoden @ Campus Minden
  • Login: Programmiermethoden-CampusMinden
  • Kind: organization

Vorlesungen "Programmiermethoden" und "Programmieren 2" (HSBI)

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Lecture "Programmiermethoden"
message: >-
  If you use this lecture material, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Carsten
    family-names: Gips
    email: cagix@hsbi.de
    affiliation: HSBI
    orcid: 'https://orcid.org/0000-0002-4230-9060'
repository-code: >-
  https://github.com/Programmiermethoden-CampusMinden/PM-Lecture
abstract: >-
  This represents the lecture material for the lecture
  "Programmiermethoden", a course developed and taught at
  Bielefeld University of Applied Sciences.
keywords:
  - java
  - git
  - refactoring
  - testing
  - clean code
  - oer
license: CC-BY-SA-4.0

GitHub Events

Total
  • Issues event: 1
  • Delete event: 10
  • Issue comment event: 1
  • Push event: 44
  • Pull request event: 1
  • Pull request review event: 3
  • Create event: 10
Last Year
  • Issues event: 1
  • Delete event: 10
  • Issue comment event: 1
  • Push event: 44
  • Pull request event: 1
  • Pull request review event: 3
  • Create event: 10

Dependencies

.github/workflows/beamer.yaml actions
  • actions/checkout v5 composite
  • cagix/pandoc-lecture-zen master composite
  • peaceiris/actions-gh-pages v4 composite
.github/workflows/docsify.yaml actions
  • actions/checkout v5 composite
  • cagix/pandoc-lecture-zen master composite
  • peaceiris/actions-gh-pages v4 composite
.github/workflows/gfm.yaml actions
  • actions/checkout v5 composite
  • cagix/pandoc-lecture-zen master composite
  • peaceiris/actions-gh-pages v4 composite
.github/workflows/pdf.yaml actions
  • actions/checkout v5 composite
  • cagix/pandoc-lecture-zen master composite
  • peaceiris/actions-gh-pages v4 composite
.github/workflows/tests.yaml actions
  • actions/checkout v5 composite
  • cagix/pandoc-lecture-zen master composite
lecture/building/src/Dockerfile docker
  • ubuntu latest build
lecture/building/src/ant/ivy.xml maven
  • commons-cli:commons-cli 1.5.0
  • junit:junit 4.13.2
lecture/building/src/maven/pom.xml maven
  • junit:junit 4.13.2 test
lecture/coding/src/checkstyle/build.gradle maven
lecture/coding/src/formatter/build.gradle maven
lecture/coding/src/spotbugs/build.gradle maven
lecture/frameworks/src/javalin/build.gradle maven
  • io.javalin:javalin 4.5.0 implementation
  • org.slf4j:slf4j-simple 1.8.0-beta4 implementation
lecture/testing/src/mockito/build.gradle maven
  • junit:junit 4.13.2 testImplementation
  • org.mockito:mockito-core 4.5.1 testImplementation