Prof. Dr. Frank Bühler
Lehrgebiet
Advanced Software Engineering
Sprechstunde
nach Vereinbarung
- HOBIT-Beauftragter
- Schul- und Messebeauftragter
- Studienfachberater
Büro: D15/2.08
Prof. Dr. Frank Bühler ist Professor für Advanced Software Engineering am Fachbereich Informatik der Hochschule Darmstadt. Seine Lehr- und Forschungsinteressen liegen auf den Gebieten von Business Process Management (BPMN, DMN, Workflow-Systeme mit KI-Anbindung), agiler SW-Entwicklung (insbesondere SCRUM, KANBAN und Continuous Integration/Inspection/Delivery) sowie Process Mining und Python-Programmierung.
Darüber hinaus ist Prof. Bühler am Fachbereich Informatik Koordinator für vorhochschulische Aktivitäten und Ansprechpartner für Schulen und Schulkooperationen. Aktuell gibt es eine strategische Kooperation mit der Hochtaunusschule in Oberusel. Auch unterstützt er aktiv das Hessen-Technikum und den Girls' Day am Fachbereich Informatik.
Ü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 - Fortgeschrittene Programmierung in Python
Termine und Raum
Start der Vorlesung: 16.10.2024 (1. Block, Raum C23/02.01)
Start des Praktikums: 24.10.2024 (Raum D15/02.02)
Dozent: Prof. Dr. Frank Bühler
Ü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
- Vertiefende Anwendungsbereiche, wie z. B.
+ Verarbeitung von JSON-Dokumenten und Anbindung an eine
NoSQL-Datenbank
- Zusammenfassung
Überblick - Praktikum (PVL - Testat)
Im Rahmen des Praktikums wird ein Python-Projekt im Bereich KI/ML durchgeführt. Dabei wird ein agiles Vorgehen und Gitlab genutzt. Am Ende des Projekts erfolgt die Präsentation des Projektergebnisses.
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
WS 24/25 - Bachelor-Projekt "First Lego League Challenge - Regionalwettbewerb"
Projekt Systementwicklung (BPSE): 30.7504
Projektorganisation-/leitung: Prof. Dr. Frank Bühler,
Kontakt: frank.buehler@h-da.de
Projektziel:
Konzeption und Durchführung des FLL-Regionalwettbewerbs für die Region Darmstadt für die Saison 24/25., siehe https://www.first-lego-league.org/de/challenge-2024-25/darmstadt
Projektstart: 16. Oktober 2024
Projekttreffen im WS24/25: jeweils am Mittwoch 2. + 3. Block (ab 10:20 Uhr im Raum D15/02.02)
Beschreibung
Bei dem Bachelorprojekt geht es um die Organisation und Ausrichtung des First Lego League Challenge Wettbewerbs in der Region Darmstadt durch den Fachbereich Informatik für die kommende Saison 2024/25. Der FLL-Wettbewerb findet am 25. Januar 2025 an der Hochschule Darmstadt statt.
Die First Lego League, abgekürzt FLL, ist ein weltweites Bildungsprogramm für Kinder und Jugendlichen im Alter von 9 bis 16 Jahren. An diesem Wettbewerb nehmen 14 Schulklassen mit ca. 120-140 Schülern teil. Im Rahmen des Roboterwettbewerbs müssen diese Schulklassen verschiedene Aufgaben in unterschiedlichen Kategorien durchführen. So muss die Schulklasse eine Forschungsaufgabe bearbeiten und am Wettbwerbstag vorstellen. Höhepunkt des Programms ist der Roboterwettbewerb, bei denen die Teams ihre in den Wochen davor entwickelten Lego-Mindstorms-Roboter (RCX, NXT, EV3, Robot Inventor oder Education Spike Prime) verwenden, um auf einem Spielfeld vielfältige Aufgaben lösen. Alle Aufgaben sowie das Roboter-Design werden von einer Jury bewertet. Weitere Infos findet man hier. Eine eindrucksvolle Lösung von Aufgaben des Roboter Game aus dem letzten Jahr (mit der maximal zu erreichenden Punktzahl) ist hier zu sehen.
Am Wettbewerbstag wollen wir auch ein ansprechendes Rahmenprogramm für die Besucher organisieren. Hier sind kreative Ideen gefragt.
Belegvoraussetzung
Für die Belegung des Projekts ist es zwingend erforderlich, dass Sie am 24.01.2025 (Aufbau, nachmittags ab ca. 15 Uhr) und am 25.01.2024 (Wettbewerbstag von 8 Uhr bis ca. 21:30 Uhr) für die Durchführung des Wettbewerbs Zeit haben.
Projektaufgaben
- Einarbeitung in Lego Sets inkl. Programmierung (Scratch - siehe hier und Python - siehe hier) sowie in Raspberry PI+Build Hat und Python - siehe hier)
- Erarbeitung von Musterlösungen für die Wettbewerbsaufgaben
- Einarbeitung in die Bewertung der verschiedenen Aufgaben (Robot Game, Forschungsfragen, Robot Design Process und Grundwerte), Schiedsrichterschulung
- Planung des Wettbewerbstags (Raumplanung, Hinweisschilder, Zeitplanung, Materialplanung, Rollenkonzept, Bewertungseingabe, Aufbau der Spieltische, Siegerehrung etc.
Info-Stand mit Demonstratoren (z.B. RetroPI)
- Konzeption und Entwicklung von Demonstratoren
- Konzeption und Entwicklung eines Webauftritts (mit Next.js und React)
- Erstellen einer virtuellen Maschine für Lego Mindstorms Sets (EV3 und Robot Inventor)
- Bühnen- und Medientechnik (Mikrofon, Projektion, Aufnahme der Robot Games und Anzeige mit Rasperry PI Cam auf Beamer und Youtube, Beleuchtung, Durchsagen, Musik)
- Video- und Fotoaufnahmen während Wettbewerbstag (inkl. Bereitstellung für Teilnehmer)
- Öffentlichkeitsarbeit (z.B. Postererstellung, Einwerben von Sponsoren und Infos an Schulen)
Termine und Raum
Start der Vorlesung: 21. Oktober 2024 (1. Block - Raum: D14/01.03)
Start des Praktikums: 21. Oktober 2024 (2. und 3. Block - Raum: D15/02.02 )
Dozent: Prof. Dr. Frank Bühler
Themen des Moduls
• Einführung in Softwaretechnik (Software Engineering)
- Motivation, TCO bei SW-Entwicklung, Betrachtung des Lebenszyklus
von Software
- Durchführung einer Anforderungsanalyse (z. B. mittels UseCases +
User Stories inkl. Akzeptanzkriteren), Tracking von Issues
(inkl. Issue-Boards)
- Agile SW-Entwicklung mit SCRUM (Agiles Manifest, Projektrollen,
Aktivitäten, Events, Artefakte, SCRUM-Ablauf)
• Kooperative Softwareentwicklung in Python inklusive begleitender Tests und
Qualitätssicherung (z. B. lint)
- Versionierung von SW-Konfigurationen, Einsatz von Git inkl.
Git-Workflows, Versionierung der Inkremente (inkl. Merge-Requests
und Feature Branches)
- Sicherstellung der SW-Qualität mittels Unit- und Integrationstests
• Continuous Integration/Deployment, CI/CD-Pipeline
- Motivation und Aufgaben von CI/CD
- Erstellung von CI/CD-Pipelines (Gitlab) zur Sicherstellung der
SW-Qualität (Build-, Test- und QS-Stages)
• Verarbeitung von JSON-Dokumenten in Python, Nutzung von
NoSQL-Datenbanken (MongoDB)
- JSON als Dokumenten- und Datenaustauschsprache in Python
- CRUD-Zugriffe auf NoSQL-DB MongoDB
• Vertiefung der objektorientierten Programmierung anhand eines
konkreten Projekts (z. B. aus dem Bereich Visual Computing/ML)
Kontakt
Kommunikation
Schoefferstrasse 8b
64295 Darmstadt
Büro: D15, 208
1
Sprechstunde
nach Vereinbarung