Im 4. und 5. Semester können je zwei Wahlpflichtmodule belegt werden. Hier kann man aus einem Angebot von 16 Modulen zu aktuellen Themen wählen.

Das Wahlpflicht-Angebot wird in regelmäßigen Abständen durch die Ausbildungskommission (AKO) aktualisiert. Hierbei werden thematisch veraltete Module bzw. Module, die nicht gut besucht wurden, durch aktuelle Module ersetzt. Am Ende eines jeden Sommersemesters wird dazu ein Aufruf für die Einreichung von Modulangeboten veröffentlicht, am Anfang des Wintersemesters werden die Vorschläge durch die AKO ausgewertet und eine Auswahl für das folgende Sommersemester getroffen. 

Sie haben aktuell die Auswahl zwischen den folgenden Modulen:

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Pamela Schaudin
Lernziele / Kompetenzen Die Studierenden können komplexe Probleme des Interface Designs lösen und Informationen verständlich, rasch erfassbar und gut auffindbar in visuellen Systemen zusammenzufassen. Sie entwickeln bereits erworbene, tiefgreifende Kenntnisse zur plattformübergreifenden Konzeption und Gestaltung von Interface Design für interaktive Anwendungen weiter. Sie sind in der Lage selbständig Interaction Design Techniken und Methoden anzuwenden sowie Designkonzepte für verschiedene Arten interaktiver Medien zu entwickeln. Diese werden den unterschiedlichen, medienspezifischen Anforderungen gerecht und in interaktiven Prototypen umgesetzt. Es werden Kompetenzen zu den Themen Interaction Design, Informationsarchitektur, Usability, User Experience, Interaktivität und Prototyping erworben und die elementaren Faktoren medialer Gestaltung – Objekt, Raum, Zeit und Interaktion – erarbeitet. In einem themenorientierten Projekt werden wichtige Methoden, Aspekte und Phasen zur Gestaltung digitaler Medienanwendungen erlernt und ein interaktiver Prototyp wird erstellt.
Inhalte Interface und Interaktions-Design für unterschiedliche digitale Medienarten, interaktive Medienapplikationen und interaktive Mediensysteme:
  • Informationsarchitektur (Struktur, Navigation, Benutzerführung)
  • Strukturierung / Komposition (Wireframes, Flowcharts, Storyboards)
  • Informationsvisualisierung (Methoden zur Planung, Strukturierung und Visualisierung von komplexen Daten und Prozessen)
  • Kompositionsregeln, medienadäquate Gestaltung, User Experience
  • Digitaler Content (Gestaltung und Aufbereitung statischer, dynamischer und interaktiver Inhalte)
  • Animation und Bewegtbild (vor allem im Spannungsfeld von Raum, Zeit, Dynamik, Dramaturgie, Timing, usw.)
  • Interaktionsdesign (Methoden, linear vs. nonlinear, Orientierung, nutzerorientiertes Design, Ergonomie und Usability,)
  • Konzeption und Entwurf (grafische Grundbausteine des Interface Designs, Abstraktion & Visualisierung, Interface Design Patterns, Evaluation)
  • rototyping und Usability-Testing
  • Interface Design im interdisziplinären Kontext
In der Übung entwickeln die Studierenden prototypisch eine interaktive Anwendung, die ein komplexes Thema mit visuellen Mitteln und insbesondere unter Einbeziehung von Nutzerinteraktion zeitgemäß und benutzerfreundlich vermittelt.

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Sven Graupner
Lernziele / Kompetenzen Heutzutage muss immer mehr Software in immer kürzerer Zeit entwickelt werden. Damit diese Software noch wartbar bleibt, muss von vornherein Augenmerk auf deren Qualität und Testbarkeit gelegt werden. Die Studierenden lernen zu diesem Zweck konstruktive und analytische Methoden der Qualitätssicherung und dafür passende Werkzeuge kennen. Sie können derartige Werkzeuge einordnen, auswählen und anwenden.
Inhalte Software-Qualitätskriterien nach ISO 9126 als Rahmen für die folgenden Inhalte Konstruktiver Qualitätssicherung:
  • Typsichere Sprachen einsetzen
  • Programmierkonventionen einhalten (z.B. Google Java Style)
  • Redundanzfreiheit anstreben (DRY-Prinzip)
  • Variable Daten minimieren (z.B. mit final, immutable types)
  • Schnittstellen minimieren
  • Patterns einsetzen
  • Test Driven Design
Analytische Qualitätssicherung
  • Code Reviews
  • Pair Programming
  • Software-Metriken (z.B. LoC, McCabe Complexity, Fan In, Fan Out, Code Duplications)
  • Statische Analysewerkzeuge (z.B. SonarQube, PMD/CPD, FindBugs)
  • Automatisierte Unit-Tests (z.B. mit JUnit oder ScalaTest)
  • Testüberdeckungsanalyse (z.B. mit SonarQube, Cobertura)
  • Tests asynchroner Abläufe
  • Automatisierte Oberflächentests (z.B. mit Selenium)
  • Automatisierte Lasttests

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Jürgen Lohr
Lernziele / Kompetenzen Die Studierenden kennen Produktionsprozesse und deren Signalverarbeitung sowie die Verteilung der Medien in Systemen und in den Distributionskanälen.
Inhalte
  • Vertiefung der Analoge Audio, Bild und Videotechnik: Signale, Waveform, Wandler (Akustik-Elektrisch), AD/DA-Wandler
  • Produktionstechnik Kamera/Mikro, Display/Lautsprecher, Mischer, Aufzeichnung und Monitoren, Speicherformat, Übertagung
  • Produktionsprozesse: Planung und Konzeption, Produktionsdurchführung
  • Postproduktion: Schnitt, Bearbeitung, Export
  • Distributionsprozesse: Planung und Konzeption, Produktionsdurchführung
  • Zwischenprodukte; Metadaten, Archivformat, Kodierungsformat
  • Medien-Systeme: Redaktionssysteme, Asset-Content-Management-Systeme
  • Medienprodukte/Dienstleistung

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Hartmut Schirmacher
Lernziele / Kompetenzen Die Studierenden lernen, die Programmiersprache C++ als Werkzeug zur Implementierung performanter und modular aufgebauter Applikationen und Bibliotheken zu verwenden. Ein großer Fokus liegt auf aktuellen Sprachstandards und Paradigmen, generischem Programmieren, funktionalem Design, und der Separation of Concerns. Durch die tiefer gehende Betrachtung von Speicherverwaltung, Referenzen und Zeigern, Containern und Polymorphie wird das Grundverständnis für den Performance-bewussten Einsatz der Sprache sowie das für die Funktionsweise anderer Sprachen vertieft.
Inhalte Unterricht und Übungen orientieren sich an folgenden möglichen Themen:
  • Kompilation, Linking, Build-System, Entwicklungsumgebung
  • Code-Organisation, Präprozessor, Headerdateien
  • Value-Semantik vs. Referenz-Semantik
  • Funktionen, Lambdas, funktionales Denken
  • Klassen und Operatorenüberladung
  • Modularer Code und Separation of Concerns
  • Stack, Heap, Zeiger und Referenzen
  • Ressourcen-Verwaltung, Smart Pointer, RAII
  • Generisches (Meta-) Programmieren mit Templates
  • Besonderheiten bei Vererbung; multiple Vererbung
  • Nutzung von Standard-Bibliotheken für Container, Strings, Algorithmen (STL, Boost)
  • GUI-Programmierung (Qt/QML)
  • Eigene Implementierung ausgewählter Algorithmen und Datenstrukturen in C++

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Dragan Macos
Lernziele / Kompetenzen Die Studierenden sollen in der Lage sein, iPhone- und iPad-Applikationen aufzusetzen und datenbank-, ortungs-, und kartebasierte Apps ohne Einarbeitungsaufwand zu entwickeln. Sie sind in der Lage, unbekannte iOS-Programmbibliotheken (wie z. B. Bibliotheken für die Erstellung von WEB-Applikationen) innerhalb einer Woche produktiv zu verwenden.
Inhalte Im Rahmen der Veranstaltung werden folgende Themen behandelt:
  • Grundlegenden Prinzipien der Programmiersprache Swift mit den entsprechenden Sprachkonstrukten
  • Wichtigste Softwarebibliotheken für die iOS-Geräte, GUI, GPS, Kamera...
  • Verwendung des Softwareentwicklungstools xCode.
Jeder Unterrichtsblock beinhaltet eine theoretische Einführung und das entsprechende praktische Anwendungsszenario – eine kleine Beispiel-App. Die Entwicklung der Beispiel-App wird durch den Dozenten vorgeführt und danach durch die Studierenden an eigenen Rechnern wiederholt.
Anschließend wird eine App entwickelt, welche die gezeigten Konzepte und Bibliotheken in ein Projekt integriert.

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Jörn Kreutel
Lernziele / Kompetenzen Die Studierenden kennen typische Anwendungsszenarien für mobile Anwendungen und können Mehrwerte mobiler Anwendungen im Hinblick auf diese Szenarien identifizieren. Die Studierenden verfügen über Entwicklungskompetenzen in einer ausgewählten Technologie zur Umsetzung mobiler Applikationen (z.B. Android Java Framework, Webtechnologien und -frameworks) und können Anwendungen mit Standard-Bedienelementen wie Listen, Formularen, Menüs, Dialogen etc. entwickeln. Die Studierenden verstehen die Rolle mobiler Applikationen im Rahmen von Client-Server Architekturen und können Alternativen zur client- und server-seitigen Persistierung der von einer Anwendung verwendeten Daten umsetzen. Die Studierenden kennen – ausgehend vom Beispiel der verwendeten Technologie – Einsatzmöglichkeiten und Architekturmuster von Anwendungsframeworks. Die Studierenden sind dazu in der Lage, die in der Veranstaltung erworbenen Entwicklungskompetenzen im Bereich der ausgewählten Technologie selbständig anhand von einschlägigem Dokumentationsmaterial weiter zu entwickeln.
Inhalte
  • Die Studierenden kennen typische Anwendungsszenarien für mobile Anwendungen und können Mehrwerte mobiler Anwendungen im Hinblick auf diese Szenarien identifizieren.
  • Die Studierenden verfügen über Entwicklungskompetenzen in einer ausgewählten Technologie zur Umsetzung mobiler Applikationen (z.B. Android Java Framework, Webtechnologien und -frameworks) und können Anwendungen mit Standard-Bedienelementen wie Listen, Formularen, Menüs, Dialogen etc. entwickeln.
  • Die Studierenden verstehen die Rolle mobiler Applikationen im Rahmen von Client-Server Architekturen und können Alternativen zur client- und server-seitigen Persistierung der von einer Anwendung verwendeten Daten umsetzen.
  • Die Studierenden kennen – ausgehend vom Beispiel der verwendeten Technologie – Einsatzmöglichkeiten und Architekturmuster von Anwendungsframeworks.
  • Die Studierenden sind dazu in der Lage, die in der Veranstaltung erworbenen Entwicklungskompetenzen im Bereich der ausgewählten Technologie selbständig anhand von einschlägigem Dokumentationsmaterial weiter zu entwickeln.

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Kristian Hildebrand
Lernziele / Kompetenzen Die Studierenden lernen die grundlegenden Architektur- und Entwurfsmuster von aktuellen Rahmenwerken und Bibliotheken aus den Bereichen Creative Coding, Spieleentwicklung und Simulation kennen. Damit sind Sie in der Lage, existierende Systeme zu verwenden und zu erweitern, sowie eigene Projekte unter Verwendung relevanter Best Practices umzusetzen.
Inhalte In diesem Modul wird die Architektur aktueller Media- und Game-Engines exemplarisch dargestellt. Dabei wird besonders auf die technischen Grundlagen einzelner Komponenten eingegangen. Mögliche Themenbereiche sind:
  • Architektur- und Entwurfsmuster
  • Real-Time Rendering
  • Physikalische Simulation und Animation
  • Game AI und Networking
  • Echtzeit Video- und Bildbearbeitung
  • Tool-Chain und externe Formate
  • Entwicklung für mobile Geräte
In den Übungen entwickeln die Studierenden semesterbegleitend in kleinen Gruppen das Konzept und den Prototypen einer eigenen interaktiven Multimedia-Anwendung, eines Computerspiels oder einer Simulation unter Einsatz aktueller Rahmenwerke und Bibliotheken.

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Agathe Merceron
Lernziele / Kompetenzen Die Studierenden können den Begriff des maschinellen Lernens konkretisieren und von dem des menschlichen Lernens abgrenzen. Sie lernen eine Reihe unterschiedlicher Verfahren des maschinellen Lernens kennen und erproben diese an Beispielen in Unterricht und Übung. Sie können die Randbedingungen des maschinellen Lernens erläutern und beurteilen, welche Verfahren am besten für bestimmte Probleme geeignet sind. Sie verstehen was “richtig” lernen im algorithmischen Sinne bedeutet (z.B. nicht auswendig lernen). In den Übungen können kleine Projekten von 1-3 Wochen Länge kleinere lernende Systeme programmiert (oder vorbereitete Systeme fertiggestellt) und an praktischen Beispielen ausprobiert werden. (Beispiele: Erstellen eines Entscheidungsbaums (händisch/programmatisch) zu gegebenen Datensätzen; Implementation/Konfiguration eines neuronalen Netzes zur Erkennung von Buchstaben; Implementation einer Warenkorbanalyse mit Hilfe von Assoziationsregeln, …). Neben praktischen Übungen werden theoretische Konzepte vertieft. Kenntnisse im Maschinellen Lernen bieten Berufschancen beispielsweise für Anwendungen in Verkaufsportalen wie Zalando oder Suchmaschinen wie Google.
Inhalte
  • Lernen aus Daten
  • Visualisierung von Daten
  • Unsupervised Learning - Clustering
  • Klassifizierung
  • Vorhersagen - Approximation von Funktionen
  • Genetische Algorithmen
  • Verknüpfen von Datensätzen - Association Rules
  • Theoretische Betrachtungen

Modulbeschreibung
Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Johannes Konert
Lernziele / Kompetenzen Die Studierenden konzipieren und realisieren Webanwendungen mit modernen Werkzeugen und Frameworks. Die Studierenden können komplexe Architektur- und Entwurfsmuster für Webanwendungen wiedergeben, abwägen und anwenden.
Inhalte In dem praktisch ausgerichteten Modul werden die Lehr-/Lerninhalte in wesentlichen Teilen durch die Studierenden erarbeitet. Die wechselnden Themen werden in Kleingruppen durch wissenschaftliche Recherche (u.A. Internet) aufbereitet und im Rahmen von Lehrvorträgen und kleinen Übungsaufgaben untereinander vermittelt. In kleinen Teams werden eigene Prototypen unter Nutzung der aktuellen Frameworks mittels agiler Entwicklungsmethoden wöchentlich um die neu erlernten Inhalte ergänzt. Die Lehrkraft nimmt dabei die Rolle eines „Kunden“ ein, welche die Produktprototypen anhand von Meilensteinen abnimmt.
Im jeweiligen Semester wird immer eines (bzw. wenige) Frameworks, -tools betrachtet und mit diesen intensiv gearbeitet. Die aktuelle Auswahl wird zu Beginn der Lehrveranstaltung von der Lehrkraft mitgeteilt.
Die praktische Arbeit im Rahmen der wöchentlichen Übungen umfasst:
  • Einarbeitung in Teilaspekte moderner Webframeworks und -tools anhand von Dokumentation und Codebeispielen (unter Anleitung)
  • Entwurfsprinzipien und Architekturdesigns der Webframeworks und -tools
  • Recherche und Problemlösestrategien
  • Kollegiale Beratung in der Projektarbeit
  • Strategisches Fehlerlösen (Debuggingstrategien)
  • Agile Konzeption und Entwicklung eigener Prototypen im Team anhand der vorgestellten Teilaspekte moderner Webframeworks und -tools.
  • Dokumentation und Werkzeuge zur Dokumentation

Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Lehrkraft Rebecca Dombach
Lernziele / Kompetenzen Die Studierenden erlernen fortgeschrittene Techniken für das Frontend-Design im Bereich Webprogrammierung. Sie erwerben theoretische und praktische Kenntnisse in Bezug auf die Anwendung von modernen Layout-Techniken und den Umgang mit Präprozessoren. Der sichere Umgang mit den vermittelten Techniken befähigt die Studierenden dazu, wartbare, wiederverwendbare und performante CSSDateien zu erstellen. Durch die intelligente Auswahl von Frameworks und Libraries oder auch den Verzicht darauf bekommen die Studierenden mehr Spielraum für eigenes Design, das nicht durch gängige Frameworks wie bootstrap oder foundation vorgegeben ist.

Inhalte
  • Fortgeschrittene Techniken für das Frontend-Design im Bereich Webprogrammierung.
  • Anwendung und Vergleich neuester CSS3 Layout-Module, wie flex, grid, shapes und multicolumn.
  • Verwendung von CSS3 Farb-Modulen anstelle von Grafiken und Hintergründen.
  • Festigung im Umgang mit strukturellen Pseudo-Klassen und Spezifitätsregeln.
  • Einführung in den Umgang mit Präprozessoren. Was ist ein Präprozessor, welche gibt es und wie kann man gängige Programmierkonzepte auf CSS3 anwenden, so dass die Dateien effizient und wartbar werden.
  • Praktische Anwendung eines Präprozessors mit Sass (Syntactically awesome stylesheets), einer Scriptsprache für die Erweiterung von CSS-Stylesheets zu wartbaren, redundanzfreien und performanten Dateien, durch Verwendung von Variablen, Funktionen und Kontrollstrukturen...
  • 
Aufsetzen des Sass-Compilers und eines Projektes.

Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Lehrkraft Prof. Dr. Jürgen Lohr
Lernziele Die Studierenden erlernen aktuelle Technologien der kreativen Konzeption, multimedialer Gestaltung und vor allem Programmierung von sog. audiovisuellen Objekten (Video oder Audio 'Chunks', 3D-Objekte bei Sound, Multi-Layer & Multi-Channel bei Video/Bild/Animation-Objekten usw.) für interaktive Web-Media Anwendungen. Sie lernen die Umsetzbarkeit von web-basierten Verfahren kennen, um audiovisuelle Medien als Streams und Medienobjekte mit vielfältigen Interaktionstechniken zu nutzen und dynamisch audiovisuell zu manipulieren.
Inhalte In der Übung:
  1. Konzeptions- und Entwurfstechniken für interaktive Web-Media Anwendungen
  2. Contenterstellung und Live-Medienproduktion: Pre-, Post-Produktion, Export, Archiv, Kompression für Distributionswege
  3. Schwerpunkt 1: Interaktivität von audiovisuellen Elementen bei objektbasierten Medienapplikationen
  4. Schwerpunkt 2: Echtzeit Content-Veränderungen und Inhalts-Modifikationen von Audiovisuellen Objekten basierend auf den ausgeführten Interaktionen
  5. Schwerpunkt 3: 3D, Multi-Layer, Multi-Channel Techniken bei audiovisuellen Objekten
  6. Programmierung von kleinen Modulen für audio-visuelle Applikationen, wie Web-Anwendungen, Streaming-Anwendungen, Mediathek-Portalen, Web-Conferencing, VR-Media, u.a. in Javascript und mit FFMPEG

Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Lehrkraft Prof. Dr. Amy Siu
Lernziele Die Studierenden lernen Web-Applikationen mit der Programmiersprache Python zu entwickeln. Sie können verschiedene aktuelle Technologien bzw. Werkzeuge wie Entwicklungs-Frameworks, Verknüpfung zur Datenbank, ORM (object-relational mapping) und Maßnahmen zur Sicherheit einsetzen. Sie können den Inhalt einer Web-Applikation nach dem Entwurfsmuster „Model-View-Controller“ aufbauen und mit interaktiven und multimedialen Elementen gestalten. Sie können eine Web-Applikation von der Konzeption bis zur Umsetzung im Team realisieren. Außerdem wird die Sozialkompetenz der Studierenden durch Gruppenarbeit gefördert.
Inhalte In der Übung:
  • Grundlagen der Programmiersprache Python (Syntax, Operatoren, Kontrollstrukturen, Datenstrukturen, Ausnahmebehandlung)
  • Python-basiertes Entwicklungs-Framework (z.B. Django)
  • Gestaltung des Inhalts einer Web-Applikation nach dem Entwurfsmuster „Model-View-Controller“
  • Interaktion mit Benutzern (z.B. Formular, E-Mail, Datei hoch- und herunterladen)
  • Multimedialer Inhalt (z.B. visuelle Effekte, Klangeffekte, Musik, Video)
  • Personalisierung mittels Cookies und Sessions, dazu Maßnahmen zur Sicherheit
  • Verknüpfung zur Datenbank mit ORM (Object-Relational Mapping)
  • Qualitätssicherung entsprechend ausgewählter Entwicklungs-Frameworks
  • Optional: Weitere vertiefende Themen (z.B. Datenbehandlung mit XML / JSON; Einsatz einer REST-API; Suchfunktion; Standard-Bibliothek mit dem Schwerpunkt mathematische Berechnungen und Leistungsfähigkeit; virtuelle Umgebung)
In den Übungen werden die Themen am Rechner vertieft. Die Studierenden entwickeln in kleinen Gruppen eine Web-Applikation.

Leistungspunkte 5
Präsenzzeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Sebastian von Klinski
Lernziele / Kompetenzen Das Wahlpflichtfach setzt unmittelbar auf dem Pflichtmodul Web-Engineering II auf. In WE2 lernen die Studierenden, eine Web-Anwendung bestehend aus einer Single-Page-Anwendung und einem REST-Server umzusetzen. Für den Einsatz einer solchen Anwendung im professionellen Umfeld gibt es zahlreiche Aspekte, die beachtet und umgesetzt werden müssen. In diesem Modul lernen die Studierenden, welche Aspekte für eine professionelle Weiterentwicklung und den Betrieb einer Web-Anwendung von Bedeutung sind. Anhand einer beispielhaften Web-Anwendungen werden Techniken und Methoden wie beispielsweise automatisiertes Testen, Continuous Integration, Hardening und horizontales Skalieren praktisch umgesetzt.
Inhalte Es werden unter anderem die folgenden Inhalte behandelt:
  • IIT-Security und Hardening von Web-Anwendungen: Schützen der Anwendung und des REST-Servers vor gängigen Hacker-Angriffen
  • Skalierung: Deployment der Anwendung in einem horizontalen Cluster (z.B. mit Docker und Kubernetes)
  • Automatisiertes Testen, Continuous Integration/ Deployment: Unit-, Integrations-, Performance- und End-2-End-Tests, für Web-Anwendung und REST-Server über gängige Testing-Tools, CI-Pipelines in Git, etc.
  • UX – User Experience: Grundregeln einer professionellen User-Experience
  • Monitoring für Web-Anwendungen: Nutzen von gängigen Stack- Komponenten für das Logging, Performance-Monitoring und Nutzer-Monitoring
  • Weiterführende Themen: Übersichtsartig könnten noch folgende Themen behandelt werden: Micro-Services, Micro-Frontends, Performance-Monitoring, High-Performance-Logging-Server …

Leistungspunkte 5
Präsenszeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Amy Siu
Lernziele / Kompetenzen Die Studierenden lernen Datenverarbeitung mit der Programmiersprache Python zu realisieren. Wichtig sind dabei die Konzepte, die eine Arbeit als Data Scientist ermöglichen. Sie können verschiedene aktuelle Bibliotheken verwenden. Sie können ihre Programmierlösung in Jupyter Notebook, der Standard-Entwicklungsumgebung zu Data Science, gestalten und umsetzen. Sie können Daten nach Aufgabenstellung durch Analyse, Bearbeitung und Umgestaltung bereitstellen sowie ihre Einsichten durch Visualisierung darstellen.
Inhalte
  • Grundlagen der Programmiersprache Python (Syntax, Operatoren, Kontrollstrukturen, Datenstrukturen, Ausnahmebehandlung)
  • Jupyter Notebook als Programmierumgebung
  • Techniken in Python zur Datenbehandlung (load, transform, reshape, merge, slice usw.) anhand aktueller Bibliotheken (z.B. NumPy, Pandas)
  • Arbeit mit einer Breite an Datentypen (numerische Daten, Zeitstempel, Bilder, Texte usw.), -formaten (CSV, JSON, XML usw.) sowie -sätzen
  • Grundlegende Verwendung von Datenvisualisierung anhand aktueller Bibliotheken (z.B. Matplotlib, plotly, seaborn)
  • Optional: Weitere vertiefende Themen (z.B. Einblick in Data Cleaning, Ausblick auf maschinelles Lernen mit scikit-learn, Ausblick auf Deep Learning mit TensorFlow
  • Datenvisualisierung mit Web-App-orientierten Werkzeugen wie Streamlit)

In den Übungen werden die Themen am Rechner vertieft. Einzelarbeit zu den Übungsaufgaben werden in erster Linie anvisiert.

Leistungspunkte 5
Präsenszeit 0 SWS SU, 4 SWS Ü
Koordination Prof. Dr. Jens von Pilgrim
Lernziele / Kompetenzen Die Studierenden kennen die Grundlagen von Compilerbau (Parser, AST) und modellgetriebener Softwareentwicklung (Metamodellierung, Code-Generierung, Validierung) und können diese zu Erstellung kleinerer Tools einsetzen.
Inhalte In der professionellen Softwareentwicklung benötigt man immer wieder kleinere Tools, um beispielsweise ein Datenformat in ein anderes zu konvertieren, aus (einfachen) Spezifikationen initialen Code zu erzeugen oder um existierenden Code zu validieren oder sogar weiter zu verarbeiten, etwa um Dokumentation oder Tests zu generieren. In dem Modul wird pragmatisch in die Themengebiete Compilerbau, Model-Driven Development und Domain Specific Languages eingeführt, um kleine eigene kleine Tools (für die Kommandozeile oder als VSCode-Extension; vorwiegend mit JavaScript/TypeScript) zu schreiben. So werden verschiedene Datenformate (JSON, YAML, etc.) vorgestellt und gezeigt, wie man dafür einfach Validatoren schreiben oder daraus Code generieren kann. Mittels der TypeScript-Compiler-API wird Code analysiert und daraus beispielsweise Dokumentation extrahiert und Tests erstellt.

Leistungspunkte 5
Präsenszeit O SWS SU, 4 SWS Ü
Koordination Prof. Dr. Kristian Hildebrandt
Lernziele / Kompetenzen

Dieser Kurs bietet eine umfassende Einführung in Technologien, Algorithmen, Datenstrukturen, die notwendig sind, um reale Umgebungen und Bewegungen in virtuelle Welten zu übertragen und zu verarbeiten. Die Studierenden werden mit modernen Methoden der 3D-Datenerfassung, Geometrieverarbeitung und grafischen Darstellung vertraut gemacht. Nach Abschluss des Moduls werden die Studierenden folgende Kompetenzen erworben haben:

  • Praktische Erfahrung in 3D-Datenerfassungstechniken:
    • Fähigkeit, 3D-Scanning-Technologien für die Digitalisierung realer Umgebungen zu nutzen.
    • Kenntnisse im Einsatz von Motion-Capture-Systemen zur Erfassung und digitalen Umsetzung von Bewegungsabläufen.
    • Kompetenzen in der Digitalisierung von Materialien und Texturen für realistische visuelle Darstellungen.
  • Grundlagen und Techniken der Geometrieverarbeitung
    • Verständnis der Prozesse zur Verarbeitung und Manipulation von 3D-Datensätzen, z.B. Punktwolken und Dreiecksnetzen.
    • Fähigkeiten zur Integration von Avatar-Animationen in virtuelle Umgebungen und interaktive Anwendungen.
  • Kenntnisse in Rendering und Echtzeit-Grafikdarstellung:
    • Verständnis der 3D-Rasterisierungspipeline und ihrer Anwendung auf Grafikhardware.
    • Fähigkeit, komplexe 3D-Modelle, Animationen und Materialien effizient in Echtzeit darzustellen.
Inhalte

Im seminaristischen Unterricht und der Übung werden folgende Themen des aktuellen Forschungs- und Entwicklungsstands behandelt:

  1. Datenerfassung / Data Acquisition:
    1. Geometry Capture / 3D-Scanning: Die Studierenden sammeln praktische Laborerfahrungen im Umgang mit 3D-Scannern (LiDAR über iPhone, Leica, EinScan Hx), um reale Umgebungen zu digitalisieren.
    2. Motion Capture: Durch eine praktische Übung lernen die Studierenden, wie Motion-Capture-Systeme zur Aufzeichnung von Bewegungen bedient werden und wie diese als Charakteranimationen in digitalen Projekten integriert werden.
    3. Material Capture / Digitalisierung von Materialien: Es werden Techniken behandelt und gezeigt zur Digitalisierung von Materialeigenschaften und Texturen, die für realistisches Rendering in digitalen Modellen wesentlich sind.
  2. Geometrieverarbeitung / Geometry Processing: Im zweiten Teil verarbeiten die Studierenden die erfassten Daten und erlernen die Grundlagen der Geometrieverarbeitung. Dies umfasst die Verarbeitung und Manipulation von Punktwolken und Dreiecksnetzen. Der Lehrplan führt die Integration von Animationen in Videospiele und interaktive Anwendungen ein und soll die praktischen Fähigkeiten im Umgang mit komplexen digitalen Modellen schulen, z.B. durch Einbindung in Blender/Unity/Unreal.
  3. Rendering und Echtzeit-Grafikdarstellung: Der letzte Teil konzentriert sich auf die Visualisierung der verarbeiteten Daten und bietet einen Überblick über die 3D-Rasterisierungspipeline. Die Studierenden erlernen die wichtigsten Merkmale moderner Grafikhardware (GPUs) und Grafikprogrammierschnittstellen zur Darstellung von Geometrie, Animationen und Materialien.
Der Kurs zielt darauf ab, den Studierenden die notwendigen Fähigkeiten zu vermitteln, um effizient große Datenmenge interaktiv oder in Echtzeit darzustellen.

Leistungspunkte 5
Präsenszeit 0 SWS SU, 4 SWS Ü
Koordination Studiengangsleitung
Lernziele / Kompetenzen

Die Studierenden lernen, warum und für wen digitale Barrierefreiheit wichtig ist und was dies im Detail bedeutet. Des Weiteren werden assistive Technologien behandelt.

Die Studierenden kennen die Unterschiede und Gemeinsamkeiten der Prüfkriterien aus WCAG, EN 301 549 und BITV und ihre Grenzen. Sie lernen Tools kennen, mit denen sie Webseiten auf die technische Barrierefreiheit hin prüfen können und erlernen Methoden zum manuellen Testing. Teil dessen sind die Bewertung gefundener Fehler, sowie die Dokumentation mit Verbesserungsvorschlägen (nach EN 301 549).

Die Studierenden können die Barrierefreiheit einer Website anhand der relevanten Prüfkriterien grundlegend bewerten und benennen, nach welchem der vier Prinzipien laut WCAG Probleme vorliegen:

  • Wahrnehmbarkeit
  • Bedienbarkeit
  • Verständlichkeit
  • Robustheit
Die Studierenden können bewerten, ob ein vorgelegtes Webdesign barrierefrei umsetzbar ist und was bei der Umsetzung beachtet oder geändert werden muss.

Die Studierenden wissen um die nativen Einstellungsmöglichkeiten, die Nutzende vornehmen können und wie diese von Webseiten optimal aufgegriffen werden können.

Die Studierenden kennen die Probleme, die durch Accessibility-Overlay-Tools entstehen können und welche Einstellungsmöglichkeiten stattdessen auf einer Seite sinnvoll sind.

Die Studierenden können eine Webseite mit Standard-Elementen in barrierefreiem HTML und CSS erstellen. Sie lernen abzuwägen, wann Bilder und Grafiken eine Beschreibung benötigen und welche Einbindungsmöglichkeiten in welchem Fall am besten geeignet sind.

Die Studierenden lernen, welche Probleme auf Webseiten den CO2-Verbrauch in die Höhe treiben und wie diese umgangen werden können. Dazu gehören die Grundlagen der SVG- und Bitmap-Optimierung von Bildern, sowie energieeffiziente Integration von Videos und Schriften. Sie lernen Tools zur Bewertung des Fußabdrucks einer Seite zu nutzen und zu dokumentieren.

Inhalte
  • Grundlagenwissen über assistive und adaptive Techniken (Hardware, Software, Einstellungen) in Kombination mit verschiedenen Geräten, zum Ausgleich von Behinderungen.
  • Überblick über die Prüfschritte nach WCAG, EN 301 549 und BITV – was decken sie ab, was nicht?
  • Methoden zur Validierung von HTML-Code und zum automatisierten Test auf Barrierefreiheit.
  • Methoden zum manuellen Test auf Barrierefreiheit
  • Barrierefreie Navigation, aufeinander abgestimmte Formulare und Inhalte.
  • Kenntnisse der HTML-Tags, Attribute und WAI-Aria-Elemente, die der Barrierefreiheit zweckdienlich sind, sie nicht einschränken oder gar schädlich sein können.
  • CSS-Eigenschaften nutzen, um Barrierefreiheit zu verbessern oder diese nicht zu gefährden.
  • Tools zur Überprüfung der Datenmenge
  • Strategien zur Datenreduktion

Anhand eines vorgegebenen Designs erstellen die Studierenden eine Webseite, die nach WCAG mindestens Level AA erreicht und den Prinzipien Wahrnehmbarkeit, Bedienbarkeit, Verständlichkeit und Robustheit gerecht wird. Der Footprint der Webseite wird mit in die Note einfließen.