IFM 2.1: Programmieren 2 (PO23, Sommer 2024)
... 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
- 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
Graphische Oberflächen mit Swing
- Fortgeschrittenes OO-Design
- Entwurfsmuster:
Strategy, Template-Method,Factory-Method,Singleton, Observer, Visitor, Command, ...
- Entwurfsmuster:
- Programmiermethoden
- Versionskontrolle: Git
- Testen, Coding Conventions, Refactoring
- Logging, Build-Tools, CI
(durchgestrichene Themen nicht im Sommersemester 2024)
Team
- Carsten Gips (Sprechstunde nach Vereinbarung)
- Tutoren (siehe ILIAS-Mitgliederliste)
Kursformat
Vorlesung (2 SWS)
Mi, 08:00 - 09:30 Uhr (online)
Durchführung als Flipped Classroom.
Praktikum (2 SWS)
Praktikumsgruppe | Zeit | Raum |
---|---|---|
Gruppe 1 | Mi, 11:30 - 13:00 Uhr | online |
Gruppe 2 | Mi, 09:45 - 11:15 Uhr | D320 |
Gruppe 3 | Mi, 09:45 - 11:15 Uhr | online |
Gruppe 4 | Mi, 11:30 - 13:00 Uhr | D320 |
Praktika Gruppen 2 und 4 in Präsenz.
Online-Sitzungen per Zoom (Zugangsdaten siehe ILIAS). Sie können hierzu den Raum J104 nutzen.
Prüfungsform, Note und Credits
Parcoursprüfung, 5 ECTS (PO23)
- Stationen:
- Praktikum: 10x Übungsblätter mit jeweils 1P (Einzelbearbeitung, mindestens 60% bearbeitet, fristgerechte Abgabe der Lösungen im ILIAS, Vorstellung der Lösungen im Praktikum => Punkte)
- Schriftliche Prüfung (digitale Klausur) mit 100P; Prüfungsvorbereitung
- Gesamtnote: 4.0: ab 50P, alle 5P nächste Teilnote, 1.0: ab 95P
- Stationen:
- Schriftliche Prüfung (digitale Klausur) mit 100P; Prüfungsvorbereitung
- Gesamtnote: 4.0: ab 50P, alle 5P nächste Teilnote, 1.0: ab 95P
Materialien
Literatur
- "Java ist auch eine Insel". Ullenboom, C., Rheinwerk-Verlag, 2021. ISBN 978-3-8362-8745-6.
- "Pro Git (Second Edition)". Chacon, S. und Straub, B., Apress, 2014. ISBN 978-1-4842-0077-3.
- "The Java Tutorials". Oracle Corporation, 2023.
- "Learn Java". Oracle Corporation, 2023.
Tools
- JDK: Java SE 21 (LTS) (Oracle oder Alternativen, bitte 64-bit Version nutzen)
- IDE: Eclipse IDE for Java Developers oder IntelliJ IDEA (Community Edition) oder Visual Studio Code oder Vim oder ...
- Git
Fahrplan
Die nächste Klausur für "Programmieren 2" (IFM 2.1, PO23) wird am Mittwoch, 02. Oktober 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 2024). Weitere Informationen siehe Prüfungsvorbereitung.
Hier finden Sie einen abonnierbaren Google Kalender mit allen Terminen der Veranstaltung zum Einbinden in Ihre Kalender-App.
Bitte geben Sie uns Feedback: Nehmen Sie bitte an der anonymen Umfrage zu "Programmieren 2" teil.
Monat | Tag | Vorlesung | Praktikum |
---|---|---|---|
April | 17. | Orga (Zoom), FAQ | |
24. | Generics: Klassen und Methoden, Bounds und Wildcards, Type Erasure, Polymorphie; Gradle | B01 | |
Mai | 01. | Mai-Feiertag | Mai-Feiertag |
08. | Einführung Versionierung, Git Basics; Lambda-Ausdrücke; Javadoc | B02 | |
15. | Dienstbesprechung | B03 | |
22. | Git-Branches, Branching-Strategien; Methodenreferenzen; Logging | B04 | |
29. | Git-Remotes, Git-Workflows; Stream-API; Record-Klassen; Intro Dungeon | B05 | |
Juni | 05. | Einführung Testen, JUnit-Basics; Optional; Visitor-Pattern | B06 |
12. | Testfallermittlung, Mocking; Default-Methoden; Observer-Pattern; Serialisierung | B07 | |
19. | Code-Smells, Coding-Rules, Refactoring; Continuous Integration (CI) | B08 | |
26. | RegExp; Template-Method-Pattern, Command-Pattern; Enumerationen | B09 | |
Juli | 03. | Intro Threads, Synchronisierung, Highlevel Threadkonzepte; Konfiguration | B10 |
10. | Rückblick (Zoom), Prüfungsvorbereitung | ||
tbd | Klausur (Campus Minden, B40) |
Abgabe der Übungsblätter jeweils bis 08:00 Uhr im ILIAS.
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.