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. Alexander Huber (FB I)
Lernziele / Kompetenzen Die Studierenden kennen den Ablauf einer Unternehmensgründung und die wesentlichen Finanzierungsmöglichkeiten. Sie können situationsgerecht geeignete Rechtsformen auswählen. Sie kennen die Anforderungen an die Organisation und Führung eines Betriebes und können diese auf ihre betrieblichen Praxiserfahrungen übertragen. Die Studierenden kennen die Teilbereiche des betrieblichen Rechnungswesens und deren Aufgaben. Sie sind in der Lage einen (einfachen) Jahresabschluss anhand geeigneter Kennzahlen zu analysieren.
Inhalte 1. Unternehmensgründung und Rechtsformwahl
2. Unternehmensfinanzierung
  • Überblick über wichtige Finanzierungsarten
  • Kreditsicherheiten
3. Betriebsorganisation -Grundlagen
  • Betriebliche Aufbauorganisation
  • Betriebliche Ablauforganisation
4. Personalführung
  • Führungsstile und Mitarbeitergespräche
  • Zusammenarbeit mit freien Mitarbeitern (Freelancer)
5. Förderung von Innovationen
6. Rechnungswesen
  • Grundlagen des betrieblichen Rechnungswesens
  • Kennzahlen zur Analyse des Jahresabschlusses

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 erlernen anhand ausgewählter Fragestellungen Grundlagen des Visual Computing und des wissenschaftlichen Rechnens.
Inhalte In dem Modul werden angewandte Probleme aus wechselnden Themenbereichen der Computergrafik, Bildverarbeitung, Visualisierung, der virtuellen und erweiterten Realität oder des maschinellen Lernens untersucht. Dabei wird das Verständnis für aktuelle wissenschaftliche Texte gefördert sowie einige Grundlagen wissenschaftlichen Rechnens wie z.B. Ausgleichsrechnung, Eigenwertprobleme oder Optimierungsverfahren vermittelt und durch Programmierübungen verfestigt.

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. Henrik Tramberend
Lernziele / Kompetenzen Die Studierenden erlernen aktuelle Techniken der 3D-Grafikprogrammierung für hardware-beschleunigte grafisch-interaktive Webanwendungen. Sie lernen die Umsetzbarkeit verschiedener Beleuchtungs- und Materialeffekte mittels aktueller Browser-Schnittstellen einzuschätzen und selbst effiziente Lösungen zu implementieren.
Inhalte Die Schwerpunkte des Moduls liegen auf einem Überblick der 3DRasterisierungspipeline sowie auf den wichtigsten Eigenschaften moderner Grafik-Hardware (GPU) und aktueller Low- und High-Level Grafik-Programmierschnittstellen für den Browser, wie z.B. WebGL oder Three.js. Der seminaristische Unterricht vermittelt und vertieft dabei neben der Verwendung besagter Schnittstellen auch die Grundlagen echtzeitfähiger Grafikprogrammierung:
  • Funktionsweise von SIMD und der Rasterisierungs-Pipeline
  • Geometrische Modellierung mittels Dreiecksnetzen
  • Transformation, Projektion und Szenengraphen
  • Beleuchtung und programmierbare Shadereinheiten
  • Texturierungs- und weitere Effekte
In der Übung wird anhand ausgewählter Beispiele die konkrete Umsetzung dervermittelten Techniken in eigene 3D-Web-Applikationen realisiert.

Modulbeschreibung

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.