Die Studierenden erlernen die theoretischen Kenntnisse der Konzeption und Gestaltung von interaktiven Systemen und setzen sie bei der Entwicklung von Prototypen praktisch um.
Die Studierenden sind kompetent, Designprinzipen und Designkonzepte zur Lösung von Gestaltungsproblemen bei der Entwicklung dieser Systeme anzuwenden. Sie beherrschen innovative Benutzungsschnittstellen und sind in der Lage, neue Formen der Interaktion zwischen Mensch und Maschine zu konzipieren und zu gestalten.
Die Studierenden erwerben die Fähigkeit, zukunftsweisende interaktive Systeme unter Berücksichtigung gesellschaftlicher, technologischer und sozialer Aspekte zu konzipieren und zu gestalten. Sie können Methoden des Design Futuring zur systematischen Entwicklung von Zukunftsszenarien anwenden, Komplexe soziotechnische Systeme und deren Wechselwirkungen analysieren, Partizipative Designprozesse zur Entwicklung nachhaltiger Zukunftslösungen gestalten, Prototypen und erlebbare Zukunftsszenarien entwickeln, sowie die gesellschaftlichen Implikationen technologischer Innovationen kritisch reflektieren.
Vorlesung, Teilnahme am seminaristischen Unterricht.
Die TeilnehmerInnen setzen die theoretischen Kenntnisse der Konzeption und Gestaltung interaktiver Systeme praktisch um. Sie designen und entwickeln Prototypen für interaktive Systeme. Die Studierenden experimentieren mit innovativen Formen der Mensch-Maschine-Schnittstelle und den Möglichkeiten der Interaktion im öffentlich genutzten Raum.
In diesem Modul werden Methoden des Maschinellen Lernens behandelt. Studierende erlernen, sich Methoden des Maschinellen Lernens anzueignen und bzgl. ihrer Eignung für konkrete Aufgabenstellungen zu evaluieren.
Die vermittelten Inhalte und Kompetenzen des Moduls werden im Modul Künstliche Intelligenz als bekannt bzw. vorhanden vorausgesetzt.
Inhalte Vorlesungsteil Prof. Janka
Einführung in Konzepte des überwachten Lernens anhand der linearen und logistischen Regression:
Aufbauend: Einführung in das Thema Deep Learning
Inhalte Vorlesungsteil Prof. Preisach
Vorbereitung:
Transformationen
Methoden des unüberwachten Lernens, eine Auswahl aus
In der Übung werden die Inhalte beider Vorlesungen „Maschinelles Lernen“ (Prof. Preisach und Prof. Janka) durch praktische Übungen vertieft, mit dem Ziel grundlegende Maschine Learning Algorithmen selbstständig implementieren zu können. Die Aufgaben werden in Form von Python Jupyter Notebooks gestellt und bearbeitet.
Inhalte der Übung:
Die Übung wird wahlweise auf dem eigenen Laptop oder auf PCs des Labors für Maschinelles Lernen durchgeführt.
Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, die Architektur großer Software-Systeme selbstständig zu entwerfen, zu gestalten und kritisch zu bewerten. Sie können Software in Komponenten und Konnektoren zerlegen, geeignete Frameworks auswählen, deren Einsatz bewerten und Funktionalitäten sowie Abläufe logisch organisieren. Dabei planen und gestalten sie auch parallele und nebenläufige Abläufe und integrieren diese in Architekturen für verschiedene Anwendungsfelder. Darüber hinaus haben die Studierenden ihre technischen, sozialen und persönlichen Kompetenzen sowie ihre Kommunikationsfähigkeit und ihr Selbstmanagement gezielt weiterentwickelt und gelernt, diese Fähigkeiten im Kontext großer Softwareprojekte effektiv einzusetzen.
Die Lehrveranstaltung "Software-Architekturen" vermittelt vertiefte Kenntnisse und Fähigkeiten zur Entwicklung und Analyse moderner Software-Architekturen.
Im ersten Teil der Vorlesung werden relevante Prozessmodelle wiederholt und darauf aufbauend Ansätze für eine agile Architekturentwicklung erarbeitet. Studierende lernen verschiedene View-Modelle kennen, vergleichen diese und vertiefen ihre Kenntnisse in Modellierungstechniken für Komponenten und Konnektoren. Bereits erlernte Entwurfsmethoden werden erweitert, insbesondere im Hinblick auf die Nutzung von Szenarien zur Beschreibung und Bewertung nicht-funktionaler Anforderungen.
Im zweiten Teil der Vorlesung stehen elementare Architekturmuster im Fokus, darunter Schichten-Architektur, hexagonale Architektur, Onion-Architektur, Blackboard, Pipes-and-Filters und Event-Driven Architecture. Studierende erlernen die Strukturen, Eigenschaften und Anwendungsmöglichkeiten dieser Muster und verstehen ihre Rolle in typischen Middleware-Konzepten. Die Vorlesung zeigt, wie solche Architekturvorlagen Ansatzpunkte für die Organisation flexibler und evolutionärer Systeme bieten.
Der dritte Teil der Vorlesung widmet sich der Architektur auf Modulebene. Anhand praxisnaher Szenarien und Beispiele wird der Einsatz von Patterns für den Business Layer thematisiert und im jeweiligen Kontext analysiert. Ziel ist es, den Studierenden ein fundiertes Verständnis für die Gestaltung und Bewertung modularer Software-Architekturen zu vermitteln.
Seminaristischer Unterricht, Übungsblätter und Präsentationen
Das "Parallele Programmierung Labor" vermittelt praxisorientierte Kenntnisse zur nebenläufigen Programmierung und deren Anwendung in verschiedenen modernen Technologien und Systemen.
Im ersten Teil der Veranstaltung werden die Grundlagen der nebenläufigen Programmierung wiederholt, vertieft und durch praktische Übungen mit der Programmiersprache Java und dem Java Development Kit (JDK) angewendet. Dabei erlernen die Studierenden, wie sie nebenläufige Prozesse effizient gestalten und typische Herausforderungen wie Race Conditions oder Deadlocks bewältigen können.
Im zweiten Teil der Veranstaltung wird das Wissen durch kompakte Einführungen in aktuelle Anwendungsfelder der nebenläufigen Programmierung erweitert. Dabei werden verschiedene Technologien und Plattformen beleuchtet, darunter:
Durch die Kombination aus theoretischer Einführung und praktischer Anwendung werden die Studierenden befähigt, nebenläufige Programmierung in unterschiedlichen Kontexten zu verstehen, anzuwenden und weiterzuentwickeln.
Die Literatur des zweiten Teils wird in jedem Semester neu zusammengestellt.
Die erfolgreiche Teilnahme am Labor wird durch die eigenständige Bearbeitung der Übungen dokumentiert und begutachtet. Im zweiten Teil des Labors werden diverse aktuelle Quellen und Präsentationen vorgestellt und diskutiert.
In diesem Labor werden die Methoden und Kenntnisse der Vorlesung Software-Architekturen praktisch erprobt und umgesetzt. Dabei werden anhand eines größeren Software-Projekts der gesamte Entwicklungsprozess vom Entwurf über Realisierung bis hin zu Test und Qualitätssicherung im Team bearbeitet. Dabei sollen Entwurfstechniken und Architekturmuster der Vorlesung eingesetzt sowie Software-Entwicklungs-Frameworks bewertet und ausgewählt werden. Die Implementierung in einer vom Team gewählten Programmiersprache und deren Qualitätssicherung ist ebenfalls Teil des Projekts und erlaubt auch eine kritische Bewertung der eingesetzten Techniken. Schließlich soll durch die Erstellung eines Entwickler- und Benutzer-"Handbuchs" die Dokumentation größerer Projekte erlernt werden.
Lernergebnissen
Nach der erfolgreichen Teilnahme an diesem Modul sind die Studierenden in der Lage, die Grundlagen der Sprach- und Gestenerkennung sowie die Erfassung und Erkennung von Umgebungsobjekten zu verstehen. Sie können die Möglichkeiten und Grenzen der Nutzung solcher Technologien in der Interaktion und Informationspräsentation erfassen und deren Anwendung in verschiedenen Bereichen wie Smartphones, interaktiven Räumen, Spielekonsolen oder der Mensch-Roboter-Kooperation analysieren.
Die Studierenden können komplexe wahrnehmungsbasierte Interaktionssysteme konzipieren, implementieren und evaluieren, um die Interaktion zwischen Menschen und Maschine zu verbessern. Weiterhin sind sie in der Lage, innovative Lösungen zu entwickeln, indem sie die Funktionsweise und Anwendung moderner Sensorik, wie beispielsweise dem Kinect-Sensor, in die Systemgestaltung integrieren.
Darüber hinaus können die Studierenden aktuelle Entwicklungen und Anwendungsfelder im Bereich der smarten Interaktion diskutieren und die theoretischen Hintergründe der zugrunde liegenden Erkennungstechnologien anwenden. Sie verstehen die Prinzipien der Nutzung von Sensorik und Interaktionsmodellen, um Lösungen zu entwickeln, die sowohl technisch umsetzbar als auch praxisrelevant sind.
Lehr-/ Lernmethode
Die Veranstaltung nutzt verschiedene Lehrmethoden und Ressourcen, um den Studierenden ein tiefgreifendes Verständnis für die Themenbereiche zu vermitteln. Dazu gehören Vorlesungen, praktische Übungen, Anwendungsbeispiele mit verschiedener Sensorik (z.B. dem Kinect Sensor) sowie Diskussionen über aktuelle Entwicklungen und Anwendungen im Bereich der smarten Interaktion.
Studien- und Prüfungsleistungen
Die Modulprüfung besteht aus a) einer mündlichen Prüfung, in der die Studierenden unterschiedliche Theorien und praktische Beispiel der Smart Interaction ohne Hilfsmittel abrufen und erklären sollen und b) einem praktischen Teil, in der die Studierenden nachweisen müssen, das sie die Theorien in einer eigenen Anwendung realisieren können.
Lernergebnissen
Nach der erfolgreichen Teilnahme an diesem Modul sind die Studierenden in der Lage, die Grundlagen der Sprach- und Gestenerkennung sowie die Erfassung und Erkennung von Umgebungsobjekten zu verstehen. Sie können die Möglichkeiten und Grenzen der Nutzung solcher Technologien in der Interaktion und Informationspräsentation erfassen und deren Anwendung in verschiedenen Bereichen wie Smartphones, interaktiven Räumen, Spielekonsolen oder der Mensch-Roboter-Kooperation analysieren.
Die Studierenden können komplexe wahrnehmungsbasierte Interaktionssysteme konzipieren, implementieren und evaluieren, um die Interaktion zwischen Menschen und Maschine zu verbessern. Weiterhin sind sie in der Lage, innovative Lösungen zu entwickeln, indem sie die Funktionsweise und Anwendung moderner Sensorik, wie beispielsweise dem Kinect-Sensor, in die Systemgestaltung integrieren.
Darüber hinaus können die Studierenden aktuelle Entwicklungen und Anwendungsfelder im Bereich der smarten Interaktion diskutieren und die theoretischen Hintergründe der zugrunde liegenden Erkennungstechnologien anwenden. Sie verstehen die Prinzipien der Nutzung von Sensorik und Interaktionsmodellen, um Lösungen zu entwickeln, die sowohl technisch umsetzbar als auch praxisrelevant sind.
Lehr-/ Lernmethode
Die Veranstaltung nutzt verschiedene Lehrmethoden und Ressourcen, um den Studierenden ein tiefgreifendes Verständnis für die Themenbereiche zu vermitteln. Dazu gehören Vorlesungen, praktische Übungen, Anwendungsbeispiele mit verschiedener Sensorik (z.B. dem Kinect Sensor) sowie Diskussionen über aktuelle Entwicklungen und Anwendungen im Bereich der smarten Interaktion.
Studien- und Prüfungsleistungen
Die Modulprüfung besteht aus a) einer mündlichen Prüfung, in der die Studierenden unterschiedliche Theorien und praktische Beispiel der Smart Interaction ohne Hilfsmittel abrufen und erklären sollen und b) einem praktischen Teil, in der die Studierenden nachweisen müssen, das sie die Theorien in einer eigenen Anwendung realisieren können.
Vorlesung, Teilnahme am seminaristischen Unterricht.
Die Vorlesungsinhalte werden anhand der Konzeption und der Umsetzung eines im Rahmen der Vorlesung gemeinsam definierten Aufgabe vertieft.
Am Ende dieses Moduls haben die Studierenden theoretische und mathematische Grundlagen des Maschinellen Lernens und der Datenanalyse verstanden. Sie können dadurch die Eignung verschiedener Verfahren für konkrete Situationen beurteilen, und Phänomene, die sie beobachten, schlüssig interpretieren, sowie daraus bei Bedarf Verbesserungsideen für die gewählten Ansätze ableiten.
Die vermittelten Inhalte und Kompetenzen des Moduls sind für die Teilnahme am Modul Künstliche Intelligenz von Vorteil.
Ziel: Vermittlung von theoretischen und praktischen Kenntnissen über Optimierungsmethoden/-kalküle im Kontext des Maschinellen Lernens (Minimierung der Fehlerfunktion)
Inhalte:
Einführung, Motivation und Modellierung
(Wiederholung) Mehrdimensionale Analysis (u.a. Gradienten einführen und verstehen, Taylorentwicklung, konvexe Funktionen, spezielle Ableitungen)
Numerische Verfahren zur Lösung von Gleichungssystemen:
Gradientenabstieg:
Kleinste Quadrate (Least Squares - LS):
Restringierte Optimierung:
Auf Wunsch: Spezielle Kapitel
M. P. Deisenroth, A. A. Faisal, C. S. Ong. Mathematics for Machine Learning. Cambridge University Press. 2020.
I. Goodfellow, Y. Bengio, A. Couville. Deep Learning. MIT Press. 2016.
J. Nocedal, S. J. Wright. Numerical Optimization. Springer. 2006.
W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery. Numerical Recipies in C. Cambridge University Press. 2007.
Übungen und praktische Optimierungsaufgaben begleitend zur Vorlesung Optimierung.
Die Übung wird mit Python durchgeführt, wahlweise auf dem eigenen Laptop oder auf PCs des Labors für Maschinelles Lernen. Erste Erfahrungen im Umgang mit Python (wie etwa in der Übung Maschinelles Lernen angeboten) werden vorausgesetzt. Die Übung findet in der zweiten Vorlesungshälfte statt.
Programmiersprachen sind das grundlegendste Werkzeug von Programmierern. Dieser Kurs behandelt die Grundlagen der Theorie der Programmiersprachen, ihre Anwendungen auf heute weit verbreitete Sprachen und Trends auf diesem Gebiet, die wahrscheinlich dazu beitragen werden, die Programmiersprachen von morgen zu definieren. Nach diesem Kurs verfügen die Studierenden über ein Verständnis für ein breites Spektrum an Programmiersprachenkonzepten und sind in der Lage, sich schnell an neue Programmiersprachen anzupassen. Eine Mischung aus schriftlichen und praktischen Übungen hilft den Studierenden, verschiedene Programmierstile in mehreren Programmiersprachen zu verstehen.
Inhalt.
Verschiedene Programmierstile mit Schwerpunkt auf funktionaler Programmierung:
Datentypen und Mustervergleich
Funktionen höherer Ordnung
polymorphe Typen
Verschiedene Arten von Polymorphismus:
Subtypisierung (strukturell und nominal)
Generics
Überladung
Programmkorrektheit:
statische Verifizierungsmethoden
Testmethoden wie QuickCheck
Es gibt keine Abschlussprüfung. Die Bewertung basiert auf Quizzes, Midterms und mehreren kleineren Projekten, die während des Semesters durchgeführt werden.
Programmiersprachen sind das grundlegendste Werkzeug von Programmierern. Dieser Kurs behandelt die Grundlagen der Theorie der Programmiersprachen, ihre Anwendungen auf heute weit verbreitete Sprachen und Trends auf diesem Gebiet, die wahrscheinlich dazu beitragen werden, die Programmiersprachen von morgen zu definieren. Nach diesem Kurs verfügen die Studierenden über ein Verständnis für ein breites Spektrum an Programmiersprachenkonzepten und sind in der Lage, sich schnell an neue Programmiersprachen anzupassen. Eine Mischung aus schriftlichen und praktischen Übungen hilft den Studierenden, verschiedene Programmierstile in mehreren Programmiersprachen zu verstehen.
Inhalt:
Verschiedene Programmierstile mit Schwerpunkt auf funktionaler Programmierung:
Verschiedene Arten von Polymorphismus:
Programmkorrektheit:
Es gibt keine Abschlussprüfung. Die Bewertung basiert auf Quizzes, Midterms und mehreren kleineren Projekten, die während des Semesters durchgeführt werden.
Seminaristischer Unterricht mit theoretischen und praktischen Übungen.
Die Studierenden lernen, komplexe Algorithmen mit einer systemnahen prozeduralen oder objekt-orientierten Programmiersprache wie C oder C++ korrekt zu implementieren.
Sie optimieren diese Algorithmen hinsichtlich der Ausführungsgeschwindigkeit mit verschiedenen Paradigmen wie Hybridisierung oder Techniken zur Cache-Optimierung.
Die Teilnehmer der Veranstaltung messen die Ausführungszeiten und überprüfen empirisch die asymptotische Laufzeit der implementierten Verfahren. Dazu erstellen sie verschiedener Testszenarien, um die Algorithmen darauf basierend zu vergleichen und zu beurteilen.
Die Studierenden dokumentieren und diskutieren die Ergebnisse. Sie analysieren ihre Optimierungen und erklären die Resultate.
Die zu behandelnden Informatikprobleme variieren. Typische Inhalte sind:
Die Übungsaufgaben und Zusatzmaterialien werden elektronisch (HTML, PDF, Programmgerüste) zur Verfügung gestellt.
Vorkenntnisse:
Vertiefte praktische Kenntnisse einer prozeduralen oder objekt-orientierten Programmiersprache wie C, C++, C# oder Java. Implementierung und Testen grundlegender Algorithmen aus dem Bereich der Such-, Graphen- und Sortierprobleme.
Format: Praktische Arbeit, Übungen im Labor mit geringem Vorlesunganteil. Die Ergebnisse werden in den praktischen Übungen von den Studenten vorgestellt und mit dem Dozenten diskutiert. Die Ergebnisse sind von den Studenten in einem Bericht zu dokumentieren.
Betreuung:
Individuelle Betreuung durch den Dozenten während der Präsenzzeit im Rechnerlabor. Außerhalb der Präsenzzeit via E-Mail oder während der Sprechzeiten des Dozenten.
Nach der erfolgreichen Teilnahme an diesem Modul sind die Studierenden in der Lage über die theoretischen und methodischen Grundlagen der Wissenschaft Informatik und die ethische Tragweite ihres Berufsfelds Informatik reflektiert nachzudenken, sie einzuordnen und zu beurteilen. Daraus gewinnen sie Orientierung für ihre wissenschaftliche und alltäglich-berufliche Praxis.
Sie kennen unterschiedliche Konzepte und Methoden der Wissenschaft und deren Ziele und können sie anwenden und sich mit ethischen Fragen der Informatik auseinandersetzen. Aus dieser Reflektion heraus können sie eigene Maßstäbe für ihr Urteilen und verantwortliches Handeln als angehende Informatiker entwickeln.
Die Wissenschaftstheorie befasst sich mit methodisch gewonnenen, in Theorien formulierten wissenschaftlichen Wissen. Sie untersucht die Bildung von wissenschaftlichen Begriffen und Strukturen von Theorien und die dabei eingesetzten Methoden.
Speziell klären wir Fragen wie:
"Was ist Wissen, Wissenschaft, eine Theorie, eine Beschreibung, eine Erklärung, eine Begründung, eine Bestätigung, Zweifel?"
"Welches sind die Hauptströmungen der Wissenschaftstheorie: Realismus, Empirismus, Naturalismus, Kritischer Rationalismus, Konstruktivismus, Sprachphilosophie, Strukturalismus, Holismus?"
"Was ist Information, ein Compter, ein Programm?"
"Wie kann man methodisch Wissen erlangen: begrifflich, theoretisch, logisch-deduktiv, empirisch, induktiv, simulativ, hermeneutisch, diskursiv?"
"Welchen Bezug haben wissenschaftliche Theorien zur Realität und zur wirklichen Welt?"
Abhängig von einem gewählten Schwerpunkt kann noch weitere Literatur empfohlen werden.
Seminaristischer Unterricht mit Übungen, Referaten und Diskussionen. In unterschiedlichen Semestern können verschiedene Schwerpunkte gesetzt werden und auf aktuelle Themen eingegangen werden.
Informations- und Digitaltechnologien führen zu einem fundamentalen Wandel der Gesellschaft und der Rolle des Menschen. Damit einher gehen neue ethische Fragen von großer Reichweite wie etwa dem Umgang mit Künstlicher Intelligenz, der Zukunft menschlicher Arbeit im Kontext voranschreitender Automatisierung, der Überwachung und Manipulation menschlichen Verhaltens, der Schaffung neuer Lebensräume in virtuellen Welten oder der technischen Optimierung des Menschen (Trans-/Posthumanismus). In der Lehrveranstaltung werden diese ethischen Fragen herausgearbeitet, Antwortoptionen diskutiert und ethisch bewertet. Schließlich wird der Einfluss des Berufsfelds Informatik auf diese Entwicklungen reflektiert und ethische Leitlinien für die Entwicklung von Informationstechnologien diskutiert.
Abhängig von einem gewählten Schwerpunkt kann noch weitere Literatur empfohlen werden.
Seminaristischer Unterricht mit Übungen, Referaten und Diskussionen. In unterschiedlichen Semestern können verschiedene Schwerpunkte gesetzt werden und auf aktuelle Themen eingegangen werden.
Das Modul Managementkompetenzen setzt sich aus den Teilen "IT Project Management" und "IT Entrepreneurship" zusammen.
Die Studierenden werden in der Veranstaltung IT Project Management in die Lage versetzt, Entwicklungsprojekte im SWE eigenständig zu planen und gegebenenfalls durchzuführen. Die Studierenden werden zu diesem Zweck mit verschiedenen branchenspezifischen Anforderungen, Methoden, Vorgehensmodelle und Werkzeuge vertraut gemacht. Die Veranstaltung findet auf English statt. Ziel ist es, die Studierenden auf internationale IT-Projekte vorzubereiten.
Die Studierenden erlangen im IT-Management die Kompetenz für die Führungsaufgaben im IT-Bereich. Anhand eines Lebenszyklusmodells von der Unternehmensgründung (IT Entrepreneurship) bis zum Management eines IT-Unternehmens werden die jeweiligen Methoden und Werkzeuge erlernt und an Fallbeispielen von dem Studierenden selbstständig angewendet. Sie erhalten damit die notwendigen Grundlagen, als eigenständiger IT-Unternehmer sowie auch als Führungskraft im IT-Bereich tätig zu sein.
Die Studierenden sollen in der Veranstaltung IT Project Management in die Lage versetzt werden, IT Projekte eigenständig zu planen und gegebenenfalls durchzuführen. Zu diesem Zweck werden in der Veranstaltung unterschiedliche Konzepte und Werkzeuge vorgestellt und in Fallstudien eingesetzt.
Die Veranstaltung findet auf English statt. Ziel ist es, die Studierenden auf internationale IT-Projekte vorzubereiten.
Insbesondere werden die nachfolgenden Anforderungen an das Management von IT-Projekten beherrscht:
Vorlesung 50%, Übungen 20%, Gruppenarbeit 30%
Die Studierenden erwerben in dieser Veranstaltung die Kompetenz, als eigenständiger IT-Unternehmer als auch als Führungskraft im IT-Bereich tätig zu sein. Anhand eines Lebenszyklusmodells (von der Unternehmensgründung (IT‑Entrepreneurship) bis zum Management eines IT-Unternehmens werden die jeweiligen Methoden und Werkzeuge erlernt und an Fallbeispielen von dem Studierenden selbstständig angewendet.
Folgende Lebenszyklusphasen werden behandelt:
A. Freiberuflicher Softwareentwickler
B. Wir werden IT-Unternehmer (IT-Entrepreneur)
C: Wie manage ich ein IT-Unternehmen? (IT Management)
Teilnahme am seminaristischen Unterricht.
Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, wissenschaftliche Themen oder praxisnahe Projekte im IT-Bereich selbstständig und im Team zu bearbeiten. Sie wenden ihre im Studium erworbenen Kenntnisse gezielt auf komplexe Aufgabenstellungen an, analysieren Probleme und entwickeln wissenschaftlich fundierte Lösungsansätze. Darüber hinaus planen und setzen sie Konzepte eigenständig um und können fortgeschrittene industrielle und wissenschaftliche Projekte eigenverantwortlich durchführen. Durch die intensive Zusammenarbeit im Team entwickeln die Studierenden ihre sozialen und organisatorischen Fähigkeiten weiter und sind in der Lage, Arbeitsergebnisse gemeinsam zu präsentieren.
Arbeitsgebiete können durch jeden Professor der Fakultät eröffnet werden, dies erfolgt durch Aushang zu Semesterbeginn.
Forschungsprojekte bewegen sich an der vorderen Front der aktuellen Informatikforschung und können in Zusammenarbeit mit Forschungsinstitutionen durchgeführt werden.
Anwendungsprojekte sind von besonderer Relevanz für die industrielle Praxis und können in Zusammenarbeit mit Industrieunternehmen durchgeführt werden.
Zu Beginn der Vorlesung wird eine Übersicht unterschiedlicher Spiele-Produktionen des Entwicklerstudios takomat GmbH von Professor Schwarz gegeben. Dadurch wird den Studierenden eine interne Sichtweise auf den Prozess der Akquise, Konzeption, der Gestaltung, Produktion und Entwicklung bis hin zur Veröffentlichung von Computerspielen anhand ausgewählter Beispiele aus erster Hand gezeigt. Nach diesen Einblicken in die Praxis der Produktion verlassen wir die "Hexenküche" des speziellen Entwicklerstudios takomat und verallgemeinern die dort kennengelernten Design- und Wirkungsprinzipien von Computerspielen: Die Frage "Was ist ein Spiel" und "Wie wirkt ein Spiel?" werden mit den theoretischen Erkenntnissen der aktuellen Spielwissenschaft (deutsch: Ludologie / im angelsächsischen Raum: game studies) und ihrer bedeutendsten Wissenschaftler und Praktiker (Katie Salen und Eric Zimmerman, Jane McGonigal, Jesse Schell, Paul Gee) beantwortet.
Die Spielwissenschaften sind seit ihrem Aufschwung in den späten 90er Jahren noch keinesfalls eine konsolidierte Forschungs-Disziplin und entsprechen in ihrer Transdisziplinarität immer noch dem "produktiven Chaos", das der Spieleforscher Jesper Juuls ihnen 2005 attestierte. Der Game Designer, Produzent und Theoretiker Jesse Schell beschreibt in seinem Buch "The Art of Game Design" dazu treffend: Die Disziplin des Game Designs hatte noch nicht wie die Chemie ihren Mendelejew, der mit der Einführung des Periodensystems der Quacksalberei der Alchimie ein Ende machte und die Chemie auf ein fundiertes und funktionales Theorie-Gebäude stellte.
"Der Mensch ist nur da ganz Mensch, wo er spielt." (Friedrich Schiller) Da das Spiel den ganzen Menschen in seiner komplexen Ganzheit erfasst, berührt und bewegt (Huizinga, McLuhan), müssen wir also nach wie vor die HexenmeisterInnen aller involvierten Wissenschafts- und Design-Disziplinen um den Hexenkessel versammeln, in dem die Magie des Mediums Computerspiel gebraut werden soll. Literatur-, Kultur- und Medienwissenschaften betreten den "magischen Kreis" der Spiele ebenso wie die Psychologie oder Anthropologie, der große Reigen der unterschiedlichen Design-Disziplinen (Visual Design, Sound Design, 3D-Design, Animation, Interface Design, Interaction Design, System Design, Story Design, Character Design, Game Design), die Informatik und Kybernetik.
Die verschiedenen Design-Disziplinen, die zur Gesamtwirkung eines Computerspiels integriert werden - werden aufgeführt und ihre Querverbindung, Abhängigkeiten und Integrationsmöglichkeiten verdeutlicht.
Mit Hilfe dieser multi- und interdisziplinären Sichtweise auf Computerspiele zeigt die Vorlesung Design-Muster, Bausteine und Ziele von Game Design als spielgenre-unabhängige Konzepte auf.
Anhand der eingangs gezeigten Beispiele von Computerspielproduktionen wird eine Game Design Methodologie präsentiert, die von den StudentInnen in eigenständiger Arbeit zur Erstellung eines eigenen Game-Konzepts angewandt werden soll.
Lernziele
Lernziele der Theorie:
Lernziele der praktischen Aufgabe:
Begleitend zur Vorlesung Game Design + Development werden in diesem Übungskurs folgende Übungen während der Präsenzzeit und der eigenständigen Arbeitszeit erarbeitet:
1. Unity-Tutorial "Roll A Ball" abschließen
2. "Mod" - eine Spielvariante - des erstellten Spiels "Roll A Ball" erstellen.
3. Evaluation der Spielvarianten in Gruppenpräsentationen, Erstellen neue user requirments auf Grundlage der Evaluationsergebnisse und entsprechende Verbesserung der Spielvariante
4. Evaluation mit Fragebogen und Testspiel eines bestehenden Spiel-Prototypen
5. Nachbildung des Game Systems und der Game Mechanics des bestehenden Spiel-Prototypen in einem interaktiven und dynamischen Spielübersichts-Diagramm mit Hilfe des Game Design-Tools "Machinations".
Die Studierende lernen den aktuellen Stand der Forschung im Bereich "Künstliche Intelligenz" in Theorie und Praxis kennen.
Die Studierende haben einen Überblick über aktuelle Methoden im Bereich "Deep Learning" und kennen relevante Anwendungsbereiche in der Praxis.
Die Inhalte des Moduls Maschinelles Lernern (Methoden und praktische Kenntnisse) werden als bekannt vorausgesetzt. Die Inhalte des Moduls Data Science sind von für den praktischen Teil des Moduls Künstliche Intelligenz von Vorteil.
In dieser Vorlesung werden aktuelle Entwicklungen und aktuelle Forschungsergebnisse aus dem Bereich der Künstlichen Intelligenz, insbesondere des Deep Learnings, abgedeckt.
Nach der Teilnahme an der Vorlesung sind die Studierenden in der Lage, die Grundlagen von neuronalen Netzen einzuschätzen und aktuelle Forschungsmethoden aus den Bereichen Computer Vision und Natural Language Processing zu beurteilen.
Die Studierenden können grundlegende Architekturen wie Convolutional Neural Networks und Recurrent Neural Networks bewerten und aktuelle Architekturen wie Transformer-Modelle analysieren. Weiterhin sind Studierende in der Lage für die Anwendungsbereiche Computer Vision und Natural Language Processing entsprechende Architekturen zu bewerten sowie Fachliteratur wie aktuelle Publikationen zu verstehen und Teilaspekte herauszustellen. Zusätzlich sind die Studierenden in der Lage aktuelle Methoden aus einzelnen Teilbereichen wie dem Continual Learning zu verstehen.
Die Vorlesung dient als Grundlage für die Wissensvermittlung für das Gesamtmodul „Künstliche Intelligenz“ und als theoretisches Pendant zur praktischen Veranstaltung „AI Lab“. Praktische Übungen sind also nicht Teil der Vorlesung. Für die tiefgehende Auseinandersetzung mit einzelnen Themen sind Gruppenpräsentationen möglich.
Inhaltlich werden in der Vorlesung folgende Themen abgedeckt:
In Form einer Klausur wird überprüft, inwieweit die Studierenden die grundlegenden Konzepte und Architekturen des Deep Learnings verstanden haben sowie aktuelle Forschungsergebnisse bewerten können. Das Beantworten der Fragen erfordert teils eigene Formulierungen und teils das Ausführen von eigenen Berechnungen mit Beispielen aus den Anwendungsdomänen. Zusätzlich haben Studierende die Möglichkeit mit einer freiwilligen Gruppenpräsentation eines Spezialthemas zu demonstrieren, dass sie einzelne Themen detailliert bewerten und erklären können. Eine Präsentation, die durch fundierte Analyse und verständliche Darstellung überzeugt, führt zu einer Verbesserung der Klausurnote um einen Notenschritt.
Die Lehrveranstaltung beinhaltet die praktische Umsetzung der in der KI-Vorlesung erworbenen Kenntnisse.
Dies geschieht exemplarisch am Beispiel dreier Themenfelder:
* Computer Vision
* Natural Language Processing
* Reinforcement Learning
Dabei werden unterschiedliche Problemstellungen innerhalb dieser drei Anwendungsfelder behandelt und Lösungen in Form von Vorhersagemodellen entworfen. Zur praktischen Umsetzung werden diese dann mit Hilfe von Python und PyTorch implementiert.
Zur erfolgreichen Teilnahme am Labor sind Grundkenntnisse in Python erforderlich.
Die Anzahl der Teilnehmer ist begrenzt.
Die Studierenden werden befähigt, effiziente Algorithmen in Theorie und Praxis zu entwerfen. Sie können die Korrektheit von diversen graphentheoretischen Problemen mit exakten logischen Schlüssen nachweisen. Sie sind in der Lage, Laufzeiten von Verfahren zu analysieren und passende Analysetechniken einzusetzen. Sie können zudem Modellierungs- und Simulationsverfahren für die computergestützte Auslegung von Prozessabläufen selbstständig implementieren sowie diverse Iterationsverfahren exemplarisch auf modernen Hochleistungsrechnern parallelisieren.
SAT-Solving ist eines der wichtigsten allgemeinen Verfahren zur Lösung schwerer (oft NP-vollständiger) kombinatorischer Probleme. Diese treten in der Praxis in einer Vielzahl von Anwendungen auf, z.B. hier:
Dieses Modul vermittelt Studierenden die theoretischen und schwerpunktmäßig praktischen Aspekte des SAT-Solvings. Behandelt werden:
Auch die Einbindung von industriellen Anwendern ist vorgesehen.
Die Lehrveranstaltung vermittelt grundlegende Algorithmen auf Graphen und zeigt auf, wie man deren Korrektheiten und Zeitkomplexitäten analysiert.
Nach einer kurzen Einführung in die Graphentheorie werden zunächst Durchmusterungsmethoden wie die Breiten- und Tiefensuche vorgestellt. Weitere Algorithmen befassen sich mit der Erkennung von starken Zusammenhangskomponenten, topologischen Sortierungen sowie der Berechnung von kürzesten Wegen. Effiziente Tests auf die Kreisfreiheit von Graphen werden ebenfalls besprochen.
Die Vorlesung befähigt die Teilnehmer, selbstständig weiterführende Algorithmen zu erarbeiten, beweisbar sicher anzuwenden und ihren Nutzen einzuschätzen.
Die Lehrveranstaltung findet als Vorlesung statt. Begleitende Übungen vertiefen die vermittelten Gebiete.
In dieser Übung werden Verfahren der Vorlesung Practical SAT Solving anhand von Fragestellungen aus der Praxis erprobt und SAT-Solver zur Lösung von kombinatorischen Problemen eingesetzt.
Das Modul "Spezielle Kapitel Medieninformatik" behandelt aktuelle Entwicklungen und spezielle Themen im Bereich der Medieninformatik. Die Inhalte des Moduls können von Semester zu Semester variieren, um auf die neuesten Trends und Entwicklungen in der Medieninformatik einzugehen.
Das Modul nutzt verschiedene Lehrmethoden und Ressourcen, um den Studierenden ein umfassendes Verständnis für die aktuellen Themen und Entwicklungen in der Medieninformatik zu vermitteln. Dazu gehören Vorlesungen, Diskussionen über aktuelle Forschungsergebnisse und Anwendungen im Bereich der Medieninformatik.
Das Modul zielt darauf ab, den Studierenden einen Einblick in aktuelle Entwicklungen und spezielle Themen der Medieninformatik zu geben und sie mit den neuesten Technologien, Methoden und Anwendungen vertraut zu machen. Durch die Auseinandersetzung mit aktuellen Themen sollen die Studierenden in die Lage versetzt werden, relevante Trends zu erkennen, innovative Lösungen zu entwickeln und kritisch zu reflektieren. Am Ende des Moduls sollen die Studierenden ein fundiertes Verständnis für die aktuellen Herausforderungen und Möglichkeiten in der Medieninformatik haben und in der Lage sein, ihr Wissen in praktischen Anwendungen umzusetzen.
siehe allgemeine Modulbeschreibung, nicht die Veranstaltung
siehe allgemeine Modulbeschreibung, nicht die Veranstaltung
Das Modul "Spezielle Kapitel KI" behandelt aktuelle Entwicklungen und spezielle Themen im Bereich des Maschinellen Lernens und der Künstlichen Intelligenz. Die Inhalte des Moduls können von Semester zu Semester variieren, um auf die neuesten Trends und Entwicklungen in dem Bereich einzugehen.
Eine Übersicht über aktuelle Veranstaltungen in diesem Bereich finden Sie hier: https://intranet.hka-iwi.de/info/compulsoryoptionalsubjects/INFM
Diese Vorlesung befasst sich mit einem Teilgebiet der Künstlichen Intelligenz, Explainable AI (XAI). XAI-Methoden erfüllen eine kritische Funktion in der modernen KI-Landschaft, indem sie die Brücke zwischen menschlichen Nutzern und komplexen KI-Systemen schlagen.
Nach der Teilnahme an der Vorlesung sind die Studierenden in der Lage, die vielfältigen Ziele von XAI zu beschreiben und mit der korrekten XAI-Terminologie zahlreiche Methoden aus dem Bereich der erklärbaren künstlichen Intelligenz einzuordnen und zu bewerten. Weiterhin sind Studierende in der Lage für dedizierte XAI-Methoden die zugrundeliegenden Ideen, Architekturen und Implikationen zu bewerten sowie Fachliteratur wie aktuelle Publikationen zu verstehen und Teilaspekte herauszustellen. Auch sind die Studierenden in der Lage durch praktische Übungen Methoden anzuwenden und Libraries einzusetzen.
Inhaltlich werden in dieser Vorlesung folgende Themen abgedeckt. Dabei werden Methoden mit unterschiedlichem (i) Scope (local vs. global), (ii) Result (z.B. feature relevance, surrogate models), (iii) Functioning (z.B. perturbations, examples), (iv) Format (z.B. textual, visual) und (v) Stage (post-hoc vs. ante-hoc) abgedeckt:
- Motivation und Ziele von XAI
- XAI-Terminologie und XAI Taxonomie
- Methoden aus dem Bereich der Feature Importance Explanations (u.a. feature attribution vs. feature selection)
- Methoden aus dem Bereich Removal-based Explanations (z.B. LIME, RISE)
- Shapley Values (und SHAP)
- Methoden aus dem Bereich Concept-based Explanations (z.B. Concept Bottleneck Models)
- Methoden zur Interpretation neuronaler Netze (z.B. Attention-basierte Methoden)
- Potentiellen Gefahren von XAI-Methoden etwa bezüglich "Fairwashing" und "Manipulation".
Am Ende der Vorlesung wird mittels einer mündlichen Prüfung überprüft, inwieweit die Studierenden die grundlegenden XAI-Konzepte verstanden haben sowie aktuelle Forschungsergebnisse bewerten können. Das Beantworten der Fragen erfordert sowohl die gelernte Terminologie richtig zu gebrauchen, als auch unterschiedliche Methoden analysieren bzw. teilweise auch evaluieren zu können.
Neben den durch Gruppenarbeit nachvollzogenen und durch Kurzpräsentationen vorgestellten einzelnen Methoden, haben Studierende zusätzlich die Möglichkeit mit einer freiwilligen, größeren Gruppenpräsentation eines Spezialthemas zu demonstrieren, dass sie einzelne Themen detailliert bewerten und erklären können. Eine Präsentation, die durch fundierte Analyse und verständliche Darstellung überzeugt, führt zu einer Verbesserung der Prüfungsnote um einen Notenschritt.
Das Modul "Spezielle Kapitel Software-Engineering" behandelt aktuelle Entwicklungen und spezielle Themen im Bereich des Software-Engineerings. Die Inhalte des Moduls können von Semester zu Semester variieren, um auf die neuesten Trends und Entwicklungen im Software-Engineering einzugehen.
Diese Vorlesung vermittelt das Grundwissen über Codes und Codierungen und die gängigen Algorithmen aus dem Gebiet der Quellen-, Kanal- und Leitungscodierung. Im Einzelnen werden Themen aus den folgenden Bereichen behandelt: Informations- und Codierungstheorie, Datenkompression, Fehlererkennende und -korrigierende Codes, Grenzen der Datenübertragung.
Vorlesungsteilnahme
Die Vorlesung gibt eine Einführung in Modellierungs- und Simulationsmethoden. Themen der Vorlesung und Übungen sind:
Die Inhalte der Vorlesung werden über Latex-Folien vermittelt. Die Folien werden den Studierenden vorlesungsbegleitend als PDF ins ILIAS hochgeladen. Ergänzend werden regelmäßig Beispiele und Anwendungen in vorlesungsintegrierten Rechenübungen besprochen. Die Aufgaben und Lösungen werden ebenfalls elektronisch bereitgestellt. Während der Veranstaltung werden ca. 6 Übungsblätter ausgeteilt, deren Lösung in darauffolgenden Terminen ausführlich vorgestellt wird. Zu der Veranstaltung gehört ein begleitendes Computerpraktikum, in dem numerische Algorithmen zu Interpolations- und Approximationsverfahren in kleinen Beispielprogrammen umgesetzt und am Rechner auf konkrete Probleme angewendet wird. Zum weiteren Selbststudium werden folgende Lehrbücher empfohlen:
Seminaristischer Unterricht und Übungen
In dem begleitenden Rechnerpraktikum werden die Inhalte der Vorlesung "Modellierung und Simulation" vertieft, indem numerische Algorithmen zur Interpolation diskreter Datenmengen und zur Approximation von Lösungen für kontinuierliche Probleme in der Programmiersprache C/C++ implementiert werden. Zunächst werden die Iterationsverfahren in kleinen Beispielprogrammen umgesetzt. Diese werden auf konkrete Fragestellungen angewendet und die Lösungen diskutiert bzw. graphisch dargestellt. Im Anschluss werden ausgewählte numerische Methoden hinsichtlich Laufzeit analysiert und Konzepte der Parallelisierung eingesetzt, um die Iterationen parallel auszuführen oder durch Gebietszerlegung auf mehrere Prozessoren zu verteilen.
Themen der Rechnerübung zur Vorlesung "Modellierung und Simulation" sind:
Für die praktischen Übungen am Rechner werden Aufgabenblätter erstellt und als PDF im ILIAS System bereitgestellt. Die Aufgaben werden zu Beginn der Veranstaltung besprochen, die Ziele erklärt und Lösungswege skizziert. Als Unterstützung werden den Studierenden Programmrümpfe zur Verfügung gestellt, in die die jeweiligen Algorithmen in C/C++ umgesetzt werden sollten. Nach Fertigstellung und Anwenden der Programme erfolgt eine Abnahme und eine ausführliche Besprechung der implementierten Lösung. Zum Vertiefen der in der Vorlesung erarbeiteten numerischen Verfahren wird auf das Lehrbuch:
verwiesen. Als Unterstützung bei der Implementierung der Verfahren in C/C++ wird der Klassiker für Beispielprogramme in C empfohlen:
Praktische Übungen am Rechner
Das Modul “Mobile und Verteilte Systeme” vermittelt fundiertes Wissen und praxisrelevante Fähigkeiten im Bereich mobiler und verteilter Systeme. Studierende entwickeln ein tiefgehendes Verständnis der zugrunde liegenden Technologien und Architekturen sowie die Kompetenz, moderne Lösungen für komplexe, reale Problemstellungen zu entwerfen, zu bewerten und anzuwenden.
Nach Abschluss des Moduls können Studierende technologische Konzepte mobiler und verteilter Systeme kritisch bewerten, deren Integration gestalten und innovative Lösungen im beruflichen und forschungsorientierten Kontext umsetzen.
In der Vorlesung „Mobile Systeme“ erwerben die Studierenden ein grundlegendes Verständnis der Herausforderungen und Technologien im Bereich mobiler Kommunikationssysteme. Nach Abschluss der Vorlesung können sie grundlegende Prinzipien drahtloser und mobiler Kommunikation erläutern und spezifische Technologien wie Mobilitätsmodelle, mobile Ad-hoc-Netze (MANETs), verzögerungstolerante Netze (DTNs) und mobiles TCP analysieren und bewerten. Darüber hinaus sind sie in der Lage, Problemstellungen im Bereich mobiler Systeme zu identifizieren und geeignete Lösungsansätze in praktischen Szenarien anzuwenden.
Die Vorlesung behandelt die folgenden Inhalte:
• Grundlagen mobiler Systeme: Herausforderungen durch Mobilität, drahtlose Kommunikation und Netzwerke.
• Mobilitätsmodelle: Simulation und Analyse individueller und gruppenbasierter Mobilität.
• Mobile Ad-Hoc-Netze (MANETs): Selbstorganisierende Netzwerke, Routing-Protokolle und Anwendungsfälle.
• Verzögerungstolerante Netze (DTNs): Kommunikation bei intermittierender Konnektivität und „Store-Carry-Forward“-Mechanismen.
• Mobiles TCP: Anpassung und Optimierung des Transmission Control Protocols für mobile und drahtlose Netzwerke.
Die Vorlesung wird im Flipped Classroom-Format unterrichtet. Die Studierenden bereiten sich eigenständig mithilfe von Vorlesungsfolien und Erklärvideos auf die Live-Termine vor. In den Präsenzveranstaltungen werden Inhalte durch Fallstudien und Übungen vertieft. Zur Selbstüberprüfung stehen Online-Tests zur Verfügung, die den Studierenden Feedback und die Möglichkeit zur Vertiefung des Gelernten bieten. Die Prüfungsleistung besteht aus einer 60-minütigen Klausur, die Teil der Modulklausur „Mobile und Verteilte Systeme“ ist. Der Arbeitsaufwand beträgt insgesamt 60 Stunden, die sich auf 20 Stunden Präsenzzeit in den Live-Terminen, 20 Stunden asynchrones Lernen mit Vorlesungsfolien und Videos sowie 20 Stunden für Prüfungsvorbereitung und Nachbereitung verteilen.
Seminaristischer Unterricht, Übungsblätter
Aufbauend auf einem vorausgesetzten Verständnis grundlegender Prinzipien und Paradigmen verteilter Systeme behandelt die Master-Vorlesung Fallstudien aktueller Anwendungsgebiete. Die Auswahl behandelter Inhalte variiert. Es werden zum einen praktisch bedeutsame (industrierelevante) Bereiche berücksichtigt. Zum anderen werden aktuelle Trends aus Forschung und Entwicklung aufgegriffen. Die aktuelle Vorlesung fokussiert den Themenkomplex des Internet Computing.
In der Vorlesung erlangen die Studierenden ein umfassendes Verständnis der Infrastruktur und der Technologien, die dem heutigen Internet-Computing zugrunde liegen. Sie entwickeln ein solides Verständnis für verteilte Systemarchitekturen und Webtechnologien, die für die Orientierung in der komplexen Landschaft globaler IT-Umgebungen unerlässlich sind. Durch die Betrachtung aktueller Paradigmen wie Cloud Computing und das Internet der Dinge (IoT) werden die Studierenden in die Lage versetzt, diese Technologien in verschiedenen fachlichen Kontexten zu bewerten und zu nutzen. Darüber hinaus werden die Studierenden durch die Behandlung neu aufkommender Technologien wie Distributed-Ledger-Technologien (DLT) und Fog Computing darauf vorbereitet, innovative Beiträge im Bereich des Internet-Computing zu entwickeln. Der Kurs zielt darauf ab, ihre analytischen Fähigkeiten zu verbessern und sie in die Lage zu versetzen, die Integration und das Potenzial internetbasierter Technologien bei der Gestaltung individueller, organisatorischer und gesellschaftlicher Praktiken kritisch zu bewerten. Darüber hinaus erweitern die Studierenden durch die Beschäftigung mit einer Vielzahl von Lernressourcen, einschließlich Beispielen, weiterführender Lektüre und Verständnisfragen im begleitenden Lehrbuch, ihre Forschungs- und Recherchefähigkeiten.
Primäre Begleitliteratur:
Während des Kurses werden eine umfangreiche Bibliographie und spezifische Empfehlungen für weiterführende Literatur vorgestellt.
Eigenständige Arbeitsanteile betreffen Vor- und Nacharbeit der Vorlesungsinhalte und Klausurvorbereitung.
Das Labor vermittelt praktische Einblicke in den Aufbau verteilter Informationssysteme. Es werden aktuelle Paradigmen aufgegriffen und erweiterte Prinzipien im Kontext realistischer Anwendungsfälle behandelt. Die konkreten Aufgabenstellungen orientieren sich an aktuellen Themen der industriellen Forschung und Entwicklung. Sie variieren daher von Semester zu Semester. Die praktische Umsetzung erfolgt mit modernen industrierelevanten Plattformen und Frameworks.
Aktuell umfasst das Labor ein Projekt zur Migration eines monolithischen Informationssystems nach dem Microservice-Architekturstil. Dabei werden Technologien wie UML und Domain Driven Design, REST-basierte Microservices mit Spring/Spring-Boot, eine Microservice-Plattform mit Docker und Kubernetes sowie Service Meshes auf Basis von Istio eingesetzt.
Durch Teilnahme an dem Labor werden die Studenten praktische Erfahrungen im Design, der Entwicklung und dem Einsatz von verteilten Informationssystemen sammeln, insbesondere durch die Umwandlung von monolithischen Architekturen in Microservices. Sie werden mit einer Reihe von modernen, branchenüblichen Tools und Technologien vertraut gemacht, darunter UML für die Modellierung, Domain-Driven Design für die Strukturierung von Systemen, Spring und Spring Boot für die Erstellung REST-basierter Microservices sowie Docker und Kubernetes für die Containerisierung und Orchestrierung. Durch den Einsatz von Istio zur Verwaltung von Service-Meshes werden die Studierenden zudem in die Lage versetzt, die Kommunikation und den Betrieb von Microservices in komplexen Systemen zu optimieren. Diese praktischen Erfahrungen bereiten die Studierenden auf aktuelle und zukünftige Herausforderungen in der industriellen Forschung und Entwicklung vor.
Weitere Literatur wird in jedem Semester passend zur Aufgabenstellung vorgestellt. Hierzu zählen auch Online Tutorials basierend auf einer Auswahl aktueller Frameworks und Bibliotheken.
Es werden Grundkenntnisse in den Bereichen web- und komponentenbasierter verteilter Systeme sowie Web- und Datenbankprogrammierung in Java vorausgesetzt. Die Veranstaltung beinhaltet 50 % betreute Präsenszeit (2 SWS) sowie 50% selbständige Arbeit. Der Leistungsnachweis erfolgt durch Präsentation und Verteidigung der Lösung.
Nach erfolgreichem Abschluss des Moduls sind die Studierenden in der Lage, Techniken und Methoden des wissenschaftlichen und projektbasierten Arbeitens selbständig und reflektiert anzuwenden. Sie können ihre erworbenen Kenntnisse eigenständig und im Team auf komplexere und umfangreichere Aufgabenstellungen übertragen. Darüber hinaus haben sie gelernt, Entscheidungen kritisch zu hinterfragen, alternative Ansätze zu evaluieren sowie eigene Entscheidungen fundiert zu bewerten und zu rechtfertigen. Sie sind in der Lage, größere industrielle sowie wissenschaftliche IT-Projekte zu planen, durchzuführen und erfolgreich abzuschließen. Im Team übernehmen die Studierenden Verantwortung, arbeiten effektiv zusammen und tragen gemeinsam zum Projekterfolg bei.
Arbeitsgebiete können durch jeden Professor der Fakultät eröffnet werden, dies erfolgt durch Aushang zu Semesterbeginn.
Forschungsprojekte bewegen sich an der vorderen Front der aktuellen Informatikforschung und können in Zusammenarbeit mit Forschungsinstitutionen durchgeführt werden.
Anwendungsprojekte sind von besonderer Relevanz für die industrielle Praxis und können in Zusammenarbeit mit Industrieunternehmen durchgeführt werden.
Die Master Thesis ist die Abschlussarbeit des Informatikstudiums. Die Teilnahme an diesem Modul befähigt die Studierenden, ein wissenschaftliches oder anwendungsnahes Thema weitgehend selbständig zu bearbeiten. Sie sind in der Lage, in Zusammenarbeit mit einem Industrieunternehmen oder einer Forschungsinstitution die Aufgabenstellung sorgfältig zu strukturieren, die erforderlichen Ressourcen zusammenzustellen und anschließend die Aufgabe anhand eines eigens abgeleiteten Zeitplans zu lösen. Sie können ihre Ergebnisse sowohl schriftlich dokumentieren als auch in einem Kolloquium vor einem Fachpublikum wissenschaftlich ansprechend präsentieren und verteidigen.
In der Abschlussarbeit bearbeiten die Studierenden in einem vorgegebenen Zeitraum eine praxisnahe Problemstellung oder eine Forschungsaufgabe selbstständig mit wissenschaftlichen Methoden und Erkenntnissen des Fachs. Sie strukturieren dazu die Aufgabenstellung, prüfen Abhängigkeiten, stellen die erforderlichen Ressourcen zusammen und bearbeiten das Problem an Hand eines Zeitplans. Die schriftliche Thesis fasst die Ergebnisse didaktisch sinnvoll aufbereitet zusammen und genügt wissenschaftlichen Standards.
Passend zur Aufgabenstellung nach Absprache
Die Abschlussprüfung erfolgt über alle Informatik-relevanten Themen des Masterstudiengangs. Die Studierenden weisen nach, dass sie fachübergreifende Zusammenhänge verstanden haben und diese anwenden können. Sie präsentieren dazu die wichtigsten Ergebnisse ihrer Masterthesis didaktisch sinnvoll aufbereitet vor einem Fachpublikum. Außerdem stellen sie sich Fragen aus vielfältigen Bereichen der Informatik, die im Zusammenhang mit ihrer Abschlussarbeit stehen. Mit der Abschlussprüfung weisen sie nach, dass sie die Kompetenz zur selbstständigen Bearbeitung von neuartigen Problemstellungen aus der Informatik besitzen.