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.
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
Objekt-orientierte Sprachen
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.
Die Studierenden sollen über die theoretischen und methodischen Grundlagen der Wissenschaft Informatik und die ethische Tragweite ihres Berufsfelds Informatik reflektiert nachdenken und daraus Orientierung für ihre wissenschaftliche und alltäglich-berufliche Praxis gewinnen. Sie lernen unterschiedliche Konzepte und Methoden der Wissenschaft und deren Ziele kennen und anwenden und setzen sich mit ethischen Fragen der Informatik auseinander. Aus dieser Reflektion heraus entwickeln sie Maßstäbe für ihr Urteilen und verantwortliches Handeln als angehende Informatiker.
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.
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.
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.
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.
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.
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.
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 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
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 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
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.
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. 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.
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 Master Thesis ist die Abschlussarbeit des Informatikstudiums. Sie stellt den Nachweis der erworbenen Fähigkeiten dar, indem ein wissenschaftliches oder anwendungsnahes Thema weitgehend selbständig bearbeitet wird. Dies geschieht im Regelfall in Zusammenarbeit mit einem Industrieunternehmen oder einer Forschungsinstitution. Die Master Thesis reicht fachlich sowohl tiefer als auch umfassender als im grundlegenden Bachelor-Studium in das bearbeitete Gebiet hinein.
Die Studierenden strukturieren sorgfältig die Aufgabenstellung, stellen die erforderlichen Ressourcen zusammen und bearbeiten das Problem an Hand eines Zeitplans. Sie präsentieren zudem die wichtigsten Ergebnisse ihrer Arbeit in einem abschließenden Kolloquium. Den didaktisch sinnvoll aufbereiteten Vortrag verfolgt ein Fachpublikum.
Am Ende liegt eine umfassende Bearbeitung der gestellten Aufgabe inklusive einer abstrahierenden Zusammenfassung vor. Die Master Thesis genügt einem entsprechenden wissenschaftlichen Anspruch.
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.
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 beantworten dazu 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.