Wahlpflichtbereich Vertiefung

Bereich Praktische Informatik

Die folgende Lehrveranstaltungen werden wechselnd angeboten. Der aktuelle Angebotskatalog wird nebenstehend veröffentlicht.

Benutzerzentrierte Softwareentwicklung

(unregelmäßig, im Wintersemester)

Mit der Lehrveranstaltung soll verdeutlicht werden, dass  "traditionelle" Vorgehensweisen in der Softwaretechnik, die sich bei der Systementwicklung hauptsächlich auf die Funktionalität konzentrieren, Ideen einer benutzerzentrierten Entwicklung integrieren müssen. Die Teilnehmer werden mit dem benutzerzentrierten Entwicklungsansatz vertraut gemacht. Sie verstehen, dass ein Softwaresystem die Nutzer bei der Erfüllung ihrer Aufgaben in ihrem konkreten Arbeitsumfeld unterstützen muss und dass die Benutzungsschnittstelle (User Interface) anwendungsfreundlich gestaltet sein muss. Die Teilnehmer sollen in die Lage versetzt werden, Methoden und Techniken, die den Nutzer stärker in den Fokus rücken, praktisch anwenden zu können. Die Grundkenntnisse in Softwaretechnik werden um Grundlagen aus den Gebieten Human-Computer Interaction (HCI) und Model-Based Design erweitert.

Webbasierte Anwendungen

(unregelmäßig, im Wintersemester)

Webbasierte Anwendungen sind Anwendungen, die beim Benutzer in einem Webbrowser dargestellt und zu einem mehr oder weniger großen Teil von einem Webserver bereitgestellt werden.  Diese Art der Anwendungen deckt heutzutage ein breites Feld ab, welches von Web Shops über Portale, Administrationsoberflächen und Web Mail bis hin zu vollständigen Desktopanwendungen wie Textverarbeitung oder Tabellenkalkulation reicht.Die Veranstaltung gibt einen Überblick über die historische Entwicklung webbasierter Anwendungen, ihre Grundlagen sowie die verschiedenen Möglichkeiten, diese zu realisieren.  Die erworbenen Kenntnisse werden durch Implementierungsaufgaben und konzeptionelle Aufgaben vertieft.

Data Science

(in der Regel im Wintersemester)

Schwerpunkte des Moduls sind die verschiedenen Phasen von Data Science. Im ersten Teil des Moduls werden verschiedene Klassifizierungen von zu analysierenden Daten behandelt. Vertiefend werden wir uns die Datenbeschreibungssprachen XML und JSON für semistrukturierte Daten anschauen. Danach vermittelt das Modul einen Überblick über die Verarbeitung digitaler Text-Dokumente von ihrer Erstellung bis zur Suche (Information Retrieval, Suchmaschinen). In einem eigenen Kapitel werden wir die Datenvorbereitung behandeln, dazu gehören Datenhomogenisierung und Datenintegration.
Schwerpunkt des Moduls ist die Analyse von Daten, vom Data Warehousing mit OLAP-Anfragen über Data Mining bis hin zu Big Data Analytics und Machine-Learning-Algorithmen. In einem Kapitel über die Nachbereitung analysierter Daten (Rückverfolgbarkeit, Provenance Management) werden auch rechtliche und ethische Randbedingungen der Analyse personenbezogener Daten besprochen.

Modelle und Modellierung

(unregelmäßig, im Wintersemester)

Um Erkenntnisse über die Welt zu bekommen, nutzen Menschen schon seit sehr langer Zeit Modelle, beispielsweise Erklärungsmodelle, aber auch Untersuchungsmodelle und Experimentmodelle. In der Informatik ist der Begriff der Modelle und die Tätigkeit des Modellierens zentral und in fast allen Bereichen zu finden. Wie haben zum Beispiel Datenmodelle, Datenbankmodelle, Sprachmodelle, Modelle für Algorithmen und Modelle des Menschen. In der Vorlesung Modelle und Modellierung werden verschiedene Arten von (informatischen) Modellen betrachtet, der Prozess des Modellierens wird dargestellt und analysiert und Grenzen von Modellen sowie auch Erkenntnisgrenzen werden diskutiert.

Compilerbau

Compilerbau

(in der Regel im Wintersemester)

Es geht um das Übersetzen von höheren Programmiersprachen in Maschinensprachen. Anhand dieses herausfordernden, aber gut verstandenen Problems studieren wir, wie große Software strukturiert werden kann und wie im Zusammenspiel von Theorie und Praxis Höchstleistungen erzielt werden können.

Datenbanken II - Implementierungstechniken

(in der Regel im Sommersemester)

In "Datenbanken II" wird das Administrieren von Datenbanksystemen erlernt, insbesondere die Varianten zur internen Speicherung und Indexierung von Daten, die Optimierung von Datenbankanfragen sowie die fehlerfreie, parallele Abarbeitung von vielen "konkurrierenden" Anfrage-Update-Transaktionen auf der Datenbank. Die in der Vorlesung und Übung erworbenen Kenntnisse ermöglichen es einem, eine für eine Anwendung erstellte Datenbanklösung auf Effizienz zu "tunen". Wir schauen uns also an, wie Transaktionen, Anfragen und Datenspeicherung intern (unter der Nutzungsoberfläche des Systems) funktionieren.

Datenbank-Anwendungsprogrammierung

(unregelmäßig, im Sommersemester)

Diese Veranstaltung ist für Studenten interessant, die später Anwendungsprogramme für Datenbanksysteme entwickeln wollen. Neben der Vermittlung überblicksartigen Wissens zu allen Formen der Datenbankanwendungsprogrammierung stehen anwendungsreife Kenntnisse der wesentlichen Datenbankschnittstellen für die Programmiersprache Java im Mittelpunkt. Einen entscheidenden Anteil machen praktische Rechnerübungen aus. Neben sogenannten "Call level interfaces" wie JDBC werden Lösungen besprochen, die Datenbanksprachen in Programmiersprachen einbetten (Embedded SQL: statisch, dynamisch, SQLJ) sowie Techniken wie "Stored Procedures" und "User-defined functions" aus neueren SQL-Standards erläutert. Auch aktuelle Ansätze wie Objekt-Relationen-Mapper (Hibernate), die "Java Persistence Architecture" (JPA) oder die für "Big-Data"-Anwendungen wichtigen Map-Reduce-Techniken finden Berücksichtigung. Vorausgesetzte Kenntnisse sind "Datenbanken I" und Java-Grundkenntnisse.

Architektur und Entwicklung von Kommunikationsdiensten

(unregelmäßig,im Sommersemester)

Welche Fragen sind bei der Entwicklung eines Kommunikationsdienstes zu lösen? Welche Schwierigkeiten treten bei mobilen Anwendungen auf? Und wie baut man eigentlich ortsbasierte Dienste? Was ist eine Cloud? Welche APIs können bei der Programmierung von Webtechnologien eingesetzt werden? Und wie gewährleistet man Sicherheit und hohe Leistungsfähigkeit?