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.

WS 25/26 - Fortgeschrittene Programmierung in Python

Termine und Raum
Start der Vorlesung:       xx.10.2025
Start des Praktikums:     xx.10.2025 
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. Des weiteren wird im Rahmen des Python-Projekts im Zusammenarbeit mit Masterstudierenden (Informationsrecht, FB GW) das Thema "Lizenzrecht" betrachtet.


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 25/26 - 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 25/26, siehe https://www.first-lego-league.org/de/challenge-2025-26/darmstadt

Projektstart: xx. Oktober 2025
Projekttreffen im WS25/26: 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 2025/26. Der FLL-Wettbewerb findet am 17. Januar 2026 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 in dieser Saison 12 Schulklassen mit ca. 120 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 16.01.2026 (Aufbau, nachmittags ab ca. 15 Uhr) und am 17.01.2026 (Wettbewerbstag von 8 Uhr bis ca. 21:30 Uhr) für die Durchführung des Wettbewerbs Zeit haben. 


Projektaufgaben

- Planung und Organisation des Wettbewerbstags (Raumplanung, Hinweisschilder, Zeitplanung, Materialplanung, Rollenkonzept, Nutzung der Auswertungssoftware, Aufbau der Spieltische, Siegerehrung, Info-Stand mit Demonstratoren z.B. RetroPI)
- Rahmenprogramm mit Präsentationen und Mitmachaktionen (z. B. Glücksrad, PiCrawler, Foto-Booth)
- Erarbeitung von Lösungen für Wettbewerbsaufgaben, Konzeption und Entwicklung von Demonstratoren
- Einarbeitung in die Bewertung der verschiedenen Aufgaben (Robot Game, Forschungsfragen, Robot Design Process und Grundwerte), Teilnahme an Schiedsrichter- und Juryschulungen
- 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:       xx. Oktober 2025 (1. Block) 
Start des Praktikums:     xx. Oktober 2025 (2. und 3. Block)
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

Prof. Dr. Frank Bühler

Kommunikation Schoefferstrasse 8b
64295 Darmstadt
Büro: D15, 208

frank.buehler@h-da.de

1

Sprechstunde
nach Vereinbarung