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 erlernen unterschiedliche Methoden und Strategien beim Entwerfen von interaktiven Systemen und können sie anwenden. Sie erkennen und lösen Designprobleme bei der Gestaltung dieser Systeme. Sie beschäftigen sich mit dem kulturellen Kontext von Interaktionen und setzen sich kritisch mit der Geschichte des Interaktionssdesigns auseinander.
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.
Maschinelles Lernen, Vorlesungsteil Prof. Link
Klassische Methoden des überwachten Lernens, eine Auswahl aus
Deep Learning, eine Auswahl aus
Reinforcement Learning
Maschinelles Lernen, Vorlesungsteil Prof. Laubenheimer
Vorbereitung:
Transformationen
Methoden des unüberwachten Lernens, eine Auswahl aus
Die Übung wird mit Python durchgeführt, wahlweise auf dem eigenen Laptop oder auf PCs des Labors für Maschinelles Lernen.
Das Modul behandelt den Entwurf effizienter Algorithmen in Theorie und Praxis. Die Studierenden erlernen dazu Beweistechniken für graphentheoretische Probleme, um die Korrektheit von Algorithmen mit exakten logischen Schlüssen nachzuweisen. Sie analysieren Laufzeiten von Verfahren und setzen passende Analysetechniken ein. Am Beispiel numerischer Probleme wie z.B. die Interpolation und Approximation mathematischer Modelle konzipieren die Studierenden zudem selbstständig Lösungsverfahren und implementieren diese anschließend. Die Iterationsverfahren werden von den Studierenden für konkrete technische Probleme umgesetzt und exemplarisch zur Nutzung auf modernen Hochleistungsrechnern parallelisiert.
Die Studierenden sind nach Abschluss des Moduls in der Lage, Algorithmen theoretisch zu analysieren und zu bewerten, aber auch Modellierungs- und Simulationsverfahren für die computergestützte Auslegung von Prozessabläufen in der Praxis anzuwenden.
Ziel der Lehrveranstaltung ist die Vermittlung einiger grundlegender Algorithmen auf Graphen. Die Vorlesung soll Teilnehmer dazu befähigen, auch weiterführende Algorithmen zu erarbeiten, sicher anzuwenden sowie deren Korrektheit und Komplexität zu verstehen.
Nach einer kurzen theoretischen 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.
Für diese Lehrveranstaltung sind grundlegende Kenntnisse einer Programmiersprache sowie der sichere Umgang mit dem O-Kalkül notwendig. Die Kenntnis von Induktionsbeweisen ist von Vorteil. (Beide Themengebiete werden zum Selbststudium im Anhang des Skriptes angeboten.)
Der Stoff der Vorlesung wird an der Tafel besprochen und ist zusätzlich in einem vorab erhältlichen Skript verfügbar. Skript, Übungsaufgaben und Musterlösungen werden auch online angeboten.
Die Lehrveranstaltung findet als Vorlesung statt. Begleitende Übungen vertiefen die vermittelten Gebiete. Musterlösungen werden zur Verfügung gestellt und bei Bedarf auch im Unterricht diskutiert.
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
Maschinen können heute bereits auf "natürliche" Art und Weise mit Menschen kommunizieren, indem sie Sprache verstehen, Schrift erkennen oder Gesten interpretieren können. Sie können aber auch die Wahrnehmung der Menschen erweitern, indem sie die Darstellung von Situationen mit zusätzlichem Wissen anreichern ("Augmented reality"), d.h., die Darstellung von Information erfolgt im Kontext der von der Maschine wahrgenommenen Situation, in der sich der Mensch befindet. Beispiele finden sich in Smartphones und Tablets (Sprachsteuerung, Gesichtserkennung, "Goggle", Musikerkennung) in Fahrzeugen in Form von Fahrerassistenzsystemen, in Spieleboxen zur Bewegungsinterpretation, aber auch in der Arbeitswelt wie z.B. der Chirurgie oder Mensch-Roboter-Kooperation).
In der Vorlesung werden die Grundlagen von Sprach- und Gestenerkennung, die Erfassung und Erkennung von Umgebungsobjekten und deren Nutzung in der Interaktion und Informationspräsentation behandelt. Anwendungsbeispiele (z.B. mit dem Kinect Sensor) vertiefen das Verständnis des Stoffes. Die Themen im Einzelnen:
Vorlesung, Teilnahme am seminaristischen Unterricht.
Die Vorlesungsinhalte werden anhand der Konzeption und der Umsetzung eines im Rahmen der Vorlesung gemeinsam definierten Aufgabe vertieft.
In diesem Modul werden theoretische und mathematische Grundlagen des Maschinellen Lernens sowie Methoden der Datenanalyse behandelt.
Die vermittelten Inhalte und Kompetenzen des Moduls sind für die Teilnahme am Modul Künstliche Intelligenz von Vorteil.
Ziel: Theoretische und praktische Kenntnissen über Data Analytics im Kontext Maschinellen Lernens
Ziel: Vermittlung von theoretischen und praktischen Kenntnissen über Optimierungsmethoden/-kalküle im Kontext des Maschinellen Lernens (Minimierung der Fehlerfunktion)
Ü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.
aaaa
Studierende dieses Kurses
Auswahl von behandelten Themen:
Historischer Überblick
Prozedurale Sprachen
Blockstruktur
Parameterübergabe
Objekt-orientierte Sprachen
Subtyping
Vererbung
Überladung
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.
In a globalized information society, data semantics is of increasing importance. XML techniques, Ontologies and reasoning concepts are at the core of semantic technology.
Students acquire abstract and concrete competencies to use basic and advanced XML techniques (XML DTD and Schema, XLink/XPointer), and have dealt with various XSLT applications in the functional programming paradigm.
Students have abstract and concrete knowledge about the Resource Description Framework RDF, its extension into RDFS and OWL; they know how to write and visualize simple ontologies and how these are used in software applications
Students know machine based reasoning tools and principles of knowledge description, they have performed several reasoning tasks.
Students know different models of thinking and reasoning (deduction and induction), fundamentals of science theory and paradigms of learning and teaching. Students are competent to use and evaluate different scientific methodologies also in socio-political and societal situations
The course therefore contributes to the two dimensions technical knowledge and leadership skills. Since it is held in English, participants improve their key skills. The course also serves as enabler for students' own activities in a globalized information society.
Prerequisites: Participants should have basic knowledge of descriptive languages (XML applications), at least should have practical knowledge of Web programming.
Participants should have sufficient knowledge of technical English.
Format: Participation necessary in two classroom hours per week, electronic tests and essay writing on selected topics, theoretical self-study on semantic technologies.
Counseling Questions during course hours, electronic learning management system ILIAS, weekly online chat in ILIAS, 24 x 7 offline discussion in ILIAS Forum, eMail
Topics covered by practical lab problems include:
Prerequisites: Students should be participants of the "Semantic Web Technologies" course, at least should have theoretical knowledge of the topics covered.
Format: Participation in 2 lab hours per week in small groups of 2-3 students, practical self-study and XML programming.
Deliverables: Successful completion (upload to ILIAS in time) of 80% of the lab problems.
Counseling: Personal counseling during lab hours, electronic learning managment system ILIAS, weekly online chat in ILIAS, 24 x 7 offline discussion in ILIAS forum, eMail
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 erwerben die praktische Kompetenz zum IT-Projektmanagement sowie der Planung und Durchführung von IT-Projekten.
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.
In intensiver fachlicher Diskussion werden kommunikative Rahmenbedingungen und Erwartungen herausgearbeitet, Strategien und Taktiken für die Gesprächsführung sowie die Bewältigung von Krisensituationen geübt.
Seminaristischer Unterricht als Blockkurs nach Semesterende.
Dieses Modul dient dem wissenschaftlichen oder projektbasierten Arbeiten unter intensiver Betreuung eines Hochschullehrers. Dabei arbeiten Studierende kontinuierlich während des gesamten Semesters an einem wissenschaftlichen Thema oder einem anwendungsnahen Projekt.
Studierende erwerben dadurch die Kompetenz, fortgeschrittene industrielle und wissenschaftliche Projekte im IT-Bereich selbständig zu planen, durchzuführen und im Team abzuschließen.
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.
Die Vorlesung gibt den Studierenden einen Einblick in aktuelle Entwicklungen und Forschungsergebnisse im Bereich "Maschinelles Lernen" und "Künstliche Intelligenz".
Dazu werden in der Vorlesung zuerst die Grundlagen im Bereich "Neural Networks" kurz wiederholt, um dann auf aktuelle Anwendungen im Bereich "Deep Learning" näher einzugehen. Im Rahmen dessen werden erweiterte Architekturen wie "Convolutional Neural Networks", "Recurrent Neural Networks" und "LSTMs" betrachtet und deren Einsatz im Kontext von Anwendungen in den Bereichen "Computer Vision", "Natural Language Processing" und "Reinforcement Learning" dargestellt.
Die Inhalte der Vorlesung umfassen:
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.
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.
Im Modul Spezielle Kapitel Medieninformatik werden wir uns in diesem Semester intensiv mit dem Thema "Conversational User Interfaces" auseinandersetzen. Themenschwerpunkte ist dabei Automatische Spracherkennung, Natural Language Processing, Natural Language Understanding und Strategien für den Discourse.
Neben Frontalunterricht wird in der Veranstaltung insbesondere auf das Format der "reading group" zurückgegriffen:
Es wird Lesematerial ausgegeben, welches im darauf folgenden Unterricht gemeinsam diskutiert wird.
Dabei ist der Fokus nicht nur auf der technischen Realisierung, sondern auch auf gestalterischen und sozialen Aspekten.
Zentrale Fragen sind dabei:
Im Praktikum werden in Kleingruppen eigene Anwendungen entworfen und prototypisch umgesetzt. Dabei kommen Frameworks für die Spracherkennung und Dialogsysteme zum Einsatz. Je nach Vorkenntnissen der Studierenden werden hierzu noch Tutorials angeboten.
siehe allgemeine Modulbeschreibung, nicht die Veranstaltung
siehe allgemeine Modulbeschreibung, nicht die Veranstaltung
In dieser Vorlesung werden die grundlegenden Methoden der Kryptographie vorgestellt. Dabei wird nach den einführenden Grundlagen der Schwerpunkt auf die Mechanismen gelegt, die typischerweise bei modernen Anwendungen zum Einsatz kommen.
Wesentliche Themen sind symmetrische Verschlüsselungsverfahren, insbesondere Blockchiffren (DES, AES), Modes of Operation (z.B. EBC, CBC), Hash-Funktionen, Message-Authentication-Codes, Public-Key-Verfahren (z.B. RSA, Diffie-Helman, ElGamal), Key-Management und elektronische Unterschriften.
Im weiteren Verlauf werden verschiedene, aktuelle Anwendungen der IT-Sicherheit, die auf dem Einsatz kryptographischer Verfahren beruhen, behandelt: E/Mail-Sicherheit (z.B. PGP, S-MIME), WWW-Sicherheit (SSL), Netzwerksicherheit (IP-SEC), Sicherheit von Web-Servern (Authentifikations-Mechanismen). Anhand dieser Beispiele werden wesentliche Grundprinzipien der IT-Sicherheit erläutert.
Ausführliche Folien werden im Intranet angeboten. Die Foliensätze der einzelnen Themen enthalten jeweils gesondert Literaturhinweise.
Einen Überblick bietet:
Die Lehrveranstaltung wird zu ca. 2/3 als Vorlesung durchgeführt. In der übrigen Zeit werden betreute Übungen durchgeführt, um die Techniken an praktischen Rechenbeispielen zu vertiefen.
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
Dieses Modul besteht aus den beiden Lehrveranstaltungen Codierungstheorie und angewandte Kryptographie. Im Rahmen dieses Moduls soll ein Verständnis sowohl für die Zielsetzung, als auch für die Methoden dieser beiden Gebiete erreicht werden. Die Teilnehmer sollen durch den Kurs in der Lage sein, die Methoden der beiden Gebiete zu verstehen und anwenden und die Sicherheit von Systemen einschätzen zu können. Insbesondere sollen Sie eine Beurteilungsgrundlage bekommen, um die Bedeutung von aktuellen Informationen/Nachrichten über die Sicherheit von Systemen richtig einschätzen zu können.
In der Codierungstheorie wird die Fragestellung behandelt, wie trotz fehlerhafter Übertragung korrekte Ergebnisse erzielt werden können. Dabei sind die zugrundeliegenden Fehler bzw. Fehlermodelle von der Übertragungstechnik abhängig. In der Kryptographie versucht man die Sicherheitsziele trotz bewusster Manipulationen durch einen Angreifer zu erreichen. Im einen Fall hat man es also mit gezielten Manipulationen, im anderen Fall mit mehr zufällig verteilten Fehlern zu tun. Diese zwei Gebiete haben also unterschiedliche, aber doch verwandte Zielrichtungen. Es kommen teilweise die gleichen Methoden zum Einsatz. Ein typisches Beispiel für den engen Zusammenhang stellt das moderne Verschlüsselungsverfahren AES dar. Bei einer der Teilfunktionen wird ein Code aus der Codierungstheorie verwendet um eine Funktion mit hoher Durchmischung (Diffusion) für den Einsatz in der Kryptographie zu bekommen.
In dieser Vorlesung werden die grundlegenden Methoden der Kryptographie vorgestellt. Dabei wird nach den einführenden Grundlagen der Schwerpunkt auf die Mechanismen gelegt, die typischerweise bei modernen Anwendungen zum Einsatz kommen.
Wesentliche Themen sind symmetrische Verschlüsselungsverfahren, insbesondere Blockchiffren (DES, AES), Modes of Operation (z.B. EBC, CBC), Hash-Funktionen, Message-Authentication-Codes, Public-Key-Verfahren (z.B. RSA, Diffie-Helman, ElGamal), Key-Management und elektronische Unterschriften.
Im weiteren Verlauf werden verschiedene, aktuelle Anwendungen der IT-Sicherheit, die auf dem Einsatz kryptographischer Verfahren beruhen, behandelt: E/Mail-Sicherheit (z.B. PGP, S-MIME), WWW-Sicherheit (SSL), Netzwerksicherheit (IP-SEC), Sicherheit von Web-Servern (Authentifikations-Mechanismen). Anhand dieser Beispiele werden wesentliche Grundprinzipien der IT-Sicherheit erläutert.
Ausführliche Folien werden im Intranet angeboten. Die Foliensätze der einzelnen Themen enthalten jeweils gesondert Literaturhinweise.
Einen Überblick bietet:
Die Lehrveranstaltung wird zu ca. 2/3 als Vorlesung durchgeführt. In der übrigen Zeit werden betreute Übungen durchgeführt, um die Techniken an praktischen Rechenbeispielen zu vertiefen.
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
Studierende erlernen das Verständnis und die Konzeption von mobilen und verteilten System-Architekturen. Sie verwenden und verstehen die Begrifflichkeiten von Komponenten, Schichten, Schnittstellen und Standards. Funktionale und nichtfunktionale Anforderungen an die System- und Software-Architektur werden beherrscht, die Verteilbarkeit, Integration und das Zusammenspiel unterschiedlicher Technologien verstanden.
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.
Einen wesentlichen Themenkomplex der aktuellen Vorlesung stellen dienstbasierte Informationssysteme dar. Deren Strukturen und Konstruktionsprinzipien werden in Hinsicht auf serviceorientierte Systemtechniken, Software Architekturen und Organisationsstrukturen dargestellt. Serviceorientierte Konzepte werden am Beispiel von Web Service Technologien veranschaulicht und anhand konkreter Werkzeuge, Frameworks und Plattformen untermauert.
Eigenständige Arbeitsanteile betreffen Vor- und Nacharbeit der Vorlesungsinhalte und Klausurvorbereitung.
Das Labor vermittelt praktische Einblicke in die Konstruktion verteilter Informationssysteme. Dabei werden aktuelle Paradigmen aufgegriffen und erweiterte Prinzipien im Kontext realitätsnaher Anwendungsfälle behandelt. Die konkrete Aufgabenstellung orientiert sich an aktuellen Themenstellungen industrieller Forschung und Entwicklung. Sie variiert daher von Semester zu Semester. Die praktische Umsetzung erfolgt unter Verwendung moderner industrierelevanter Plattformen und Frameworks.
Die 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) im Labor sowie 50% selbständige Arbeit. Der Leistungsnachweis erfolgt durch Präsentation und Verteidigung der Lösung.
Dieses Modul ist die Fortsetzung der Veranstaltung "Wissenschaftliches oder projektbasiertes Arbeiten unter Anleitung I". In diesem Modul sollen Studierende kontinuierlich während des gesamten Semesters an einem wissenschaftlichen Thema oder einem anwendungsnahen Projekt arbeiten. Es kann, muss sich aber nicht um dasselbe Projekt wie im ersten Veranstaltungsteil handeln.
Studierende erwerben dadurch die Kompetenz, fortgeschrittene industrielle und wissenschaftliche Projekte im IT-Bereich selbständig zu planen, durchzuführen und im Team abzuschließen.
Parallel dazu wird ein fakultätsöffentlicher Seminarvortrag vorbereitet.
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.
Nach Maßgabe der Arbeitsgruppe
Vorkenntnisse: Nach Maßgabe der Arbeitsgruppe
Format: Präsenzzeit mit Gruppendiskussion 30 %, selbständige Arbeit 70 %.
Mündliche Prüfung 30 Minuten
Betreuung: In der Regel wird wöchentlich zu einem festen Termin eine Sitzung der Arbeitsgruppe stattfinden, der Betreuungsumfang umfasst mindestens 1 SWS je Teilnehmer
Die Teilnehmenden des Seminars erstellen unter Anleitung eines betreuenden Dozenten zu einem Thema eine schriftliche Ausarbeitung in Hausarbeit. Die Seminarthemen sind in Themengruppen klassifiziert und orientieren sich in der Regel an aktuellen Informatik-Problemen. Neben der fachlichen Problemstellung steht in dieser Lehrveranstaltung auch die Selbstdarstellung des Studierenden im Vordergrund. Die Arbeit wird durch eine Präsentation abgeschlossen.
Besprechungen mit dem betreuenden Dozenten; ev. experimentelle Untersuchungen; Literatur-Aufarbeitung; Berichterstellung; Teilnahme an den Seminarvorträgen der Kommilitonen; Diskussion der Präsentationen der Kommilitonen.
Die Master Thesis ist die Abschlussarbeit des Informatikstudiums.
Sie dient dem Nachweis der erworbenen Fähigkeiten, indem ein wissenschaftliches oder anwendungsnahes Thema mit großer Selbständigkeit bearbeitet wird. Dies geschieht im Regelfall in Zusammenarbeit mit einem Industrieunternehmen oder einer Forschungsinstitution nach Maßgabe der Studien- und Prüfungsordnung.
In einer Master Thesis soll insbesondere die Fähigkeit bewiesen werden, fachlich sowohl tiefer als auch umfassender als im grundlegenden Bachelor-Studium in das bearbeitete Gebiet hineinzureichen; ferner soll als Ergebnis der Master Thesis eine abstrahierende Zusammenfassung des bearbeiteten Themas stehen, die einem wissenschaftlichen Anspruch genügt.
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