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
Die Studierenden beherrschen verschiedene Arten von Programmiersprachen und verstehen deren zugrundeliegenden Konzepte. Des Weiteren lernen die Studenten Optimierungsverfahren zu bewerten und beherrschen ihre Anwendung zur effizienten Ausführung von Programmen.
Mit Hilfe praktischer Übungen bekommen die Studierenden einen Einblick in verschiedenen Arten der Programmierung in mehreren Programmiersprachen. Sie sind kompetent, die Brauchbarkeit und Wirksamkeit verschiedener Programmierkonzepte zu beurteilen und umzusetzen.
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.
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 drei Teilen "IT-Projektmanagement", "IT Management" und "Führungskräftetraining" zusammen.
Die Studierenden lernen im IT-Projektmanagement verschiedene branchenspezifische Anforderungen, Methoden und Werkzeuge kennen. Die Studierenden sind danach kompetent, unterschiedliche Situationen im IT-Projektmanagement erkennen, analysieren und beurteilen zu können und beherrschen die Anwendung der relevanten Methoden und Werkzeuge.
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.
Im Führungskräftetraining erwerben die Studierenden die Kompetenz, kommunikative Rahmenbedingungen und Erwartungen herauszuarbeiten. Sie beherrschen Strategien und Taktiken für die Gesprächs- und Verhandlungsführung sowie die Bewältigung von Krisensituationen.
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.
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.
Die Studierenden erlernen die Architektur großer Software-Systeme selbstständig zu entwerfen, zu gestalten und zu bewerten. Dies umfasst, neben der logischen Organisation von Funktionalität und Abläufen, der konkreten Zerlegung in Komponenten und Konnektoren auch die Auswahl und Bewertung geeigneter Frameworks.
Im ersten Teil der Vorlesung werden zentrale Modellierungstechniken für den Entwurf von Komponenten erarbeitet und bereits erlernte Entwurfsmethoden vertieft. Darauf aufbauend werden im zweiten Teil der Vorlesung gängige Architekturmuster aufgearbeitet. Die Studierenden lernen, deren Strukturen, Eigenschaften und Besonderheiten zu erkennen, zu verstehen und als Muster zu begreifen. Den Studierenden wird aufgezeigt, wie diese Architekturvorlagen Ansatzmöglichkeiten bieten, flexible und evolutionäre Systeme zu organisieren. Der dritte Teil der Vorlesung beschäftigt sich mit der Architektur auf Modulebene. Anhand verschiedener Szenarien und Beispiele wird der Einsatz von Patterns vorgestellt und im jeweiligen Kontext bewertet.
Seminaristischer Unterricht; Übungsblätter
Im ersten Teil der Vorlesung werden die Konzepte der nebenläufigen Programmierung vorgestellt, aufgefrischt, vertieft und mit Hilfe der Möglichkeiten der Programmiersprache Java und des JDK praktisch in Übungen erprobt und angewendet. Der zweite Teil der Vorlesung bespricht verschiedene aktuelle praktische Anwendungsfelder der nebenläufigen Programmierung in Form kurzer, kompakter Einführungen. Darunter befinden sich Themen wie Betriebssysteme und Nebenläufigkeit am Beispiel Linux, mobile Plattformen und Nebenläufigkeit am Beispiel Android, Map/Reduce und das Hadoop Ökosystem, Web und Nebenläufigkeit, Nebenläufigkeit in Go und Rust, Reactive Extensions (Rx), Cloud, Cluster und verteilte Systeme, Microservice Architekturen, Deep Learning,
Die erfolgreiche Teilnahme an der Vorlesung wird durch die eigenständige Bearbeitung der Übungen dokumentiert und begutachtet. Im zweiten Teil der Vorlesung 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.
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
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.:
Dieses Modul soll Studierenden die theoretischen und schwerpunktmäßig praktischen Aspekte des SAT-Solving vermitteln. Behandelt werden:
Auch die Einbindung von industriellen Anwendern (z.B. von Mercedes-Benz) ist vorgesehen.
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.
Die Studierenden lernen, komplexe mobile und verteilte Systemarchitekturen zu analysieren und zu synthetisieren. Dazu verstehen und verwenden sie die Begriffe Komponenten, Schichten, Schnittstellen und Standards. Funktionale und nicht-funktionale Anforderungen an die System- und Softwarearchitektur werden beherrscht, die Verteilbarkeit, Integration und das Zusammenspiel unterschiedlicher Technologien verstanden. Damit sind die Studierenden in der Lage, Software in komplexen mobilen und verteilten Systemlandschaften zu entwickeln.
Wer heute ein über das Internet zugängliches Angebot entwickelt, muss sich zwangsläufig Gedanken über dessen Nutzung mit mobilen Endgeräten machen. Diese Endgeräte sind über verschiedene Netzwerktechnologien wie WLAN, Bluetooth oder Mobilfunknetze verbunden und bilden im Zusammenspiel mit dem Internet komplexe mobile Systeme. Auch wenn viele Details der mobilen und drahtlosen Kommunikation durch Betriebssysteme und Bibliotheken vor dem Anwendungsentwickler verborgen bleiben, schützt ein grundlegendes Verständnis der Abläufe in mobilen Kommunikationssystemen angehende Informatikerinnnen und Informatiker vor bösen Überraschungen durch unerwartetes Verhalten. Diese Vorlesung vermittelt ein solches Verständnis, diskutiert grundlegende Probleme, die mobile Systeme heute und in Zukunft lösen müssen, und stellt entsprechende Lösungsansätze vor. Als Anwendungsbeispiele dienen aktuelle Forschungsthemen im Bereich mobiler vernetzter Systeme, wie z.B. mobile Ad-hoc-Netze, verzögerungstolerante Netze und zuverlässige Datenübertragung. Am Ende der Vorlesung sind die Studierenden in der Lage, die Anwendbarkeit der gelernten Lösungsansätze auf neue Problemstellungen in mobilen Systemen zu analysieren und komplexe Lösungen zu synthetisieren und zu bewerten, um auf die Tätigkeit als Informatikerin bzw. Informatiker in einer vernetzten Welt vorbereitet zu sein.
Weitere Literaturhinweise werden in der Vorlesung gegeben.
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.
Nach Maßgabe der Arbeitsgruppe.
Vorbereitung des Seminarvortrages, Anfertigung einer schriftlichen Ausarbeitung zum Vortragsthema. Prüfungsleistung ist ein 20minütiger Seminarvortrag.
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, stellen die erforderlichen Ressourcen zusammen und bearbeiten das Problem an Hand eines Zeitplans. Danach sind sie in der Lage, die Ergebnisse ihrer Arbeit zu präsentieren.