Prof. Dr. Frank Bühler
Büro: D15/2.08
Prof. Dr. Frank Bühler ist Professor für Advanced Software Engineering am Fachbereich Informatik der Hochschule Darmstadt. Seine Lehrinteressen liegen auf den Gebieten von Business Process Management, agiler SW-Entwicklung sowie Python-Programmierung.
Überblick (Profil)
- Bachelor (FB I):
- Software Engineering (SE) - nur SS
- Projekt Systementwicklung (BPSE) -
KinderCampus (SS) und FLL (WS)
- Fortgeschrittene Programmierung mit Python (WS) - Bachelor (FB MN):
- Programmieren III (nur WS) - Master (FB I)
- Business Process Engineering (nur SS)
- Vertiefende F&E-Studie (siehe hier)
Vorlesungen, die nicht mehr angeboten werden:
- Objektorientierte Analyse und Design (OOAD)
- Parallel and Distributed Computing (Master)
- Edutainment (Master)
- Master Projekt Systementwicklung (MPSE)
- Hauptseminar (Mast 3, MN DSc)
- Prozess- und Systemintegration (Bachelor)
- Entwicklung von Java EE-Anwendungen mit agilen Methoden (Bachelor)
WS 24/25 - Kompaktkurs "Fortgeschrittene Programmierung mit Python"
Termine und Raum
Start des Kompaktserminars: 10.03.2025 - 8:30 Uhr
Ende des Kompaktserminars: 21.03.2025 - 15:45 Uhr
Dozent: Prof. Dr. Frank Bühler
Raum: C23/02.04
Anwesenheitspflicht: täglich 8:30 Uhr bis 15:45 Uhr
Hinweis: VL-Teil und Praktikum sind miteinander verzahnt
Praktikum: Miniprojekte nach SCRUM, integriert in Kompaktkurs
Anzahl Plätze: 32 (aktuell kein freier Platz vorhanden)
Überblick - Vorlesung
- Einstieg/Organisatorisches
- Grundlagen
+ Überblick: typische Einsatzgebiete von Python
+ Einrichten einer Python-Entwicklungsumgebung mit venv
und pipenv (PyCharm-IDE)
+ Prozedurale Sprachmittel von Python und funktionale Programmierung (Lambda)
+ Zentrale Datentypen und Datenstrukturen wie z. B.
Listen, Tuples, Sets und Dictionaries,
Nutzung von Comprehensions
+ Objektorientierte Programmierung in Python
+ Nutzung von Python-Modulen, wie z. B. NumPy und Matplotlib
+ Weitere Sprachmittel und Konzepte, wie z. B.
Ausnahmebehandlung, Type Hinting,
Generatoren, Iteratoren, Dekorateure, One-Liner
+ Testen von Python-Programmen
+ Verarbeitung von JSON-Dokumenten und Anbindung an eine NoSQL-Datenbank
Nützliche Links
- W3Schools Python-Tutorial: https://www.w3schools.com/python/
- The Python Tutorial: https://docs.python.org/3/tutorial/index.html
- Tutorialspoint: https://www.tutorialspoint.com/python/index.htm
-
Projekt Systementwicklung (BPSE): 30.7504
Projektstart: SS 2025
Platzvergabe: Die Platzvergabe erfolgt ausschließlich über OBS
wie auch bei anderen Lehrveranstaltungen.
Projekttreffen jeweils am Mittwoch 2. + 3. Block (ab 10:20 Uhr)
KinderCampus: 04.08.2025 bis 15.08.2025 (Mo-Fr, jeweils täglich von 8:30 Uhr bis ca. 17:00 Uhr) -
SS25 - Projekt "KinderCampus - Lego Mindstorms EV3 und Raspberry PI"
Projektorganisation-/leitung: Prof. Dr. Frank Bühler
Kontakt: frank.buehler@h-da.de
KinderCampus - Kurse für Einsteiger
und Fortgeschrittene und Experten
Im Rahmen des angebotenen Projekts geht es um die Vorbereitung/ Konzeption sowie um die Durchführung des KinderCampus 2025 in den letzten beiden Wochen der hessischen Sommerferien (4. August bis 15. August 2025). In den angebotenen Kursen lernen Kinder im Alter von 10 bis 16 Jahren das Bauen und Programmieren von verschiedenen Lego-Modellen auf Basis der Lego Mindstorms EV3-Kästen und des Raspberry PI. Als Programmiersprachen wird Scratch sowie Python verwendet.
Folgende KinderCampus-Kurse sind für 2025 in den zwei Wochen
vorgesehen:
- 2 Kurse mit EV3-Set für Einsteiger und Fortgeschrittene mit Scratch
(jeweils 5 Tage)
- 2 Expertenkurse mit Raspberry PI/Build Hat + Python
(jeweils 5 Tage)
Belegvoraussetzung
Für die Belegung des Projekts ist es zwingend erforderlich, dass Sie vom 04.08.2025 bis 15.08.2025 (Mo-Fr, jeweils täglich von 8:30 Uhr bis ca. 17:00 Uhr) für die Durchführung der Kurse Zeit haben. Sollten Sie keine Zeit haben (z. B. wegen Praxisphase oder anderer Verpflichtungen) können Sie an dem Projekt leider NICHT teilnehmen. Idealerweise haben Sie Spaß beim Umgang mit Kindern und sind teamfähig sowie zuverlässig. Auch sollten Sie bereit sein, neue Lego-Modelle zu bauen und zu programmieren und Bauanleitungen und Aufgabenhefte zu erstellen. Auch wenn Sie kreative Ideen einbringen möchten oder an technischen Steuerungen Interesse haben, sind Sie bei dem Projekt richtig.
Projektüberblick (Hauptaufgaben im SS 2025)
- Einarbeitung in den Lego-Bausatz Mindstorms EV3 - 45544
(inkl. Prüfung auf Vollständigkeit der Bauteile in den Sets)
- Evaluierung der Lego Builder App
- Einarbeitung in Lego Digital BrickLink Studio (-> siehe Bsp.)
- Entwurf von Untergründen inkl. Aufgabenstationen (vgl. FLL-Wettbewerb)
- Einarbeitung in die Programmierung (Symbolbasierte Blocksprache Scratch und MicroPython mit VS Code)
- Evaluierung und Konzeption von vorhandenen Lego-Modellen (inkl. Steuerungen - aktiv + passiv), insbesondere für eine Lego-Seilbahn (siehe hier oder hier), einen Lego Porsche (siehe hier) sowie eines Lego-Personenzugs (siehe hier) für Scratch- und Python-Programmierung auf Basis eines Lego-Hubs.
- Konzeption und Realisierung von Aufgaben (z. B. Zugsteuerung, Licht-Modul, Pi-Camera) für einen Smart-Train auf Basis von Raspberry PI (+ Build HAT + Display) sowie PiCrawler
- Erstellen von Teilen mittels 3D-Druck (-> mit FreeCAD)
- Entwicklung einer NextJS-Webanwendung für Kurswoche, inklusive Erstellung eines Python-Programmierkurses für Teilnehmer (inkl. Evaluierung von EduBlocks)
- Durchführung der Kurse (inkl. Aufbau und Abbau, Vorbereitung der Rechner, Betreuung der Kinder, Prüfen der Vollständigkeit der Sets und weiterer Dienste)
- Erstellung von Kursunterlagen (Aufgaben- und Lösungshefte, Bauanleitungen, Steckbriefe)
- Vorbereitung und Durchführung einer Eltern-Präsentation (während Kurswoche)
Zusätzliche Projektaufgaben während Kurswoche, z. B.
- Übernahme von Diensten (z. B. Getränke bereitstellen, Becher spülen, Akkus laden)
- Pausenspiele (z. B. Tischtennis, Federball)
Es wird erwartet, dass Sie aktiv in dem Projekt mitarbeiten und bereit sind entsprechende Aufgaben und Rollen während des KinderCampus zu übernehmen. In dem Projekt spielt der Teamgedanke sowie die Betreuung der Teilnehmer eine wichtige Rolle. Bei Interesse bzw. Fragen können Sie sich gerne auch vorab melden.
Dozenten: Prof. Dr. Urs Andelfinger, Prof. Dr. Frank Bühler
Das Praktikum/Assignment erfolgt in Kooperation mit der Firma Accso und den Lehrbeauftragten Gunnar von der Beck und Max Bachmann.
Start der VL: xx.04.2025
Start des Praktikums: xx.04.2025
Termine für Praktika (Doppelblock): t.b.d.
Sprachen
Die Lehrsprache ist Deutsch. Die Folien sind in englischer Sprache.
Die Klausurfragen werden auf Deutsch gestellt. Die Antworten können entweder in Englisch ODER in Deutsch verfasst werden.
Vorausschau für Lehrveranstaltung
Digitalisierung ist in aller Munde. Deutschlandweit arbeiten Unternehmen daran, Ihre IT zu modernisieren, um den stetig wachsenden Anforderungen des Marktes agiler begegnen zu können. Cloud-Technologien spielen dabei genauso eine wichtige Rolle wie asynchrone Kommunikation, Messaging und Skalierung & Verteilung von Anwendungen. Und fachlich? Fachlich ist noch immer jede IT eines jeden Unternehmens ein Abbild der Prozesse eben dieses Unternehmens. Auch diese sollen immer flexibler und agiler werden, wohlgemerkt ohne dabei die Übersicht zu verlieren. Weshalb BPM (Business Process Management) und Workflow-Engine‘s im Rahmen der Digitalisierung nicht wegzudenken sind.
Moderne hochskalierbare Workflow-Systeme wie Camunda Platform 8 bieten dabei die Möglichkeit, prozessorientierte Lösungen in einer gewohnten Entwicklungs-, Test- und Deployment-Umgebung zu entwickeln. Und das auch mit bekannten Java-Frameworks wie Spring-Boot. Immer mit dem Ziel, Technik im Code zu verankern und Fachlichkeit im Prozess darzustellen. Im Rahmen des Praktikums/Assignments nutzen wir Docker und Camunda 8 Komponenten wie die zugehörige Zeebe-Process-Engine mit entsprechendem SDK für die Java bzw. Spring-Boot-Welt. Best-Practices aus der Java-Entwicklung sind dank der hohen Entwicklerfreundlichkeit der Plattform 1:1 anwendbar und wiederverwendbar. Zu grundlegenden Software-Entwicklungsskills kommt hier lediglich die Prozess-Ebene neu hinzu – wir verwenden bewusst eine offene Plattform und keine geschlossene BPM-Suite.
Folgende Vorlesungsthemen sind geplant:
- Einführung/Überblick BPM, Überblick BPE-Assignment
- Überblick OMG-Standards im Bereich BPM
- Modellierung von Geschäftsprozessen mittels BPMN, DMN und CMMN
- Business Rules, Decision Requirements
- Statische Analyse und Simulation von Prozessen
- Process Intelligence (KPI, Alerts)
- Petri Netze, Process Mining
- Business Process Improvement, Value Chain Analysis, Value Stream Mapping
Vorlesungsbegleitendes Praktikum
Im Praktikum/Assignment wird anhand eines anwendungsnahen Beispiels ein Geschäftsprozess mit der Java-basierten Camunda Platform 8 realisiert. Dabei werden verschiedene Stufen des Business Process Engineering durchlaufen:
- Modellierung eines Geschäftsprozesses in der Notation BPMN 2
- Integration von Decision-Tables (DMN) und Nachvollziehbarkeit mittels Camunda Operate
- Ableitung eines ausführbaren Prozessmodells inklusive Überprüfung des Workflows auf Unit-Test Ebene
- Programmierung von Service Tasks und Design von Formularen für Human Tasks
- Integration externer Services
- Asynchrone Nachrichtenverarbeitung, Business Exemptions und Compensation
- Monitoring der Prozesse im Camunda Operate
Darüber hinaus werden einfache, aber wirkungsvolle BPM-Patterns wie Event-Handling, Messaging, Timer und Compensation angewendet. Am Ende des Praktikums wird der Teilnehmer, aufbauend auf seinem bisherigen Entwicklungs- & Architektur-Wissen, einen Einblick in die Grundlagen der Entwicklung moderner Prozessapplikationen bekommen haben.Kernkomponenten der Entwicklungsumgebung sind: Docker, Zeebe, Operate, Tasklist und Elasticsearch.
Zur Vorbereitung des Praktikums sollte der Teilnehmer vertraut sein mit
- Grundlagen der Java- und Web-Entwicklung (Java 21, HTML 5, Javascript, REST)
- Docker (oder alternativ Camunda 8 Run!)
- Microservice-Architekturen inkl. synchrone/asynchrone Kommunikation
- Basis-Wissen zum Spring-Framework
- Benutzung einer Java-Entwicklungsumgebung: IntelliJ (oder Eclipse) sowie JDK 21
- Kenntnisse bezüglich der Nutzung von Git/Gitlab, Maven
Das Praktikum wird in 2er-Gruppen durchgeführt. Jede Gruppe sollte einen Laptop mit folgender installierter Software besitzen:
- OpenJDK 21
- Maven 3.9.9
- IntelliJ IDEA Ultimate (Studentenlizenz wird benötigt) oder Eclipse IDE (mit Plug-In „Spring Tools 4 – for Spring Boot“)
- Camunda Modeler
- Git-Client
- Docker Desktop on Windows
Zur Einarbeitung in die BPM-Entwicklung mit Camunda gibt es hier wertvolle Informationen:
-
Camunda Academy | Camunda 8 (Demo & Getting Started Sessions)
Wer schon vor dem Praktikum anfangen möchte:
Wir freuen uns auf Euch. Das Praktikum wird von der Firma Accso .und den Lehrbeauftragten Gunnar von der Beck und Max Bachmann durchgeführt.
Kontakt
Kommunikation
Schoefferstrasse 8b
64295 Darmstadt
Büro: D15, 208
1
Sprechstunde
nach Vereinbarung