Modulhandbuch für den Studiengang Master of Science in Praktischer Informatik Stand: 1. Dezember 2015 Im Modulhandbuch werden nur Module aufgeführt, deren Kurse angeboten werden. Über Module im Wahlpflichtbereich, deren Kurse aktuell nicht oder nicht mehr angeboten werden, die aber bereits belegt wurden, können u. U. noch Prüfungen abgelegt werden. Bitte beachten Sie die Angaben und ggf. Prüfungsgrenzen in den Prüfungsinformationen Nr. 1. Master of Science in Praktischer Informatik 01.12.2015 Katalog B, Bereich B1 Grundlagen der Informatik Einführung in die Computergrafik mit dem Kurs 01277 Einführung in Computergrafik Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Einüben des Stoffes (insbesondere durch Einsendeaufgaben; 7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Studientag und Selbststudium): 55 Stunden Inhalt: Der Kurs gibt eine mathematisch fundierte Einführung in die Grundlagen der Computergrafik. Er behandelt die folgenden Themen: Aufgaben der grafischen Datenverarbeitung, Komponenten rasterorientierter Grafiksysteme, Rasteralgorithmen zur Darstellung von Strecken und Polygonen; mathematische Grundlagen zur Darstellung dreidimensionaler Objekte (affine und perspektivische Abbildungen); Darstellung dreidimensionaler Kurven und Flächen unter besonderer Berücksichtigung von Splines; Verfahren zur Bestimmung der Sichtbarkeit von Objekten auf dem Bildschirm (Klippen, punkt-, linien-, flächenorientierte Visibilitätsverfahren); Grafik- Bibliotheken, insbesondere Java3D und OpenGL; Körpermodelle; lokale Beleuchtungsmodelle und -algorithmen; globale Beleuchtungsmodelle (Raytracing und Radiosity-Verfahren). Der Kurs liegt elektronisch mit einer Vielzahl eingebundener interaktiver Applets vor. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme des Moduls sind die Studierenden in der Lage, die Grundlagen der Computergrafik zu benennen und zu beschreiben. Sie können die mathematischen Objekte wie geometrische Abbildungen, Kurven, Flächen und deren Algorithmen erklären und interpretieren. Sie können die grundlegenden Konzepte grafischer Datenstrukturen und Algorithmen beurteilen und analysieren sowie die Grafikbibliotheken Java3D und OpenGL anwenden. Nach erfolgreicher Teilnahme können die Teilnehmer die Beleuchtungsmodelle und Verfahren zur Berechnung realitätsnaher Bilder erläutern und deren Rechenaufwand bewerten. Literatur: Encarnação, Straßer, Klein: Graphische Datenverarbeitung I+II, Oldenbourg, 1996, ISBN 3-486-23223-1 Foley, vanDam, Feiner, Hughes: Computer Graphics - Principles and Practice Addison Wesley, 1995, ISBN 0- 201-84840-6. Inhaltliche Voraussetzungen: Voraussetzung für den Kurs sind mathematische Grundlagen. Programmierkenntnisse in objektorientierter Programmierung sind hilfreich. Anmerkung: Master of Science in Praktischer Informatik 01.12.2015 keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Modulverantwortliche/r: Michael Felten Lehrende: Michael Felten Master of Science in Praktischer Informatik 01.12.2015 Katalog B, Bereich B2 Computersysteme Anwendungsorientierte Mikroprozessoren mit dem Kurs 01706 Anwendungsorientierte Mikroprozessoren Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Einüben des Stoffes, insbesondere durch Einsendeaufgaben (7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Selbststudium): 55 Stunden Inhalt: Der Kurs beschäftigt sich mit der Architektur und der Funktionsweise von anwendungsorientierten Mikroprozessoren. Das sind zum einen die Mikrocontroller, die im Prinzip vollständige Rechner in einem einzigen Baustein darstellen, zum anderen die auf die digitale Verarbeitung analoger Signale spezialisierten Digitalen Signalprozessoren. Im Mittelpunkt des Kurses stehen technisches Grundlagenwissen und praktischer Einsatz. Es wird gezeigt, aus welchen Komponenten diese Mikroprozessoren aufgebaut sind und wie diese zusammenwirken. Dabei wird insbesondere hervorgehoben, wie sie an ihre spezifischen Anwendungen angepasst sind. Als Grundlage für die Programmierung der Prozessoren wird ihre Schnittstelle zwischen der Hardware und Software ausführlich behandelt. Für beide Prozessortypen werden Produktbeispiele präsentiert und es wird auf aktuelle Entwicklungstrends eingegangen. Ein weiterer Schwerpunkt wird auf die Beschreibung der Komponenten gelegt, die einen Mikroprozessor zu einem Mikrorechner erweitern, also insbesondere die verschiedenen Speicherbausteine, Bussysteme sowie Schnittstellen- und Systemsteuerbausteine. Lernergebnisse / Kompetenzen: Nach dem Bearbeiten des Kurses verstehen die Studierenden den komplexen Aufbau anwendungsorientierter Mikroprozessoren und das Zusammenwirken ihrer Komponenten. Außerdem wissen sie, wie ein einfacher Mikroprozessor in seine analoge oder digitale "Umwelt" eingebettet ist und mit ihr kommuniziert. Dadurch werden Ausbildungslücken geschlossen, die in vielen Kursen über Mikroprozessortechnik bleiben, die sich hauptsächlich mit den "High-End"Prozessoren und ihren komplexen Komponenten beschäftigen. Nach dem Bearbeiten des Kurses sind die Studierenden in der Lage, den Einsatz z.T. sehr einfacher Mikroprozessoren in den Hunderten von technischen Geräten (Fernbedienungen, Handys, Haushaltsgeräte usw.) zu verstehen und zu würdigen, die ihnen täglich das Leben erleichtern. Literatur: H. Bähring: Mikrorechner-Technik, 2 Bände, Springer Verlag, 2002, ISBN: 3-54041648 X, 3-540-43693-6 W. Schiffmann: Technische Informatik 2, Springer Verlag, 2002, ISBN: 3-540-438548 U. Brinkschulte, T. Ungerer: Mikrocontroller und Mikroprozessoren, Springer Master of Science in Praktischer Informatik 01.12.2015 Verlag, 2007, ISBN: 978-3- 540-46801-1 H. Bähring: Anwendungsorientierte Mikroprozessoren, Springer Verlag, 2010, ISBN: 978-3-642-12291-0 Inhaltliche Voraussetzungen: Grundkenntnisse in Digitaltechnik und elektrotechnischen Grundlagen Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Helmut Bähring Lehrende: Helmut Bähring Master of Science in Praktischer Informatik 01.12.2015 Parallel Programming mit dem Kurs 01727 Parallele Programmierung und Grid-Computing Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 150 Stunden, Bearbeiten der Einsendearbeiten 75 Stunden, Studientage und Prüfungsvorbereitung 75 Stunden Inhalt: Mit dem Aufkommen von Multicore-Prozessoren in Desktop-PCs verlässt die parallele Programmierung die Nischenecke der Großrechner und wird für eine Vielzahl von Anwendungen interessant. Gleichzeitig werden traditionelle Arbeitsfelder von Parallelrechnern zunehmend durch das Grid-Computing erobert. Der Kurs enthält Beiträge zu folgenden Themengebieten: Grundlagen und Modelle der parallelen Programmierung, Parallele Programmiertechniken wie Shared Memory Programmierung mit POSIX Threads, Message Passing Interface (MPI) und OpenMP, parallele Matrizenrechnung, parallele Graphalgorithmen, Einführung in das Cluster- und Grid-Computing, Einführung in die Middleware Condor, Scheduling von Metatasks, Fallstudien realer Grid-Systeme und grundlegende Scheduling-Techniken für Workflows in Grids sowie eine kurze Einführung in Virtuelle Maschinen und Cloud-Computing. Für die Übungen werden verschiedene parallele Computersysteme bereitgestellt und die Studierenden müssen selbst parallele Software erstellen. Lernergebnisse / Kompetenzen: Nachdem die Studierenden das Modul bearbeitet haben, können sie bei der Lösung komplexer Problemstellungen parallelisierbare Komponenten identifizieren, auf homogene oder heterogene Prozessorarchitekturen verteilen, Softwareimplementierungen für diese Rechnerarchitekturen konstruieren, Testfälle generieren und damit die parallele Implementierung evaluieren, Fehler in einer Implementierung identifizieren und beheben, Optimierungsmöglichkeiten gegenüberstellen und beurteilen, die Implementierung rekonstruieren und somit möglichst gut angepasste parallele Softwareimplementierungen für die einzelnen Problemstellungen hervorbringen. Literatur: Barry Wilkinson, Michael Allen: Parallel Programming, Second Edition, Pearson Education International, 2005, ISBN 0-13-191865-6 Ananth Gramma, Anshul Gupta, George Karypis, Vipin Kumar: Introduction to Parallel Computing, Second Edition, Addison Wesley, 2003, ISBN 0-201-64865-2 Bart Jacob et al.: Introduction to Grid Computing, IBM Redbook, http://ibm.com/redbooks Barry Wilkinson: Grid Computing, Chapman & Hall, 2009 Inhaltliche Voraussetzungen: Kenntnisse aus den Kursen Computersysteme, Einführung in die imperative Programmierung, Datenstrukturen I, Betriebssysteme und Rechnernetze sowie Datenbanken I Anmerkung: keine Master of Science in Praktischer Informatik 01.12.2015 Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: finden Sie im Kursanschreiben Modulverantwortliche/r: Wolfram Schiffmann Lehrende: Jörg Keller, Wolfram Schiffmann Master of Science in Praktischer Informatik 01.12.2015 Verteilte Systeme mit dem Kurs 01678 Verteilte Systeme Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Bearbeitung der Einsendeaufgaben inkl. Verarbeitung des Korrektur-Feedbacks (7 mal 10 Stunden): 70 Stunden Mitwirkung an den Diskussionen in der Kurs-Newsgroup: 20 Stunden Wiederholung und Prüfungsvorbereitung: 70 Stunden Inhalt: Das Modul behandelt die Funktionsweise und Designprinzipien von verteilten Systemen, die zum Verständnis heutiger Anwendungssysteme im Internet unentbehrlich sind. Ein verteiltes System besteht aus mehreren Komponenten, die auf vernetzten Rechnern installiert sind und ihre Aktionen durch den Austausch von Nachrichten über Kommunikationskanäle koordinieren. Im Vergleich zu autonomen Rechensystemen treten bei verteilten Systemen ganz neue Probleme auf: Daten, welche auf unterschiedlichen Rechensystemen auch unterschiedlich dargestellt werden, sollen ausgetauscht werden, Prozesse müssen synchronisiert werden, verteilte persistente Datenbestände sollen konsistent gehalten werden. Schwerpunktmäßig behandelt werden die Grundlagen verteilter Systeme, Prozesse und Kommunikation, Namen und Synchronisierung, Konsistenz und Replikation, Fehlertoleranz, Sicherheit und verteilte Dateisysteme. Lernergebnisse / Kompetenzen: Die Teilnehmer entwickeln ein grundlegendes Verständnis für Design und Implementierung von verteilten Systemen auf der Basis moderner Betriebssysteme und Rechnernetze. Sie können gängige Probleme bei verteilten Systemen mittels Designprinzipien lösen und die Einsatzmöglichkeiten und Realisierungsmöglichkeiten verteilter Anwendungen beurteilen. Durch die Teilnahme an der Kurs-Newsgroup wird das Einüben wissenschaftlicher Kommunikation gefördert. Literatur: Basistext ist das Buch: Andrew S. Tanenbaum, Maarten van Stehen, Verteilte Systeme: Prinzipien und Paradigmen. Zweite Auflage, Pearson Studium, 2007, ISBN 3-8273-7293-3 oder als englische Version Andrew S. Tanenbaum, Maarten van Stehen: Distributed Systems: Principles and Paradigms. Second Edition, Prentice Hall, 2006, ISBN 0-13-239227-5 oder als Paperback, 2008, ISBN 0-13-613553-6 Inhaltliche Voraussetzungen: Inhalte des Moduls Einführung in die imperative Programmierung und Datenstrukturen und des Kurses 01801 Betriebssysteme und Rechnernetze aus dem Modul Softwaresysteme des Bachelor Informatik sowie Erfahrungen im Umgang mit einem verbreiteten Betriebssystem wie Unix, MacOSX oder Windows. Wenn Ihnen Grundkenntnisse über Betriebssysteme oder Rechnernetze fehlen, so sollte es für Sie möglich sein, ergänzend zur Bearbeitung des Kurses die Ihnen Master of Science in Praktischer Informatik 01.12.2015 unbekannten Sachverhalte in einschlägigen Fachbüchern nachlesen. Eine gewisse Erfahrung im Programmieren mit einer Programmiersprache wie Java oder C sollten Sie auch mitbringen, um einige Beispiele zu verstehen. Anmerkung: Der Basistext muss vor Semesterbeginn beschafft werden. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Modulverantwortliche/r: Jörg M. Haake Lehrende: Jörg M. Haake Master of Science in Praktischer Informatik 01.12.2015 Sicherheit im Internet mit den beiden Kursen 01866 Sicherheit im Internet I Durchführung: in jedem Sommersemester, in der zweiten Hälfte des Semesters 01868 SWS: 2+1 Sicherheit im Internet I - Ergänzungen Durchführung: in jedem Wintersemester, in der ersten Hälfte des Semesters Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: zwei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Kurseinheiten 150 Stunden Einsendearbeiten 75 Stunden Prüfungsvorbereitung 75 Stunden Inhalt: Das Modul behandelt zunächst die grundlegenden Konzepte des Themas ITSicherheit. Vertraulichkeit, Integrität, Authentizität und Verfügbarkeit werden als allgemeine Schutzziele vorgestellt. Konkrete Bedrohungen wie Viren und Würmer und mögliche Probleme beim Surfen im Netz werden vorgestellt. Danach werden symmetrische und asymmetrische Verschlüsselungsverfahren sowie HashFunktionen, digitale Unterschriften und die Grundlagen von Zertifikaten behandelt. Es wird vorgestellt, wie man sicher durch das Internet surfen kann, wie man sicher per Email kommuniziert, und wie man sicher an entfernten Rechnern arbeiten kann. Anschließend wird vorgestellt, was man zum Schutz seines privaten Rechners tun kann und soll, und worauf man bei der Konfiguration von Web-Servern achten muss. Daneben wird in diesem Teil auch auf Firewalls, ihre Aufgaben, ihre Architektur, ihre Konfiguration und ihr Betrieb eingegangen. Den Abschluss bildet ein Abschnitt mit organisatorischen Hinweisen zum Thema Sicherheit. Schließlich werden die Themen Anonymität im Internet, aktive Inhalte, Computer-Forensik, Zugriffskontrollen, Benutzerauthentisierung und Kommunikationssicherheit in Wireless LANs und in Mobiltelefonnetzen behandelt. Lernergebnisse / Kompetenzen: Nach erfolgreicher Bearbeitung können Studierende ihre fundierten Kenntnisse von Sicherheitsmaßnahmen und -mechanismen erläutern. Sie können Wissen aus den Bereichen Mathematik, Rechnernetze und IT Sicherheit kombinieren und mit der entstehenden Komplexität umgehen. Sie kennen die Grundlagen der wichtigsten Techniken im Bereich IT-Sicherheit und können diese darlegen, selbständig erweitern und vertiefen. Die Studierenden können unvollständig definierte Probleme aus dem Bereich IT-Sicherheit lösen und die Lösungen auch technisch umsetzen. Die Studierenden erwerben in den Übungen die Fähigkeit zu eigenverantwortlicher Tätigkeit (Einarbeitung, Analyse, Entwurf und Umsetzung). Literatur: C. Eckert: IT-Sicherheit. 9. Auflage. Oldenbourg 2014 R. Oppliger: Security Technologies for the World Wide Web 2nd Edition, Artech House 2003 B. Schneier: Applied Cryptography 2nd Edition, Wiley 1996 Inhaltliche Voraussetzungen: Kurs 01801 Betriebssysteme und Rechnernetze aus Modul Softwaresysteme des BSc Informatik bzw. Modul Einführung in die technischen und theoretischen Master of Science in Praktischer Informatik 01.12.2015 Grundlagen der Informatik des BSc Wirtschaftsinformatik Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene gemeinsame Kursabschlussklausur über beide Kurse Voraussetzung Anmeldung LN: Modulverantwortliche/r: Jörg Keller Lehrende: Jörg Keller Master of Science in Praktischer Informatik 01.12.2015 Katalog B, Bereich B3 Informationssysteme und Künstliche Intelligenz Vertiefende Konzepte von Datenbanksystemen mit den beiden Kursen 01664 Implementierungskonzepte für Datenbanksysteme Durchführung: in jedem Wintersemester, verteilt über das gesamte Semester 01672 SWS: 2+1 Datenbanken II Durchführung: in jedem Sommersemester, in der zweiten Hälfte des Semesters Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: zwei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Kurseinheiten: 160 Stunden Bearbeitung der Einsendeaufgaben inkl. Verarbeitung des Korrektur: 80 Stunden Wiederholung und Prüfungsvorbereitung, Prüfung: 60 Stunden Kurs 01664 führt zu Beginn eine relativ detaillierte Software-Architektur ein. Die folgenden Kapitel stellen Implementierungsaspekte anhand dieser Schichten dar. Dazu gehören Externspeicher- und Systempufferverwaltung, Indexstrukturen, externes Sortieren und Anfrageverarbeitung. Bei den Indexstrukturen werden neben klassischen B-Baum- und dynamischen Hashverfahren auch Strukturen für die Verwaltung von Geodaten, wie etwa Grid-Files oder R-Bäume behandelt. Zur Anfrageverarbeitung gehört vor allem die Optimierung, d.h. die Ermittlung eines kostengünstigen Plans für die gegebene SQL-Anfrage, auf der Basis von Kostenschätzungen für Planoperationen. Kurs 01672 führt die Studierenden in die wichtigsten Konzepte ein, auf deren Grundlage die Dienste moderner Datenbanksysteme realisiert werden. Ein zentrales Thema ist dabei der Mehrbenutzerbetrieb (Transaktionsmanagement), da in vielen Anwendungen eine große Zahl von Benutzern gleichzeitig auf die Datenbank zugreift. In engem Zusammenhang damit stehen dann Fragen wie Ausfallsicherheit und Wiederherstellung nach Fehlern von Soft- und Hardware (Recovery). Schließlich wird ein Überblick gegeben über neuere Anwendungen und Tendenzen auf dem Gebiet der Datenbanksysteme. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme besitzen Studierende einen guten Überblick wie auch Detailkenntnisse der Architektur und Implementierung von Datenbanksystemen. Sie können die Schichtenarchitektur beschreiben und alle wesentlichen Komponenten der Implementierung benennen. Sie können verschiedene Indexstrukturen für Standard- und Geodaten im Detail erklären. Sie können die Schritte der Verarbeitung einer SQL-Anfrage in der Optimierung und Planerzeugung beschreiben. Sie können erklären, wann verzahnte Abläufe von Transaktionen als korrekt anzusehen sind und wie der Transaktionsmanager des Datenbanksystems sicherstellt, dass nur solche Abläufe zugelassen werden. Sie können erklären, wie nach Systemabstürzen der korrekte Zustand der Datenbank wiederhergestellt wird. Sie sind damit in der Lage, im Beruf etwa als Datenbankadministrator Master of Science in Praktischer Informatik 01.12.2015 Effizienzproblemen auf den Grund zu gehen. Literatur: A. Kemper und A. Eickler: Datenbanksysteme: Eine Einführung. 8. Auflage, Oldenbourg-Verlag, 2011. H. Garcia-Molina, J.D. Ullman, and J. Widom: Database Systems: The Complete Book. 2. Auflage, Prentice-Hall, 2008. M. Schneider: Implementierungskonzepte für Datenbanksysteme. Springer-Verlag, 2003. C.J. Date: An Introduction to Database Systems. Pearson Addison Wesley, 2004. R. Elmasri, S. Navathe: Grundlagen von Datenbanksystemen: Bachelorausgabe, Pearson Verlag, 2009. Inhaltliche Voraussetzungen: Kenntnisse der Konzepte von Standard-Datenbanksystemen, z.B. aus Kurs 01671 Datenbanken I im Modul Softwaresysteme des Bachelor Informatik Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur oder Klausurersatzgespräch bestanden Voraussetzung Anmeldung LN: Modulverantwortliche/r: Ralf Hartmut Güting Lehrende: Ralf Hartmut Güting, Wolfgang Wilkes Master of Science in Praktischer Informatik 01.12.2015 Wissensbasierte Systeme mit dem Kurs 01696 Wissensbasierte Systeme Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Kurseinheiten 130 - 150 Stunden, bearbeiten der Übungsaufgaben 60 - 75 Stunden, Studientage und Prüfungsvorbereitung 60 - 75 Stunden Wissensbasierte Systeme unterscheiden sich von herkömmlichen Softwaresystemen dadurch, dass in ihnen bereichsspezifisches Wissen in einer mehr oder weniger direkten Form repräsentiert ist und zur Anwendung kommt. Typische Beispiele für wissensbasierte Systeme sind Expertensysteme, die das Fachwissen und die Schlussfolgerungsfähigkeit von Experten nachbilden. Für wissensbasierte Systeme werden daher komplexe Instrumente zur maschinellen Repräsentation, Verarbeitung und Nutzung von Wissen benötigt. Für die vielfältigen Anwendungsmöglichkeiten steht ein reichhaltiges Repertoire an Methoden der Wissensrepräsentation und der Inferenz zur Verfügung. Der Kurs soll grundlegende Kenntnisse der wichtigsten Formalismen und Techniken vermitteln, darüber hinaus aber auch ein Verständnis für deren sinnvollen Einsatz in realen Systemen. So veranschaulicht eine Vielzahl praktischer Beispiele Möglichkeiten und Grenzen wissensbasierter Systeme. Die Themenbereiche des Kurses sind im einzelnen: Aufbau und Arbeitsweise wissensbasierter Systeme, logikbasierte Wissensrepräsentation und Inferenz, regelbasierte Systeme, maschinelles Lernen, Data Mining und Wissensfindung in Daten, fallbasiertes Schließen, Problemstellungen bei der Verwendung nichtmonotonen Schließens und quantitativer Methoden. Lernergebnisse / Kompetenzen: Die Studierenden können grundlegende Kenntnisse der wichtigsten Formalismen und Techniken der Wissensrepräsentation und Inferenz sowie Verständnis für deren sinnvollen Einsatz in realen Systemen demonstrieren. Sie können zentrale Verfahren wissensbasierter Syteme auf entsprechende Problemstellungen anwenden. Dazu zählen Repräsentation von einfachen Sachverhalten mit formaler Logik, Inferenzen in regelbasierten Systemen, Lernen von Entscheidungsbäumen und von Konzepten, Datamining mit dem Apriori-Verfahren. Literatur: C. Beierle, G. Kern-Isberner. Methoden wissensbasierter Systeme - Grundlagen, Algorithmen, Anwendungen. Vieweg+Teubner Verlag, 4., verbesserte Auflage, 2008. S. Russell, P. Norvig, Künstliche Intelligenz: ein moderner Ansatz, Pearson Studium, 2004 Inhaltliche Voraussetzungen: Die Module des Pflichtbereichs eines Bachelor-Studiengangs sollten im wesentlichen abgeschlossen sein. Anmerkung: Master of Science in Praktischer Informatik 01.12.2015 keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: wird im Kursanschreiben angegeben Modulverantwortliche/r: Christoph Beierle Lehrende: Christoph Beierle Master of Science in Praktischer Informatik 01.12.2015 Betriebliche Informationssysteme mit dem Kurs 01770 Betriebliche Informationssysteme Durchführung: in jedem Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Kurseinheiten 140 Stunden, bearbeiten der Übungsaufgaben 70 Stunden, Wiederholung des Stoffs, Studientage und Prüfungsvorbereitung 90 Stunden. Dieser Kurs stellt Grundlagen, Konzepte und Techniken des Gebiets "Betriebliche Informationssysteme" bereit und behandelt die Themen Integrierte Informationsverarbeitung, Architekturen betrieblicher Informationssysteme, Konstruktion betrieblicher Informationssysteme, Anwendungssysteme, Funktionen und Prozesse im Produktions- und Vertriebssektor. Außerdem werden an ausgewählten Beispielen für betriebliche Informationssysteme die genannten Themen exemplarisch vertieft. Betriebliche Anwendungssoftware hat sich in den letzten Jahren von monolithischen Systemen hin zu komponentenbasierten, dienstorientierten Softwaresystemen entwickelt. Moderne unternehmensweite Software besteht aus Komponenten zur Lösung betrieblicher Problemstellungen und aus Komponenten, die unabhängig von den betrieblichen Aufgaben sind und zum Beispiel Vermittlungsfunktionalität, Datenhaltung, Ablauflogik sowie das Betriebssystem zur Verfügung stellen. Es wird gezeigt, wie moderne Technologien wie Middleware, XML und Webservices für die Implementierung von betrieblichen Informationssystemen verwendet werden. Lernergebnisse / Kompetenzen: Die Studierenden kennen ein Gesamtkonzept der integrierten betrieblichen Informationsverarbeitung. Die Studierenden werden mit dem Architekturbegriff für betriebliche Informationssysteme vertraut gemacht und kennen ausgewählte Architekturkonzepte. Die Studierenden werden mit der Konstruktion betrieblicher Informationssysteme vertraut gemacht. Die Studierenden werden in die Lage versetzt, eigenständig Auswahlentscheidungen für betriebswirtschaftliche Standardsoftware treffen zu können. Die Studierenden werden mit grundlegenden Funktionen und Prozessen im Produktionssektor und im Vertrieb eines Industriebetriebs vertraut gemacht. Weiterhin werden den Studierenden Kenntnisse über die Architektur und die Funktionsweise ausgewählter Informationssysteme für den Produktions- und Vertriebssektor vermittelt. Literatur: Mertens, P.: Integrierte Informationsverarbeitung 1, Operative Systeme in der Industrie, 15. Auflage, Gabler, Wiesbaden 2005. Mertens, P., Griese, J.: Integrierte Informationsverarbeitung 2, Planungs- und Kontrollsysteme in der Industrie, 9. Auflage, Gabler, Wiesbaden, 2002. Inhaltliche Voraussetzungen: Einführung in die objektorientierte Programmierung und Datenbanken I Grundkenntnisse in BWL, insbesondere über die Funktionsweise eines Master of Science in Praktischer Informatik 01.12.2015 Unternehmens, sind für das Verständnis des Stoffes nützlich. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: mind. 50 Prozent der möglichen Punkte bei den Einsendeaufgaben der Kurseinheiten 2 und 3 Modulverantwortliche/r: Lars Mönch Lehrende: Lars Mönch Master of Science in Praktischer Informatik 01.12.2015 Katalog B, Bereich B4 Software Engineering und Programmiersprachen Software Engineering I mit dem Kurs 01793 Software Engineering I Durchführung: in jedem Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Kurseinheiten (7mal 20 Stunden): 140 Stunden Einüben des Stoffes, insbesondere durch Einsendeaufgaben (7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Studientag und Selbststudium): 55 Stunden Gegenstand des Moduls ist die methodische Entwicklung objektorientierter Softwaresysteme. Der Kurs beginnt mit einem knappen Überblick über das Gebiet Software Engineering und konzentriert sich danach auf "Informatikaspekte" der objektorientierten Softwareentwicklung. Aus Software Engineering-Sicht besteht ein wichtiger Vorteil der Objektorientierung darin, dass ihre Konzepte eine große Durchgängigkeit durch die Entwicklungsabschnitte besitzen. Dies spiegelt sich auch in der Unified Modeling Language (UML) wider, die sich als de-facto-Standard etabliert hat und deren Konstrukte in der Anforderungsermittlung und Realisierung gleichermaßen verwendet werden. Nach dem Überblick werden daher zunächst die für den Kurs relevanten UML-Elemente vorgestellt. Anschließend werden typische Arbeitsschritte der Anforderungsermittlung, der Erstellung der Softwarespezifikation und des Entwurfs besprochen, wobei die UML als Modellierungssprache benutzt wird. Der Kurs ist inspiriert von den Ideen der modellgetriebenen Softwareentwicklung, die die Entwicklung von Softwaresystemen als Folge systematischer Transformationen von Modellen begreift. Lernergebnisse / Kompetenzen: Die Studierenden sind mit den vielschichtigen Problemen der Entwicklung großer (objektorientierter) Softwaresysteme vertraut. Sie kennen die systematische Ermittlung und UML-basierte Modellierung von Anforderungen sowie die schrittweise Verfeinerung bzw. Transformation der Modelle in ein unmittelbar ausprogrammierbares Entwurfsklassenmodell. Sie können die Lerninhalte auf der Ebene von Übungsaufgaben anwenden und mit UML-Editoren umgehen. Literatur: M. Winter: Methodische objektorientierte Softwareentwicklung, dpunkt.verlag 2005 Inhaltliche Voraussetzungen: Vertiefte Kenntnisse in der objektorientierten Programmiersprache Java Anmerkung: keine Master of Science in Praktischer Informatik 01.12.2015 Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Modulverantwortliche/r: Jörg Desel Lehrende: Jörg Desel Master of Science in Praktischer Informatik 01.12.2015 Übersetzerbau mit dem Kurs 01810 Übersetzerbau Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Kurseinheiten: 150 Stunden Bearbeitung der Einsendeaufgaben: 75 Stunden Wiederholung und Prüfungsvorbereitung, Prüfung: 75 Stunden Der Kurs behandelt Techniken und Werkzeuge zur Übersetzung einer (formalen) Quellsprache in eine Zielsprache. Zumindest die Quellsprache ist durch eine geeignete Grammatik definiert. Der klassische Anwendungsfall ist die Übersetzung von einer höheren Programmiersprache in Maschinen- oder Assemblersprache. Übersetzungstechniken haben aber viel weitergehende Anwendbarkeit: Andere Quellsprachen können z.B. Dokumentbeschreibungssprachen sein (LaTeX, HTML), Anfragesprachen in Datenbanksystemen, VLSI-Entwurfssprachen usw. oder auch komplex strukturierte Eingabedateien für Anwendungsprogramme. Es gibt mächtige Werkzeuge (Scanner- und Parsergeneratoren auf der Basis attributierter Grammatiken), deren Kenntnis für jeden Informatiker nützlich ist, auch wenn nur wenige klassische Übersetzer (Compiler) implementieren. Inhalte: Lexikalische Analyse (Scanner), Syntaxanalyse (Parser), Syntaxgesteuerte Übersetzung, Übersetzung einer Dokument-Beschreibungssprache, Übersetzung imperativer Programmiersprachen, Übersetzung funktionaler Programmiersprachen, Codeerzeugung und Optimierung. In den Übungen wird u.a. ein größeres durchgängiges Projekt zum Compilerbau bearbeitet. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme besitzen Studierende einen guten Überblick über die Techniken des Übersetzerbaus. Sie können erklären, mit welchen Schritten höhere Programmiersprachen in Maschinensprache überführt werden. Sie sind in der Lage, eigene kleine Programmiersprachen für spezielle Anwendungen, komplexe Dateiformate oder Protokolle für die Client-Server-Kommunikation zu definieren und dafür mit Hilfe von Werkzeugen wie Lex/Yacc (Flex/Bison) entsprechende lexikalische Analysatoren und Parser zu konstruieren. Sie können Definitionen für wesentliche Begriffe der zugrundeliegenden Theorie angeben, etwa für kontextfreie Grammatiken, reguläre Sprachen/Ausdrücke, endliche Automaten, attributierte Grammatiken. Sie können die Konstruktion und Arbeitsweise von Top-Down- oder Bottom-Up-Parsern im Detail erklären. Literatur: A.V. Aho, M.S. Lam, R. Sethi, J.D. Ullman: Compilers: Principles, Techniques, and Tools. 2. Aufl. Addison-Wesley, 2006. R. Wilhelm, D. Maurer, Übersetzerbau: Theorie, Konstruktion, Generierung. 2. Aufl., Springer-Verlag, 2007. R.H. Güting, M. Erwig: Übersetzerbau: Techniken, Werkzeuge, Anwendungen. Master of Science in Praktischer Informatik 01.12.2015 Springer-Verlag, 1999. Inhaltliche Voraussetzungen: Grundbegriffe der Theorie der formalen Sprachen sind nützlich, werden aber auch in diesem Kurs vermittelt. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Ralf Hartmut Güting Lehrende: Ralf Hartmut Güting Master of Science in Praktischer Informatik 01.12.2015 Katalog B, Bereich B7 Computer und Mensch Einführung in Mensch-Computer-Interaktion mit dem Kurs 01697 Einführung in Mensch-Computer-Interaktion Durchführung: in jedem Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: - Bearbeiten der Kurseinheiten 150 Stunden - Bearbeiten der Selbsttest- und Einsendeaufgaben 75 Stunden - Prüfungsvorbereitung 75 Stunden Inhalt: Der Kurs führt in die grundlegenden Konzepte und Techniken des Gebiets MenschComputer-Interaktion (MCI) ein. Er beginnt mit einer Übersicht über die bisherige Entwicklung dieses Teilgebiets der Informatik sowie einer Klärung und Definition seiner Grundbegriffe. Im Anschluss werden die möglichen technischen Schnittstellen einer Interaktion zwischen Mensch und Computer (haptische, auditive und visuelle) beschrieben und hinsichtlich ihrer charakteristischen Eigenschaften untersucht. Dieser Betrachtung der technischen Seite der MCI folgt eine Einführung in die neurobiologischen Grundlagen der menschlichen Wahrnehmung am Beispiel der visuellen Informationsverarbeitung. Ausgewählte wahrnehmungspsychologische Phänomene werden beschrieben, aus denen sich schließlich grundlegende Prinzipien für die Gestaltung von Interaktion herleiten lassen. Die letzten drei Kurseinheiten wenden sich dem Entwicklungsprozess interaktiver Systeme zu. Dieser beginnt mit der empirischen Datenerhebung zur Anforderungsanalyse, der Verfeinerung der Anforderungen etwa über Prototypen und der textuellen sowie grafischen Formulierung der Konzepte. Anschließend folgt die Implementierung auf Basis von Programmparadigmen, die unter Verwendung grafischer SDKs, wie etwa QT, konkretisiert werden. Die abschließende Kurseinheit befasst sich mit der Evaluation von Funktionalität und Bedienbarkeit von Benutzungsschnittstellen mithilfe statistischer Methoden. Lernergebnisse / Kompetenzen: Durch die Teilnahme an diesem Kurs erhalten die Studierenden einen Überblick über Entwicklungen, Begriffe und Zusammenhänge im Kontext der MenschComputer-Interaktion. Darüber hinaus sind sie mit den Grundlagen der menschlichen Wahrnehmung vertraut. Die Studierenden können die wesentlichen Entwicklungen und Zusammenhänge im Umfeld der Mensch-Computer-Interaktion darstellen und in Bezug zueinander setzen. Sie besitzen das Wissen, wie man die Eigenschaften der menschlichen Wahrnehmung gezielt bei der Gestaltung interaktiver Systeme berücksichtigen kann und sie kennen verschiedene Methoden und Verfahren, die es erlauben, die Entwicklung und Evaluation interaktiver Systeme durchzuführen und in den regulären Softwareentwicklungsprozess zu integrieren. Literatur: Alan Dix, Janet Finlay, Gregory D. Abowd, Russell Beale, "Human-Computer Interaction", 3rd Edition, Pearson Education Limited, 2004. Helen Sharp, Yvonne Rogers, Jenny Preece, "Interaction design - beyond human Master of Science in Praktischer Informatik 01.12.2015 computer interaction", 2nd Edition, Wiley, 2007. E. Bruce Goldstein, "Wahrnehmungspsychologie - Der Grundkurs", Deutsche Ausgabe herausgegeben von Hans Irtel, 7. Auflage, Spektrum Akademischer Verlag, 2008. William Lidwell, Kritina Holden, Jill Butler, "Universal Principles of Design", Rockport Publishers, 2nd Edition, 2010. Karl Bosch, "Basiswissen Statistik: Einführung in die Grundlagen der Statistik mit zahlreichen Beispielen und Übungsaufgaben mit Lösungen", Oldenbourg, 2007. Inhaltliche Voraussetzungen: Mathematik-Kenntnisse, die durch die Erlangung der allgemeinen Hochschulreife erworben wurden Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Für die Klausurzulassung ist eine erfolgreiche Bearbeitung der Einsendeaufgaben Voraussetzung. Die genauen Bedingungen werden im Kursbegleitschreiben veröffentlicht. Modulverantwortliche/r: Gabriele Peters Lehrende: Gabriele Peters Master of Science in Praktischer Informatik 01.12.2015 Interaktive Systeme mit den beiden Kursen 01698 Interaktive Systeme I: Konzepte und Methoden des Computersehens Durchführung: in jedem Semester, verteilt über das gesamte Semester 01699 SWS: 2+1 Interaktive Systeme II: Konzepte und Methoden bildbasierter 3DRekonstruktion Durchführung: in jedem Semester, verteilt über das gesamte Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein oder zwei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: - Bearbeiten der Kurseinheiten 150 Stunden - Bearbeiten der Selbsttest- und Einsendeaufgaben 75 Stunden - Prüfungsvorbereitung 75 Stunden Inhalt: Der Kurs 01698 führt zunächst in Konzepte und Methoden der allgemeinen Signalverarbeitung und -interpretation ein. Darauf aufbauend werden wesentliche Konzepte und Methoden des Computersehens und weiterführender Signalverarbeitungskonzepte vermittelt. Es werden u.a. die Eigenschaften linearer Systeme, die Fouriertransformation, Methoden des Computersehens, sowie Clusteringverfahren und modellbasierte Methoden der Signalinterpretation im Detail behandelt. Der Kurs 01699 behandelt Konzepte und Methoden, mit deren Hilfe sich eine dreidimensionale, visuelle Darstellung eines realen Objektes aus einer Reihe von zweidimensionalen Bildern errechnen lässt. Hierzu erfolgt zunächst eine Einführung in die mathematischen Grundlagen wie etwa die projektive Geometrie. Anschließend werden Methoden vorgestellt, die es ermöglichen eine 3DPunktwolke aus einer Reihe von 2D-Bildern zu errechnen und anschließend zu triangulieren. Lernergebnisse / Kompetenzen: In beiden Kursen erlangen die Studierenden sowohl ein theoretisches Verständnis der mathematischen Grundlagen als auch ein anwendungsorientiertes Verständnis über die vorgestellten Konzepte und Methoden. Die Studierenden besitzen ein solides Wissen über digitale Signalverarbeitungsmethoden, z.B. die Fouriertransformation und die derzeit wichtigsten Verfahren der Bildverarbeitung. Darüber hinaus kennen die Studierenden weiterführende Datenverarbeitungsmethoden wie z.B. Clusteringverfahren oder die Verwendung probabilistischer Modelle. Desweiteren besitzen die Studierenden Kenntnisse über Methoden der dreidimensionalen Bildrekonstruktion sowie Verfahren der linearen und nicht-linearen Optimierung. Literatur: Steven Smith, "Digital Signal Processing: A Practical Guide for Engineers and Scientists", Book and CD ROM, Newnes, 2002. ISBN 075067444X Richard Szeliski, "Computer Vision: Algorithms and Applications (Texts in Computer Science)", 1st Edition, Springer, 2010. ISBN 1848829345 Richard Hartley, Andrew Zisserman, "Multiple View Geometry in Computer Vision",2nd Edition, Cambridge University Press, 2003. ISBN 0521540518 Inhaltliche Voraussetzungen: Mathematik-Kenntnisse, die den im Kurs "01141 - Mathematische Grundlagen" vermittelten Kenntnissen entsprechen Master of Science in Praktischer Informatik 01.12.2015 Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Für die Klausurzulassung ist eine erfolgreiche Bearbeitung der Einsendeaufgaben Voraussetzung. Die genauen Bedingungen werden im Kursbegleitschreiben veröffentlicht. Modulverantwortliche/r: Gabriele Peters Lehrende: Gabriele Peters Master of Science in Praktischer Informatik 01.12.2015 Katalog M, Bereich M1 Grundlagen der Informatik Mathematische Grundlagen der Kryptografie mit dem Kurs 01321 Mathematische Grundlagen der Kryptografie Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 25 Stunden): 175 Stunden Einüben des Stoffes (z.B. u.a. durch Einsendeaufgaben): 75 Stunden Wiederholung und Prüfungsvorbereitung (z.B. u.a. Studientag): 50 Stunden Inhalt: Die Kryptografie ist die Lehre von den Geheimschriften. Während diese bis vor wenigen Jahre eine Domäne des Militärs und der Diplomatie war, hält sie nun im Zuge der elektronischen Datenverarbeitung und Kommunikation mehr und mehr Einzug ins tägliche Leben. Neben der Aufgabe, Inhalte von Nachrichten vor der Nutzung von Unbefugten zu schützen, sind noch andere Aufgaben hinzugekommen, wie etwa sicherzustellen, dass eine Nachricht im Zuge der Übermittlung nicht geändert wurde, oder dass sie wirklich von dem angegebenen Absender stammt. In dem Kurs werden zunächst klassische symmetrische Verfahren der Kryptografie vorgestellt. Im Zentrum stehen jedoch public key Verfahren, die hauptsächlich auf algebraischen und zahlentheoretischen Grundlagen basieren. Zu nennen sind elementare Gruppen- und Ringtheorie, Theorie endlicher Körper, Theorie ganzzahliger Gitter sowie modulare Arithmetik, Theorie elliptischer Kurven und Primzahltests. Diese Grundlagen werden bereitgestellt, und es wird gezeigt, wie sie in moderne Kryptosysteme einfließen und in der Kryptoanalyse eingesetzt werden. Lernergebnisse / Kompetenzen: Die Studierenden lernen klassische und aktuelle Verfahren der Kryptografie kennen und verstehen die mathematischen Hintergründe dieser Verfahren. Sie kennen die für den Bereich IT-Sicherheit wichtigsten Inhalte der Algebra und Elementaren Zahlentheorie und wissen, wie diese mathematischen Grundlagen in das Design von Kryptosystemen und in die Kryptoanalyse einfließen. Literatur: Johannes Buchmann: Einführung in die Kryptographie, Springer 1999. Neal Koblitz: A Course in Number Theory and Cryptography, Springer 2001 Christina Romero: Number Theory with Computer Applications, Prentice Hall 1998. Rainer Schulze-Pillot: Elementare Algebra und Zahlentheorie, Springer 2007. Annette Werner: Elliptische Kurven in der Kryptographie, Springer 2002. Inhaltliche Voraussetzungen: Gute Kenntnisse der Linearen Algebra, Grundkenntnisse der Analysis Anmerkung: keine Master of Science in Praktischer Informatik 01.12.2015 Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Luise Unger Lehrende: Luise Unger Master of Science in Praktischer Informatik 01.12.2015 Grundlegende Algorithmen der Bio-Informatik mit dem Kurs 01738 Grundlegende Algorithmen der Bio-Informatik Durchführung: in jedem Wintersemester SWS: 4+2 Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester Detaillierter studentischer Arbeitsaufwand: Kurstexte 150 Stunden Einsendearbeiten 75 Stunden Studientag u. Prüfungsvorbereitung 75 Stunden Inhalt: Dieses Modul bietet eine Einführung in die wichtigsten Modelle und Algorithmen der Bioinformatik. Schwerpunkte setzen Methoden des Sequenzvergleichs (dynamisches Programmieren) und Verfahren zur Charakterisierung von Proteinfamilien (Hidden-Markov-Modelle). Daneben werden Algorithmen zur Vorhersage der Proteinsekundär- und RNA-Sekundärstruktur vorgestellt und es wird das Berechnen von Stammbäumen erläutert. Eingegangen wird auch auf die Analyse von Datensätzen aus Genomics-,Transkriptomics- und ProteomicsExperimenten sowie auf die wichtigsten bioinformatischen Datenbanken. Der Kurs ist in sich geschlossen; er vermittelt die für das Verständnis erforderlichen statistischen und biologischen Grundlagen und bietet eine Einführung in neuronale Netze und Support-Vektor Maschinen. Basistext ist das Buch R. Merkl: Bioinformatik, 3. Auflage. 2015, WILEY-VCH Lernergebnisse / Kompetenzen: Nach der Bearbeitung des Kurses können Studierende die wichtigsten Konzepte sequenzbasierter Bioinformatik beschreiben, die vorgestellten Werkzeuge anwenden und deren Vor- und Nachteile beurteilen, hierbei erzielte Ergebnisse auf ihre statistische Bedeutung hin bewerten, ableiten, ob bioinformatische Ansätze auf andere Probleme anwendbar sind, wichtige Verfahren maschinellen Lernens beschreiben, Ansätze zur Bewertung von Lernverfahren selbst entwickeln. Literatur: Basistext ist das Buch R. Merkl: Bioinformatik, 3. Auflage. WILEY-VCH, 2015 Inhaltliche Voraussetzungen: Grundkenntnisse Mathematik und Datenstrukturen z.B. aus den Kursen Datenstrukturen I, Mathematische Grundlagen, Algorithmische Mathematik Anmerkung: Der Basistext muss vor Semesterbeginn beschafft werden. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Master of Science in Praktischer Informatik 01.12.2015 Modulverantwortliche/r: Jörg Keller Lehrende: Rainer Merkl Master of Science in Praktischer Informatik 01.12.2015 Komplexitätstheorie mit dem Kurs 01686 Komplexitätstheorie Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semster SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten von Basistext und Leittext 200 Stunden Bearbeiten von Übungs- und Einsendeaufgaben 50 Stunden Studientag u. Prüfungsvorbereitung 50 Stunden In der Komplexitätstheorie beschäftigt man sich damit, welche Probleme mit eingeschränkten Ressourcen (z.B. Zeit oder Speicherplatz) berechnet werden können. Man fasst Probleme dabei zu Komplexitätsklassen zusammen und untersucht deren Beziehung untereinander. Im Kurs werden die Grundlagen der Komplexitätstheorie aus einer algorithmischen Perspektive vermittelt. Als Basistext wird das Buch von Ingo Wegener "Komplexitätstheorie: Grenzen der Effizienz von Algorithmen" verwendet. Der Leittext wird ergänzt mit Übungsaufgaben und Anmerkungen. U.a. werden folgende Themen werden: - grundlegende Komplexitätsklassen - NP-Vollständigkeit - Interaktive Beweissysteme - probabilistische Komplexitätsklassen - Approximation Lernergebnisse / Kompetenzen: Die Studierenden können sicher mit den wichtigsten Komplexitätsklassen umgehen, sie kennen zudem die zu Grunde liegenden Berechnungsmodelle. Die Studierenden haben ein Verständnis für die Grenzen der effizienten Berechenbarkeit erworben, und sind in der Lage, Probleme hinsichtlich ihrer algorithmischen Komplexität einzuschätzen und in Komplexitätsklassen richtig einzuordnen. Literatur: Basistext ist das Buch Ingo Wegener: Komplexitätstheorie: Grenzen der Effizienz von Algorithmen, Springer, 2003 Inhaltliche Voraussetzungen: Grundlagen der theoretischen Informatik, wie sie z.B. im Modul "Grundlagen der Theoretischen Informatik" des Bachelorstudiengangs Informatik vermittelt werden. Anmerkung: Der Basistext muss vor Semesterbeginn beschafft werden. Nicht zusammen mit dem nicht mehr angebotenen Modul "Grundzüge der Komplexitätstheorie" nutzbar. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Master of Science in Praktischer Informatik 01.12.2015 Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: André Schulz Lehrende: André Schulz Master of Science in Praktischer Informatik 01.12.2015 Algorithmische Geometrie mit dem Kurs 01840 Algorithmische Geometrie Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Kurseinheiten: 120 Stunden Bearbeiten von Übungs- und Einsendeaufgaben: 100 Stunden Wiederholung und Prüfungsvorbereitung (Selbststudium, freiwilliger Studientag): 80 Stunden Die Algorithmische Geometrie beschäftigt sich mit effizienten Lösungsverfahren für geometrische Probleme. Ihre Anwendungen liegen unter anderem in den Bereichen Logistik, Robotik, Bilderzeugung und Geoinformationssysteme. In diesem Kurs werden die Grundlagen hierfür bereitgestellt und zum Beispiel folgende Fragen beantwortet: Wie bestimmt man schnell den minimalen Abstand zwischen Punkten in der Ebene? Wie berechnet man effizient Schnitte von geometrischen Objekten? Wie bestimmt man den sichbaren Bereich in einem Raum bzw. wo platziert man dort Überwachungssysteme? Wie trianguliert man eine ebene Punktmenge? Wie verwaltet man mehrdimensionale Punktmengen effizient? Was sind die Einzugsbereiche von Versorgungsstationen oder Läden in einem einfachen ökonomischen Modell? Wie bewegt man sich in unbekannter Umgebung, um systematisch ein Ziel zu finden? Wie findet man Approximationslösungen für schwierige geometrische Optimierungsprobleme? Zusätzlich zum Kurstext (350 Seiten mit 250 Abbildungen) gibt es eine Sammlung von Webseiten und Java-Applets, die dynamisches Anschauungsmaterial zum Kurs bereitstellen. Lernergebnisse / Kompetenzen: Durch diesen Kurs lernen die Studierenden einerseits die Anwendung von Algorithmen und Datenstrukturen für die Lösung von meist anschaulichen, gut motivierten und anspruchsvollen Problemen sowie andererseits auch die konsequente, mathematisch exakte Analyse von solchen Verfahren und Strukturen. Literatur: Mark de Berg, Otfried Cheong, Marc van Kreveld, Mark Overmars: Computational Geometry: Algorithms and Applications. Springer-Verlag, third edition, 2008. Joseph O'Rourke: Computational Geometry in C. Cambridge University Press, second edition, 1998. Franco P. Preparata, Michael Ian Shamos: Computational Geometry. SpringerVerlag, corrected fifth printing, 1993. Herbert Edelsbrunner: Algorithms in Combinatorial Geometry. EATCS Monographs on Theoretical Computer Science, Vol. 10 Springer-Verlag, 1987. Inhaltliche Voraussetzungen: Kenntnisse in Datenstrukturen und Grundkenntnisse der Mathematik (z.B. aus den Kursen 01661, 01141 und 01142 des Bachelor Informatik) Anmerkung: keine Master of Science in Praktischer Informatik 01.12.2015 Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Christian Icking Lehrende: Christian Icking Master of Science in Praktischer Informatik 01.12.2015 Computergrafik II mit dem Kurs 01279 Computergrafik II Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Einüben des Stoffes, insbesondere durch Einsendeaufgaben (7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Selbststudium): 55 Stunden Inhalt: Dieser Kurs konzentriert sich auf Gebiete der Computergrafik, die im Kurs 01277 nicht oder nicht ausführlich diskutiert werden. Er behandelt: Festkörpermodellierung (Boundary Representation, Constructive Solid Geometry, Zellmodelle, Hybridmodelle); lokale Beleuchtungsmodelle, die die Oberflächenbeschaffenheit von Körpern und die Einflüsse von Lichtquellen auf die wirklichkeitsnahe Darstellung von Objekten beschreiben; globale Beleuchtungsverfahren zur fotorealistischen Wiedergabe ganzer Szenen sich wechselseitig beeinflussender Objekte, das Verfahren der Strahlverfolgung (Raytracing) und das Radiosity-Verfahren werden eingehend behandelt; kurze Einführung in die von Mandelbrot begründete Fraktale Geometrie, wobei neben den theoretischen Grundlagen zu diskreten dynamischen Systemen, stochastischen Fraktalen, iterierten Funktionensystemen und Lindenmayersystemen eine Reihe einfacher Algorithmen besprochen wird; systemtheoretische Grundlagen der Bildverarbeitung; Halbtonverfahren, Grundlagen der Fourier- und verwandter Transformationen sowie Verfahren der Bildverbesserung; Grundlagen der Mustererkennung, Filter zum Erkennen von Kanten, Bildskeletten und zur Bildsegmentierung; Verwendung von Texturen. Der Kurs liegt elektronisch mit einer Vielzahl eingebundener interaktiver Applets vor. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme des Moduls sind die Studierenden in der Lage, fortgeschrittene Konzepte auf den Gebieten Festkörpermodellierung, lokale und globale Beleuchtungsmodelle, fraktale Geometrie und Verfahren der digitalen Bildverarbeitung zu benennen und zu beschreiben. Sie können den Themenkreis der Fraktale Geometrie darstellen und erklären, wie man natürliche Objekte wie Wolken, Küstenlinien, Pflanzen etc. modellieren und auf dem Bildschirm darstellen kann. Sie können die grundlegenden mathematischen Verfahren der Bildverarbeitung erläutern und anwenden, insbesondere Halbtonverfahren, Fouriertransformation, Abtastung und Rekonstruktion von Signalen, Faltung und Bildfilterung sowie Kantendetektion. Nach erfolgreicher Teilnahme können die Teilnehmer die Konzepte zur Erzeugung von 2D- und 3D-Texturen beurteilen und analysieren. Literatur: Encarnação, Straßer, Klein: Graphische Datenverarbeitung I+II, Oldenbourg, ISBN 3486-23223-1. Foley, vanDam, Feiner, Hughes: Computer Graphics - Principles and Practice Addison Wesley, ISBN 0- 201-84840-6. Master of Science in Praktischer Informatik 01.12.2015 Inhaltliche Voraussetzungen: Sinnvoll, aber nicht zwingend erforderlich ist eine Bearbeitung von Kurs 01277 Einführung in Computergrafik. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Michael Felten Lehrende: Michael Felten Master of Science in Praktischer Informatik 01.12.2015 Effiziente Graphenalgorithmen mit dem Kurs 01216 Kombinatorische Optimierung - Effiziente Graphenalgorithmen Durchführung: in jedem Wintersemester SWS: 4+2 Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Einüben des Stoffes (insbesondere durch Einsendeaufgaben; 7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Studientag und Selbststudium): 55 Stunden Inhalt: Graphen und algorithmische Graphenprobleme Durchsuchen von Graphen Minimale aufspannende Bäume und Matroide kürzeste Wege maximale Flüsse Matchings Lineare Optimierungsdualität kostenminimale Flüsse und gewichtete Matchings Lernergebnisse / Kompetenzen: Die Studierenden kennen die Grundlagen der Graphentheorie und wesentliche Datenstrukturen zur Implementierung von Graphenalgorithen. Sie können die Laufzeit von Algorithmen abschätzen und sind sich der Problematik P vs. NP bewusst. Sie beherrschen wesentliche Algorithmen zur Baumsuche, minimalen aufspannenden Bäumen, kürzesten Wegen, maximalen Flüssen und Matchings inklusive Laufzeitanalyse und Korrektheitsbeweisen. Literatur: Basistext ist das Buch: Hochstättler/Schliep: CATBox - An Interactive Course in Combinatorial Optimization, Springer 2010 Schrijver: Combinatorial Optimization - Polyhedra and Efficiency, Springer 2003 Cook, Cunningham, Pulleyblank, Schrijver: Combinatorial Optimization, Barnes & Noble, Wiley, 1997 Korte,Vygen: Kombinatorische Optimierung, Springer, 2012 Inhaltliche Voraussetzungen: Mathematische Grundlagen; Algorithmische Mathematik Anmerkung: Der Basistext muss vor Semesterbeginn beschafft werden. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): Master of Science in Praktischer Informatik bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch 01.12.2015 Voraussetzung Anmeldung LN: Modulverantwortliche/r: Winfried Hochstättler Lehrende: Winfried Hochstättler, Dominique Andres Master of Science in Praktischer Informatik 01.12.2015 Lineare Optimierung mit dem Kurs 01212 Lineare Optimierung Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semster SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 18 Stunden): 126 Stunden Einüben des Stoffes (insbesondere durch Einsendeaufgaben (7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Studientag und Selbststudium): 69 Stunden Inhalt: Zunächst stellen wir die Aufgabenstellung vor, modellieren verschiedene Probleme als Lineares Programm und lösen diese mit Standardsoftware. Dann stellen wir die Dualitätstheorie mitsamt der zugehörigen Linearen Algebra vor. Im Folgenden analysieren wir die Seitenflächenstruktur von Polyedern und diskutieren das Simplexverfahren, seine Varianten und zugehörige Komplexitätsuntersuchungen. Weiter diskutieren wir die Ellipsoidmethode und ihre Bedeutung für die kombinatorische Optimierung sowie das Karmarkar-Verfahen und Innere-PunktMethoden. Lernergebnisse / Kompetenzen: Die Studierenden können lineare Optimierungsaufgaben modellieren, in Normalformen bringen und dualisieren. Sie kennen Polyedertheorie als Geometrie der linearen Optimierung. Sie kennen die Algebra und die Geometrie des Simplexverfahrens und zugehörige komplexitätstheoretische Überlegungen zur Linearen Optimierung. Sie kennen Bedeutung und Vorgehensweise der Ellipsoidmethode und von Innere-Punkt-Verfahren. Literatur: B. Gärtner, J. Matousek: Understanding and Using Linear Programming, SpringerVerlag, 2006 Günter M. Ziegler: Polyhedral Theory Alexander Schrijver: Theory of Linear and Integer Programming, WILEY, 1998 C. Roos, T. Terlaky, J.-P. Vial: Interior Point Methods for Linear Optimization, Springer-Verlag, 2005 Inhaltliche Voraussetzungen: Der Kurs setzt die „Mathematische Grundlagen“ und insbesondere sehr gute Kenntnisse der „Linearen Algebra“ voraus. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Master of Science in Praktischer Informatik 01.12.2015 Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: finden Sie im Kursanschreiben Modulverantwortliche/r: Winfried Hochstättler Lehrende: Winfried Hochstättler Master of Science in Praktischer Informatik 01.12.2015 Logik für Informatiker mit dem Kurs 01825 Logik für Informatiker Durchführung: letztmals SS 2016 Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: letztmals SS 2016 Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 168 Stunden Bearbeiten der Einsendeaufgaben 56 Stunden Studientage, Prüfungsvorbereitung 76 Stunden Inhalt: Im Kurs werden Begriffe, Resultate und Methoden der mathematischen Logik vorgestellt, die in verschiedenen Gebieten der Informatik wie z.B. "abstrakte Semantik", "Programmverifikation", "logische Programmierung" oder "künstliche Intelligenz" Anwendung finden. Im ersten Kapitel werden zunächst im Rahmen der Aussagenlogik grundlegende Konzepte der mathematischen Logik behandelt. Den größten Teil des Kurses nimmt die Prädikatenlogik erster Stufe ein. Es werden die Syntax und die Semantik der prädikatenlogischen Sprache exakt eingeführt. Darauf aufbauend wird eine Formalisierung des Folgerungsbegriffs vorgenommen. Hier kommen logische Kalküle ins Spiel. Über Normalformen gewinnt man dann mit Hilfe des Satzes von Herbrand die rekursive Aufzählbarkeit der allgemein gültigen prädikatenlogischen Formeln. Dieses Resultat bildet das Zentrum des Kurses und leitet über zur Theorie der logischen Programmierung. Nach einer Erörterung der Logik mit Identität beschließt eine Diskussion der Ausdrucksstärke den Abschnitt über die Prädikatenlogik. Den Abschluss des Kurses bildet eine Einführung in die modale Logik und ihre Anwendungen in der Informatik. Von den zahlreichen Ausprägungen der Modallogik wird die epistemische Logik - einschließlich des Begriffs des Common Knowledge - etwas eingehender betrachtet. Lernergebnisse / Kompetenzen: Absolvierende des Moduls sind in der Lage - Einsatzbereiche logischer Sprachen zu identifizieren - logische Sprachen zur formalen Modellierung zu nutzen - logische Begriffe zu definieren, einander gegenüberzustellen und hinsichtlich praktischer Bedeutung zu interpretieren - die algorithmische Quintessenz grundlegender Logik-Systeme herauszustellen - Lösungsstrategien für Problemstellungen mit Logik-Bezug zu entwickeln Literatur: Dassow, J., Logik für Informatiker, Teubner, 2005 Schöning, U., Logik für Informatiker, Spektrum, 2000 Heinemann, B., Weihrauch, K., Logik für Informatiker, Teubner, 1992 Inhaltliche Voraussetzungen: Inhalt eines Grundkurses in theoretischer Informatik Anmerkung: Wird im SS 2016 letztmals angeboten, Prüfungen sind bis einschließlich SS 2017 möglich. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Master of Science in Praktischer Informatik 01.12.2015 Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Bernhard Heinemann Lehrende: Bernhard Heinemann Master of Science in Praktischer Informatik 01.12.2015 Katalog M, Bereich M2 Computersysteme Virtuelle Maschinen mit dem Kurs 01728 Virtuelle Maschinen Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 150 Stunden, Bearbeiten der Einsendearbeiten 75 Stunden, Studientage und Prüfungsvorbereitung 75 Stunden Inhalt: Eine virtuelle Maschine emuliert ein komplettes Computersystem durch Softwarekomponenten, die einen einheitlichen Zugang zur Hardware eines realen Computersystems bereitstellen. Durch die Virtualisierung wird es möglich, auf ein und demselben Computersystem nacheinander oder auch gleichzeitig mehrere verschiedene Betriebssysteme laufen zu lassen. Die Virtualisierung von Computersystemen bietet eine Fülle von Vorteilen, wie z. B. die gleichzeitige Nutzung von mehreren Betriebssystemen, den einfachen und kostengünstigen Aufbau von Testumgebungen und die verbesserte Auslastung von MehrkernProzessoren. Im Rahmen dieses Kurses werden die Grundlagen heutiger Virtualisierungstechniken herausgearbeitet. Der Kurs basiert auf dem Buch "Virtual Machines" von Smith und Nair, erschienen bei Elsevier 2005. Zu diesem englischsprachigen Basistext erhalten die Studierenden einen deutschsprachigen Leittext. Lernergebnisse / Kompetenzen: Nachdem die Studierenden das Modul bearbeitet haben, können sie die Funktionsweise virtueller Machinen erklären, die Beschränkungen der Virtualisierung identifizieren, unterschiedliche Arten der Emulation von Befehlssatzarchitekturen beurteilen, die verschiedenen Varianten virtueller Maschinen klassifizieren und gegenüberstellen, selbst virtuelle Maschinen konfigurieren, geeignete Anwendungen kategorisieren und auf einer passenden virtuellen Maschine integrieren, Schwachstellen der Virtualisierung identifizieren, Optimierungsmöglichkeiten entdecken, die Virtualisierung in geeigneter Form reorganisieren und schließlich für die jeweilige Anwendung eine bestmöglich angepasste virtuelle Plattform produzieren. Literatur: Basistext ist das Buch: J. E. Smith and R. Nair, Virtual Machines, Elsevier, 2005 I. D. Craig, Virtual Machines, Springer-Verlag, New York, 2005 Inhaltliche Voraussetzungen: Kenntnisse aus den Kursen Computersysteme sowie Betriebssysteme und Rechnernetze Anmerkung: Der Basistext muss vor Semesterbeginn beschafft werden. Vergabe von Leistungspunkten (Modulabschluss): Master of Science in Praktischer Informatik 01.12.2015 Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: finden Sie im Kursanschreiben Modulverantwortliche/r: Wolfram Schiffmann Lehrende: Wolfram Schiffmann Master of Science in Praktischer Informatik 01.12.2015 Advanced Parallel Computing mit dem Kurs 01729 Advanced Parallel Computing Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 150 Stunden, Bearbeiten der Einsendearbeiten 75 Stunden, Studientage und Prüfungsvorbereitung 75 Stunden Inhalt: Im Kurs werden zunächst Modellierungswerkzeuge für parallele Programme eingeführt. Darauf aufbauend werden statische und dynamische SchedulingVerfahren vorgestellt, die bei hochperformanten Parallelrechnern eine automatisierte Zuordnung der Tasks zu den einzelnen Prozessoren ermöglichen. Weiterhin werden Programmiertechniken für innovative parallele Architekturen eingeführt. Hierbei wird auch ausführlich auf die Programmierung von Graphical Processing Units (GPUs) eingegangen. In der Praxis werden parallele Implementierungen vor allem zur Lösung komplexer Optimierungsprobleme benötigt. Daher werden sowohl Approximationsverfahren als auch Heuristiken für numerische und kombinatorische Problemstellungen ausführlicher behandelt und analysiert. Schließlich wird anhand von Beispielen deren Einsatz im Umfeld von Forschung und Industrie vorgestellt. Lernergebnisse / Kompetenzen: Nachdem die Studierenden das Modul bearbeitet haben, können sie Modellierungswerkzeuge für parallele Programme erklären, SchedulingAlgorithmen für homogene und heterogene Zielsysteme im Umfeld statischer und dynamischer Anwendungsszenarien klassifizieren, die Auslastung von Mehrkernprozessoren analysieren und optimieren, Programmiertechniken für hybride Zielarchitekuren anwenden, die Beschränkungen der Virtualisierung identifizieren, unterschiedliche Arten der Emulation von Befehlssatzarchitekturen beurteilen, die verschiedenen Varianten virtueller Maschinen klassifizieren und gegenüberstellen, selbst virtuelle Maschinen konfigurieren, geeignete Anwendungen kategorisieren und auf einer passenden virtuellen Maschine integrieren, Schwachstellen der Virtualisierung identifizieren, Optimierungsmöglichkeiten entdecken, die Virtualisierung in geeigneter Form reorganisieren und schließlich für die jeweilige Anwendung eine bestmöglich angepasste virtuelle Plattform produzieren. Literatur: Enrique Alba, Parallel Metheuristics, Wiley, 2005 Christian Bishof et al., Parallel Computing, Architectures, Algorithms, and Applications, IOS Press, 2008 Christian Blum and Andrea Roli. Metaheuristics in combinatorial optimization: Overview and conceptual comparison. ACM Comput. Surv. , 35(3):268–308, September 2003.T. G. David Kirk and Wen-mei Hwu, Programming Massively Parallel Processors – A Hands-on Approach, Morgan Kaufman, 2010 Maciej Drozdowski, Scheduling for Parallel Processing, Springer-Verlag, 2009 Master of Science in Praktischer Informatik 01.12.2015 Yu-Kwong Kwok and Ishfaq Ahmad. Static scheduling algorithms for allocating directed task graphs to multiprocessors. ACM Comput. Surv. , 31(4):406–471, December 1999. Inhaltliche Voraussetzungen: Kenntnisse der Inhalte des Kurses Parallele Programmierung und Grid Computing Kurs 01727 Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: finden Sie im Kursanschreiben Modulverantwortliche/r: Wolfram Schiffmann Lehrende: Jörg Keller, Wolfram Schiffmann Master of Science in Praktischer Informatik 01.12.2015 PC-Technologie mit dem Kurs 01744 PC-Technologie Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Einüben des Stoffes (insbesondere durch Einsendeaufgaben (7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Selbststudium): 55 Stunden Inhalt: Im Kurs werden der Aufbau und die Funktionsweise eines PCs vorgestellt. Neben Prozessoren von AMD und Intel werden Mainboards, Chipsätze, Ein-/AusgabeBusse, Speicher- und Prozessverwaltung, Speichermedien, Audio- und Graphikschnittstellen sowie die wichtigsten Peripheriegeräte im Detail vorgestellt. Einen weiteren Schwerpunkt bildet die Behandlung von Netzwerkschnittstellen, da sie in Zukunft immer mehr an Bedeutung gewinnen werden. Neben Kabel und Lichtwellenleitern kommen dabei verstärkt Techniken zur drahtlosen Kommunikation zum Einsatz. Damit können auch mobile Geräte wie Notebooks und PDAs leicht in die Netzwerke integriert werden. Wegen ihrer wachsenden Bedeutung wird ebenfalls in die Technik mobiler Computer eingeführt. Der Kurs vermittelt neben der Hardwaretechnologie auch Einblicke in die benötigte Systemsoftware. So wird beispielsweise in die Grundlagen von Dateisystemen und Gerätetreibern eingeführt. Lernergebnisse / Kompetenzen: Die Studierenden erwerben die Fähigkeiten, das komplexe Zusammenwirken der Komponenten in einem PC zu verstehen und aufgrund dieser Kenntnisse PCSysteme zu konfigurieren, die für die geplanten Anwendungen optimiert sind. Sie lernen viele Begriffe und Abkürzungen kennen, die im Alltags- und Berufsleben häufig benutzt werden, ohne dass ihre Bedeutung hinterfragt wird. Die Beschreibung der wichtigsten Peripheriegeräte, wie Monitore und Tastatur, Soundsysteme, Drucker und Projektoren, zeigt ihnen, wie die täglich benutzten Geräte funktionieren und wo ihre Stärken und Schwächen liegen. Weiterhin verstehen sie nach der Bearbeitung des Kurses die heute übliche Einbindung eines Personal Computers in ein Netz, insbesondere das Internet, sowie die dafür benötigten Koppeleinheiten und Protokolle. Ein eigenes Kapitel macht sie mit den Besonderheiten der sich rasant verbreitenden mobilen Varianten eines PCs vertraut, also z.B. den Laptops, Notebooks, Tablets und Smartphones. Literatur: H. Messmer, K. Dembrowski: PC Hardwarebuch. Aufbau, Funktionsweise, Programmierung, Addison-Wesley, 2003 J. Ortmann: Einführung in die PC-Grundlagen. Addison-Wesley, 2006, ISBN: 978-38273-2339-2 S. Mueller: PC-Hardware Superbibel. Markt und Technik-Verlag, 2005, ISBN: 9783827268174 Inhaltliche Voraussetzungen: Grundkenntnisse in Mikrocomputer-Technik, insbesondere in Architektur und Master of Science in Praktischer Informatik 01.12.2015 Programmierung von Mikroprozessoren, wie sie z.B. in Kurs 1706 "Anwendungsorientierte Mikroprozessoren" gelehrt werden. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Helmut Bähring Lehrende: Helmut Bähring, Wolfram Schiffmann Master of Science in Praktischer Informatik 01.12.2015 Kommunikations- und Rechnernetze mit dem Kurs 01690 Kommunikations- und Rechnernetze Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Einüben des Stoffes (insbesondere durch Einsendeaufgaben (7 mal 15 Stunden): 105 Stunden Wiederholung und Prüfungsvorbereitung (Onlineveranstaltungen und Selbststudium): 55 Stunden Inhalt: Das Modul bietet einen umfassenden Überblick über die Aufgaben, Problemstellungen und Lösungen, die bei der Netzwerkkommunikation auftreten. Es werden die signaltheoretischen Grundlagen vorgestellt und die wesentlichen Protokolle und Anwendungen in heutigen Weitverkehrsnetzen detailliert beschrieben. Weiterhin bietet das Modul eine fundierte Einführung in Modelle zur Beschreibung und Analyse verschiedenster Netzwerkstrukturen. Dazu gehören unter anderem Small Worlds, Zufallsnetze und skalenfreie Netze. Schließlich werden beispielhaft einige in der Praxis auftretende Netzwerksysteme vorgestellt. Dazu gehören Bezahlsysteme, RFID und Peer-to-Peer-Systeme. Lernergebnisse / Kompetenzen: Die Studierenden entwickeln Vertrautheit mit grundlegenden Fragen zu Struktur und Eigenschaften unterschiedlicher Netzwerksysteme. Sie erwerben die Fähigkeit, solche Systeme nach verschiedenen Gesichtspunkten zu klassifizieren und deren Einsatzgebiete und Grenzen zu benennen. Sie erwerben weiterhin die Fähigkeit, Signale anhand grundlegender Eigenschaften zu analysieren und zu klassifizieren. Weiterhin werden sie in die Lage versetzt, bestehende Systeme in der Praxis auf wesentliche Eigenschaften wie bspw. Sicherheit und Robustheit hin zu untersuchen. Literatur: Andrew S. Tanenbaum: Computernetzwerke, 4. überarbeitete Auflage, Pearson 2003 Peter Mahlmann, Christian Schindelhauer: P2P Netzwerke: Algorithmen und Methoden, Springer 2007 Frey, Bossert, Fliege: Signal- und Systemtheorie, 2. korrigierte Auflage, Vieweg +Teubner 2009 Inhaltliche Voraussetzungen: Grundkenntnisse; z.B. aus Kurs 01801 Betriebssysteme und Rechnernetze Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Master of Science in Praktischer Informatik 01.12.2015 Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Modulverantwortliche/r: Herwig Unger Lehrende: Herwig Unger Master of Science in Praktischer Informatik 01.12.2015 Betriebssysteme mit dem Kurs 01802 Betriebssysteme Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Bearbeitung der Einsendeaufgaben inkl. Verarbeitung des Korrektur-Feedbacks (7 mal 10 Stunden): 70 Stunden Bearbeitung der praktischen Übungen: 10 Stunden Mitwirkung an den Diskussionen in der Kurs-Newsgroup: 20 Stunden Wiederholung und Prüfungsvorbereitung: 60 Stunden Inhalt: Das Modul behandelt die Funktionsweise von modernen Betriebssystemen aus einer benutzungsorientierten Sicht. Schwerpunktmäßig werden die Dienste vorgestellt, die ein Betriebssystem einem Anwendungsprogramm oder einem Benutzer anbietet. Um diese Dienste verstehen und einschätzen zu können, werden die wichtigsten Prinzipien und Techniken ihrer Realisierung vorgestellt. Themenschwerpunkte sind: Aufgaben und Architektur von Betriebssystemen, Geräteverwaltung und Dateisysteme, Arbeitsspeicherverwaltung, Prozessverwaltung und parallele Prozesse sowie Prozesskommunikation, Sicherheit und Kommandointerpreter. Die Arbeitsweise mit einem Betriebssystem wird in praktischen Übungen vermittelt. Lernergebnisse / Kompetenzen: Die Teilnehmer entwickeln ein vertieftes Verständnis über Aufgaben, Aufbau und die Funktionsweise eines Betriebssystems. Sie können Designentscheidungen für die Anpassung eines Betriebssystems an Anforderungsprofile begründet treffen. Durch die Teilnahme an der Kurs-Newsgroup wird das Einüben wissenschaftlicher Kommunikation gefördert. Literatur: A. S. Tanenbaum. Modern Operating Systems, Third Edition. Prentice Hall, 2008. W. Stallings. Operating Systems: Internals and Design Principles - Sixth Edition. Pearson Education, 2009. Inhaltliche Voraussetzungen: Teilnehmer sollen: bereits mit der algorithmischen Denkweise vertraut sein und wenigstens eine höhere Programmiersprache (wie Ada, Modula-2, oder Pascal) kennen; dabei wenigstens ein Betriebssystem (z.B. MS-DOS oder eine UNIXVariante) zumindest oberflächlich kennengelernt haben; gängige Datenstrukturen wie Listen oder Bäume (z.B. aus dem Kurs Datenstrukturen) kennen und möglichst (aber nicht notwendigerweise) schon Programmieren in Assembler oder auf andere Weise Kenntnisse über Architektur und Funktionsweise digitaler Rechner sowie über den Instruktionssatz einer CPU haben. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Master of Science in Praktischer Informatik 01.12.2015 Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Jörg M. Haake Lehrende: Jörg M. Haake Master of Science in Praktischer Informatik 01.12.2015 Sicherheit - Safety & Security mit den beiden Kursen 01867 Sicherheit im Internet II Durchführung: in jedem Wintersemester, verteilt über das gesamte Semester 21811 SWS: 2+1 Fehlertoleranz in Computersystemen und Netzwerken Durchführung: in jedem Sommersemester, in der ersten Hälfte des Semesters Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: zwei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: - Bearbeiten der Kurseinheiten: 140 Stunden - Bearbeiten der Übungsaufgaben: 70 Stunden - Onlineveranstaltungen und Prüfungsvorbereitung: 90 Stunden 01867 vertieft das Thema Sicherheit im Internet und baut dazu auf dem Kurs 01866 Sicherheit im Internet I auf. Er besteht aus vier Teilen. Im ersten Teil werde typische Angriffe auf Systeme genauer vorgestellt. Hierzu gehören die Angriffe auf Schwächen in Protokollen ebenso wie Angriffe auf die Konfiguration von Systemen. Spezielle Überwachungs-, bzw. Angriffsprogramme werden vorgestellt. Den Abschluss des ersten Teils bildet ein Abschnitt zu Angriffen auf Verschlüsselungsalgorithmen. Der zweite Teil beschäftigt sich mit der Benutzersicherheit. Ausgehend von typischen E-Commerce Transaktionen werden verschiedene Möglichkeiten zur Bezahlung im Internet mit ihren Eigenschaften vorgestellt. Insbesondere anonyme Bezahlverfahren, also elektronisches Bargeld wird mit den dahinter stehenden Prinzipien diskutiert. Außerdem werden in dieser Kurseinheit einige eher mathematische Aspekte des Thema Sicherheit betrachtet: Advanced Hashing, Primzahltest und Zufallszahlen. Der dritte Teil beschäftigt sich mit der Anbietersicherheit. Konkret geht es um den Aufbau eines privaten Netzes über öffentliche Netzwerke. Dies wird durch Virtual Private Networks (VPN) realisiert. Ihre Basistechnologien und ihr Aufbau werden vorgestellt. Außerdem werden Intrusion Detection Systeme (IDS) zur Unterstützung bei der Erkennung von Angriffen besprochen. Es werden wieder die zugrunde liegenden Techniken und die Eigenschaften von IDS besprochen. Im letzten Teil des Kurses geht es um die Erstellung von sicheren Systemen. Zunächst werden die Rahmenbedingungen (wie beispielsweise gesetzliche Vorschriften) vorgestellt, die Einfluss auf die Eigenschaften sicherer Systeme haben. Anschließend werden Hinweise zu Software Engineering Prozessen gegeben. Die Beachtung dieser Hinweise vereinfacht die Erstellung sicherer Systeme. 21811 untersucht nach einer Klärung wichtiger Begriffe sowie der Unterschiede zwischen Fehlertoleranz und Risikominimierung die grundlegenden Arten von Fehlern und Prinzipien der Fehlertoleranz. Dies umfasst zunächst die Behandlung der theoretischen Grundlagen, die im Wesentlichen ein Basiswissen der Wahrscheinlichkeitsrechnung und der Statistik umfassen. Darauf aufbauend werden Ansätze vorgestellt, die zu einer fehlertolerierenden Datenspeicherung und Datenübertragung beitragen. Ein letzter Kursschwerpunkt fokussiert auf die Entwicklung fehlertoleranter Kommunikationssysteme und verteilter Rechnersysteme mittels protokollbasierten Ansätzen. Master of Science in Praktischer Informatik 01.12.2015 Lernergebnisse / Kompetenzen: Die Studierenden erwerben ein vertieftes Verständnis konkreter Angriffe und Gefahren im Internet. Sie sind in der Lage, Schutzmaßnahmen für einzelne Rechner sowie für Netzwerke zu beurteilen, auch im rechtlichen Kontext, sowie bei der Implementierung solcher Schutzmassnahmen mitzuwirken. Die Studierenden erwerben grundlegende theoretische Grundlagen auf dem Gebiet der Fehlertoleranz. Sie haben gelernt, dieses Kenntnisse in komplexen Methoden auf praktische Fragestellungen anzuwenden, wobei insbesondere Beispiele aus dem Bereich der Rechnerarchitektur und Kommunikationsnetze im Zielpunkt der Wissensvermittlung stehen. Literatur: C. Eckert: IT-Sicherheit. 2. Auflage. Oldenbourg 2003 R. Oppliger: Security Technologies for the World Wide Web 2nd Edition, Artech House 2003 B. Schneier: Applied Cryptography 2nd Edition, Wiley 1996 Bacon, J. and Harris, T. (2003). Operating Systems Concurrent and Distributed Software Design. NY: Addison-Wesley. Bertsekas, D. P. and Gallager, R. (1987). Data Networks (2nd Ed.). NJ: Pearson Prentice Hall. Devore, J. L. (2007). Probability and Statistics for Engineering and the Sciences. CA: Brooks/Cole Publishing Company Koren, I. and Mani Krishna , C. (2007). Fault-Tolerant Systems. CA: Elsevier. Tanenbaum, A. S.(2008). Modern Operating Systems (3rd Ed.). NJ: Pearson Prentice Hall. Inhaltliche Voraussetzungen: Kurs 01867: Kurs 01866 Sicherheit im Internet I sowie dessen Voraussetzungen, oder äquivalente Kenntnisse Kurs 21811: Grundkenntnisse; z.B. aus Kurs 01801 Betriebssysteme und Rechnernetze Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene gemeinsame Kursabschlussklausur über beide Kurse Voraussetzung Anmeldung LN: Modulverantwortliche/r: Herwig Unger Lehrende: Herwig Unger Master of Science in Praktischer Informatik 01.12.2015 Katalog M, Bereich M3 Informationssysteme und Künstliche Intelligenz Datenbanken in Rechnernetzen mit dem Kurs 01666 Datenbanken in Rechnernetzen Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 150 Stunden Bearbeiten der Einsendearbeiten 75 Stunden Studientage u. Prüfungsvorbereitung 75 Stunden Inhalt: Dieses Modul führt in das breite Gebiet der Implementierung und Anwendung von verteilten Datenbanken ein. Verteilte Datenbanken sind Datenbanken, die physisch zwar auf mehrere, unabhängige Rechner verteilt sind, für den Benutzer jedoch wie eine (zentrale) Datenbank in Erscheinung treten. Es werden verschiedene Formen von Rechnernetzen und Architekturen einbezogen, bis hin zu Client/ServerArchitekturen. Der Kurs vermittelt einen Überblick über die Probleme, die mit der Verteilung auftreten, und über die verschiedenen Lösungsansätze. Im einzelnen wird auf System- und Schemaarchitektur, auf Daten- und Verteilungsunabhängigkeit, auf Fragen der optimalen Datenverteilung sowie auf Synchronisations- und Recovery-Aspekte eingegangen. Der Kurs vermittelt das notwendige Basiswissen für Anwendungs- und Systementwickler sowie für Datenbankadministratoren, die es mit verteilten, aber integriert zu behandelnden Datenbeständen zu tun haben. Lernergebnisse / Kompetenzen: Die Studierenden erhalten ein umfassendes Verständnis für die Möglichkeiten und Vorteile der Verteilung von Datenbeständen auf ein Netz von Rechnern, für die Probleme, die dabei auftreten, sowie für die unterschiedlichen Parameter und Lösungsmöglichkeiten für die praktische Anwendung. Sie werden in die Lage versetzt, verteilte Datenbankanwendungen zu planen und mit deren Komplexität umzugehen. Literatur: Dadam, P.: Verteilte Datenbanken und Client/Server-Systeme, Springer Verlag 1996. Gray, J., Reuter, A.: Transaction Processing - Concepts and Techniques, Morgan Kaufmann Publ., 1993 Rahm, E.: Mehrrechner-Datenbanksysteme - Grundlagen der verteilten und parallelen Datenbankverarbeitung, Addison-Wesley, 1994 Inhaltliche Voraussetzungen: Kenntnisse der grundlegenden Konzepte von (zentralen) Datenbanken (beispielsweise Kurse Datenbanken I / II an der FernUniversität) Anmerkung: keine Master of Science in Praktischer Informatik 01.12.2015 Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Modulverantwortliche/r: Wolfgang Wilkes Lehrende: Wolfgang Wilkes Master of Science in Praktischer Informatik 01.12.2015 Dokumenten- und Wissensmanagement im Internet mit den beiden Kursen 01873 Daten und Dokumentenmanagement im Internet Durchführung: in jedem Semester, in der ersten Hälfte des Semesters 01874 SWS: 2+1 Informations- und Wissensmanagement im Internet Durchführung: in jedem Semester, in der zweiten Hälfte des Semesters Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein oder zwei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeitung der Kurseinheiten: 7 mal 20 Stunden = 140 Stunden Einüben der Inhalte: 7 mal 15 Stunden = 105 Stunden Wiederholung und Prüfungsvorbereitung = 55 Stunden Die adäquate Repräsentation von Daten und Dokumenten bildet eine wichtige Grundlage für deren effektive Erfassung, Verwaltung, Austausch, Vermittlung und Nutzung. Die Verwendung geeigneter Standards erleichtert dabei den Austausch von Daten und Dokumenten zwischen Menschen, zwischen Menschen und Maschinen sowie zwischen Maschinen. In diesem Kurs werden allgemeine Formate für Dokumente sowie für strukturierte Dokumente, die im Internet verfügbar sind, vorgestellt. Dazu wird zunächst der Dokumentenbegriff präzisiert und das Modell der strukturierten Dokumente eingeführt. Als übergreifendes Format, das die Definition konkreter Websprachen wie XHTML erlaubt, wird danach die Extensible Markup Language (XML) zusammen mit Dokumententypdefinitionen (DTD) und deren konzeptuellen und theoretischen Grundlagen eingeführt. Die daraufhin folgende Darstellung von Namensräumen, XML-Schema, XSLT und XQuery bildet einen weiteren Kern des Kurses. Danach werden abschliessend das historisch am weitesten verbreitete Format, die Hypertext Markup Language (HTML), und die Cascading Style Sheets (CSS) vorgestellt. Die adäquate Repräsentation von Information und Wissen bildet eine wichtige Grundlage für deren effektive Erfassung, Verwaltung, Vermittlung und Nutzung. In diesem Kurs werden allgemeine Formate für wichtige aktuelle Standards zur Darstellung und Repräsentation von Information und Wissen über Ressourcen im Web (aber auch über physikalische Ressourcen) vorgestellt. Im Kurs wird deshalb als erstes das Konzept der Semantischen Integration sowie des ontologiebasierten Informationsmanagements eingeführt und Ausdrucksfähigkeit von RDF, dem im entstehenden Semantic Web eine besondere Bedeutung zukommt, grundlegend erarbeitet und zu bereits existieren-den Wissensrepräsentationsinstrumenten wie etwa Topic Maps in Beziehung gesetzt. Ziel ist hier neben der Vermittlung der Grundprinzipien auch das Aufzeigen von Alternativen beim Entwurf eines Standards zur Wissensdarstellung. Danach werden mit RDF und OWL Wissensrepräsentations- und Ontologiesprachen für das Internet eingeführt und die Erzeugung von Ontologien und Metadaten diskutiert. Im Anschluss daran wird die Informationssuche auf den Wissensräumen und Repräsentationen mittels Information Retrieval vorgestellt. Abschließend befasst sich der Kurs mit der systemorientierten Evaluierung von IR Modellen und Systemen. Lernergebnisse / Kompetenzen: Master of Science in Praktischer Informatik 01.12.2015 Die Studierenden beherrschen die wichtigsten allgemeinen Begriffe, Modelle und Methoden der Anwendung und aktuellen Entwicklung von verteilten Datenbanken und strukturierten Dokumentenkollektionen für das Internet unter Nutzung des World Wide Web und können diese innerhalb exemplarischer Technologie- und Anwendungsentwicklungen von verteilten Datenbanken und strukturierten Dokumentenkollektionen zuordnen sowie innerhalb eigener Entwürfe, Modellierungen und Entwicklungen von verteilten Datenbanken und strukturierten Dokumentenkollektionen für das Internet unter Nutzung des World Wide Web anwenden. Die Studierenden beherrschen weiterhin die wichtigsten allgemeinen Begriffe, Modelle und Methoden der Anwendung und der aktuellen Entwicklung von verteilten wissensbasierten Informationssystemanwendungen für das Internet unter Nutzung des World Wide Web und des Semantic Web und können diese innerhalb von Anwendungen und aktuellen Entwicklungen von verteilten wissensbasierten Informationssystemanwendungen für das Internet unter Nutzung des World Wide Web und des Semantic Web zuordnen sowie innerhalb eigener Entwürfe, Modellierungen und Entwicklungen von Anwendungen und aktuellen Entwicklungen von verteilten wissensbasierten Informationssystemanwendungen für das Internet unter Nutzung des World Wide Web und des Semantic Web anwenden. Literatur: Peter Aiken, M. David Allen, "XML in Data Management: Understanding and Applying Them Together", Morgan Kaufmann, June 7, 2004, ISBN-13: 9780120455997 Serge Abiteboul, Peter Bunemann, Dan Suciu: "Data on the Web: From Relations to Semistructured Data and XML" Morgan Kaufmann, October 12, 1999, ISBN-13: 978-1558606227 Grigori Antoniou, Frank van Harmelen: "A Semantic Web Primer", The MIT Press, April 1, 2004, ISBN-13: 978-0262012102 John Davies, Rudi Studer, Paul Warren (eds): "Semantic Web Technologies: Trends and Research in Ontology-based Systems", Wiley, July 11, 2006, ISBN-13: 9780470025963 Amith Sheth, Miltiadis Lytras: "Semantic Web-Based Information Systems: State-ofthe-Art, Applications" Cybertech Publishing, December 11, 2006, ISBN-13: 9781599044279 Inhaltliche Voraussetzungen: Programmierkenntnisse Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur bestanden Voraussetzung Anmeldung LN: Modulverantwortliche/r: Matthias Hemmje Lehrende: Matthias Hemmje Master of Science in Praktischer Informatik 01.12.2015 Moving Objects Databases mit dem Kurs 01675 Moving Objects Databases Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten: 150 Stunden Bearbeitung der Einsendeaufgaben: 75 Stunden Wiederholung und Prüfungsvorbereitung, Prüfung: 75 Stunden Inhalt: The course offers an introduction to a new research area in databases termed "moving objects databases". The goal is to extend database technology to be able to represent any kind of moving entity in a database and to ask queries about them. For some entities only the position in space is relevant, hence they can be viewed as moving points, for others also the time dependent extent is of interest, hence we can speak of moving regions. Examples of moving points are people, animals, or vehicles such as cars, trucks, air planes, ships, or satellites; examples of moving regions are hurricanes, forest fires, oil spills in the sea, forests, cancer, or the settlement areas of the Celtic tribes. For querying, one would like to ask about the current or anticipated near future movement as well as analyze movement histories in the past. Some motivation for research in this area stems from mobile computing where it will be relevant to manage the locations of millions of users equipped with location-aware wireless online devices. The course describes data models and query languages for moving objects as well as implementation techniques such as geometric algorithms and novel indexing methods. It provides a good basis for students to start research in this area. Lernergebnisse / Kompetenzen: After successful study of the module students can explain the MOST data model for representing and querying current and near future expected movement, explain the model of spatio-temporal data types addressing complete motion histories for points and other spatial shapes, describe the distinction between abstract and discrete modeling, explain criteria for designing a system of data types and operations, provide formal definitions for the semantics of types and operations, explain the principles of the constraint database approach and give formal definitions for the main concepts, describe in detail data structures and algorithms for spatio-temporal data types, explain classes and several important instances of spatio-temporal index structures. They are able to judge approaches and commercial products for data management in these areas, and to develop customized solutions. Literatur: R.H. Güting and M. Schneider, Moving Objects Databases. Morgan Kaufmann Publishers / Elsevier, Amsterdam, 2005. P. Rigaux, M. Scholl, and A. Voisard, Spatial Databases: With Application to GIS. Morgan-Kaufmann Publishers, San Francisco, 2002. Inhaltliche Voraussetzungen: Kenntnisse der Konzepte von Standard-Datenbanksystemen. Vertiefte Kenntnisse zur Implementierung von Datenbanksystemen, etwa anhand des Kurses 01664. Master of Science in Praktischer Informatik 01.12.2015 Anmerkung: Nicht zusammen mit dem aktuellen Modul Vertiefung Datenstrukturen und Datenbanken nutzbar Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Ralf Hartmut Güting Lehrende: Ralf Hartmut Güting Master of Science in Praktischer Informatik 01.12.2015 Deduktions- und Inferenzsysteme mit dem Kurs 01695 Deduktions- und Inferenzsysteme Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 130 - 150 Stunden, bearbeiten der Übungsaufgaben 60 - 75 Stunden, Studientage und Prüfungsvorbereitung 60 - 75 Stunden Inhalt: Intelligentes Verhalten basiert wesentlich auf der Fähigkeit, logische Schlüsse zu ziehen, und in nahezu allen Systemen der künstlichen Intelligenz spielen automatische Inferenz- oder Deduktionskomponenten eine zentrale Rolle. Anwendungsfelder sind etwa das automatische Beweisen mathematischer Sätze, logische Programmiersprachen (z. B. PROLOG), Programmverifikation, deduktive Planverfahren oder die Entwicklung von Inferenzkomponenten für spezifische Wissensrepräsentationssprachen. In diesem Kurs werden grundlegende Begriffe, Methoden und Verfahren der Deduktions- und Inferenzsysteme behandelt: Kalküle für die Prädikatenlogik 1. Stufe, Resolutionsverfahren, Repräsentation von Kalkülen, Gleichheit und Unifikation, Termersetzungssysteme, Deduktion und logisches Programmieren, nicht- klassische Formen der Inferenz. Lernergebnisse / Kompetenzen: Die Studierenden können grundlegenden Begriffe, Methoden und Verfahren der Deduktions- und Inferenzsysteme präsentieren, die entsprechenden formalen Grundlagen beschreiben und zentrale Verfahren wie z.B. das Resolutionsverfahren anwenden. Literatur: K. H. Bläsius, H.J. Bürckert (Hrsg.): Deduktionssysteme. Automatisierung des logischen Denkens. Oldenbourg-Verlag, 1992. W. Bibel, S. Hölldobler, T. Schaub: Wissensrepräsentation und Inferenz. ViewegVerlag, 1993. Inhaltliche Voraussetzungen: keine Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: wird im Kursanschreiben angegeben Modulverantwortliche/r: Christoph Beierle Master of Science in Praktischer Informatik 01.12.2015 Lehrende: Christoph Beierle Master of Science in Praktischer Informatik 01.12.2015 Entscheidungsmethoden in unternehmensweiten Softwaresystemen mit dem Kurs 01771 Entscheidungsmethoden in unternehmensweiten Softwaresystemen Durchführung: in jedem Sommersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 140 Stunden, bearbeiten der Übungsaufgaben 70 Stunden, Wiederholung des Stoffs und Prüfungsvorbereitung 90 Stunden. Inhalt: Dieser Kurs behandelt ausgewählte Entscheidungsmodelle und -methoden, die in unternehmensweiten Softwaresystemen Anwendung finden. Im Vordergrund stehen dabei die diskrete ereignisorientierte Simulation und Entscheidungsmodelle und -methoden in APS- und SCM-Systemen. Typische Betrachtungsgegenstände der Modellierung und Simulation mit dem Fokus auf diskreter Simulation für Produktionssysteme werden behandelt. Die einzelnen Schritte einer Simulationsstudie werden beschrieben. Der Kurs behandelt die Funktionsweise moderner diskreter Simulationssoftware. Typische Betrachtungsgegenstände der Modellierung und Simulation von Produktionssystemen werden eingeführt. Weiterer Gegenstand des Kurses sind Planungs- und -steuerungsprobleme für die Produktionsdomäne. Lernergebnisse / Kompetenzen: Die Studierenden kennen die Anwendungsmöglichkeiten und -grenzen von diskreter Simulation zur Entscheidungsunterstützung in PPS- und SCM-Systemen. Die Studierenden werden insbesondere mit der grundsätzlichen Wirkungsweise diskreter Simulationssoftware vertraut gemacht. Die Studierenden werden vertieft mit den Modellierungsmethoden für Produktionssysteme vertraut gemacht. Insbesondere werden die Studierenden in die Lage versetzt, Modellierungs- und Simulationstätigkeiten für Produktionssysteme eigenständig auszuführen. Die Studierenden erwerben Kenntnisse bezüglich der Verifikation und der Validierung von Simulationsmodellen. Die Studierenden werden mit ausgewählten Planungsproblemen sowie Entscheidungsmodellen und - methoden in den Bereichen Ablaufplanung sowie Lieferkettenmanagement vertraut gemacht und können wichtige Techniken der Modellierung derartiger Probleme in APS-Systemen anwenden. Literatur: Joereßen, A., Sebastian, H.-J.: Problemlösung mit Modellen und Algorithmen, Teubner, 1998. Law, A. M. Simulation Modeling and Analysis, 4. Auflage, McGraw Hill, 2007. Pinedo, M. L.: Scheduling: Theory, Algorithms, and Systems, 3. Auflage, Springer, 2008 Inhaltliche Voraussetzungen: Kenntnisse der Inhalte der Kurse Algorithmische Mathematik und Betriebliche Informationssysteme Anmerkung: keine Master of Science in Praktischer Informatik 01.12.2015 Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: mind. 50 Prozent der möglichen Punkte bei den Einsendeaufgaben zu zwei vom Lehrgebiet festgelegten Kurseinheiten Modulverantwortliche/r: Lars Mönch Lehrende: Lars Mönch Master of Science in Praktischer Informatik 01.12.2015 Methoden der Wissensrepräsentation und -verarbeitung mit dem Kurs 01845 Methoden der Wissensrepräsentation und -verarbeitung Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 130 - 150 Stunden, bearbeiten der Übungsaufgaben 60 - 75 Stunden, Studientage und Prüfungsvorbereitung 60 - 75 Stunden Inhalt: Für die Realisierung maschineller Intelligenz ist die Frage der Wissensrepräsentation und -verarbeitung von zentraler Bedeutung. Jedes wissensbasierte System kombiniert das in seiner Wissensbasis gespeicherte Wissen mit aktuellen Informationen und kommt so zu "Erkenntnissen", die es beispielsweise dem Benutzer in Form von Diagnosen präsentiert, oder die es selbst - als autonom agierendes System - als Grundlage seiner Handlungen nutzt. Häufig ist dabei das zu verarbeitende Wissen unsicherer oder unvollständiger Natur, so dass Methoden zum Einsatz kommen müssen, die auch unter diesen Umständen vernünftige Resultate liefern. Dies macht die Behandlung von Inkonsistenzen erforderlich und führt auf die Problematik des nichtmonotonen oder revidierbaren Schließens. Einen anderen Ansatz zur Modellierung von Unsicherheit bieten die quantitativen Methoden. Ferner gehen wir auf den Bereich Aktionen und Planen ein, in dem sich die Veränderung von Wissen durch aktive Eingriffe (Handlungen) als eine Kernproblematik erweist. Der Kurs behandelt schwerpunktmäßig die folgenden Themen: Nichtmonotones Schließen, Truth Maintenance-Systeme, Default-Logiken, Aktionen und Planen, Situationskalkül, Wahrscheinlichkeit und Information, probabilistische Netzwerke, insbesondere Markov- und Bayes-Netze, Fuzzy- und Dempster-Shafer-Theorie, zahlreiche Anwendungsbeispiele, u.a. aus Technik, Medizin und Genetik. Lernergebnisse / Kompetenzen: Die Studierenden können fortgeschrittene Methoden zur Repräsentation und Verarbeitung unsicheren und vagen Wissens, insbesondere aus dem Bereich des revidierbaren Schließens und der quantitativen Methoden wiedergeben und die Grundlagen des Bereichs Aktionen und Planen beschreiben. Sie können Vor- und Nachteile der unterschiedlichen Ansätze erklären und diese Ansätze in entsprechenden Problemstellungen anwenden. Literatur: Inhaltliche Voraussetzungen: Kenntnisse formaler Grundlagen der Informatik; hilfreich sind auch Grundkenntnisse im Bereich der Logik und aus dem Gebiet der wissensbasierten Systeme, z.B. aus dem Kurs 01696. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Master of Science in Praktischer Informatik 01.12.2015 Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: wird im Kursanschreiben angegeben Modulverantwortliche/r: Christoph Beierle Lehrende: Christoph Beierle Master of Science in Praktischer Informatik 01.12.2015 Multimediainformationssysteme mit den beiden Kursen 01875 Multimediainformationssysteme I Durchführung: in jedem Sommersemester, in der ersten Hälfte des Semesters 01876 SWS: 2+1 Multimediainformationssysteme II Durchführung: in jedem Wintersemester, verteilt über das gesamte Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: zwei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeitung der Kurseinheiten: 7 mal 20 Stunden = 140 Stunden Einüben der Inhalte: 7 mal 15 Stunden = 105 Stunden Wiederholung und Prüfungsvorbereitung = 55 Stunden Kurs 01875: Die Repräsentation, Speicherung, Verwaltung und Verarbeitung großer Mengen von Multimedia-Dokumenten, die nicht nur aus Texten bestehen, sondern Graphiken, Fotos sowie Video- und Tonsequenzen beinhalten, spielt in multimedialen Informationssystemen eine zentrale Rolle. Die Anwendbarkeit dieser Systeme hängt sehr stark davon ab, inwieweit der Zugriff auf diese Daten sowie deren effiziente Erschließung und Indexierung unterstützt wird. Ein Thema der Vorlesung sind daher neue Ansätze aus dem Bereich des Information Retrieval, die einen inhaltsorientierten, struktur- orientierten oder Kontext/Meta-Datenorientierten Zugriff auf Multimedia-Dokumente ermöglichen. Ein weiteres Themengebiet sind neue Konzeptionen für Multimedia-Informationen-RetrievalProgrammier- und Benutzungsschnittstellen. Diese haben insbesondere im Bereich der Multimedia-Informationssysteme eine hohe Relevanz, da konventionelle Anfragesprachen und die darauf basierenden Interfaces auf die Erfordernisse und Möglichkeiten des bislang vorherrschenden textorientierten Information Retrieval zugeschnitten sind. Ziel der Vorlesung ist es, einen einführenden Überblick über aktuelle Technologien sowie zum gegenwärtigen Stand der Forschung und Entwicklung in den relevanten Themengebieten Multimediatechnologien sowie Hypermedia- und Multimedia-Information-Retrieval- Methoden und -Technologien zu geben. Kurs 01876: Die Archivierung von Multimediadaten soll deren Langzeitverfügbarkeit gewährleisten, d. h. die volle Originalität und Funktionalität eines digitalen Objekts auch für eine zukünftige Nutzung garantieren. Die Vorlesung befasst sich neben der Vorstellung einschlägig relevanter MultimediaStorage, -Server, - Content Management-Lösungen aus der produktiven Praxis auch mit teilweise bereits im Einsatz oder gerade in der Entstehung befindlichen Technologien und Systemen sowie notwendigen technischen Formaten und Normen zur Berücksichtigung des technologischen Wandels innerhalb der Archivierungsdauer. Welche Strategien sollten eingeschlagen werden, um multimediale Datenbestände mit vertretbarem Aufwand langfristig zugänglich und nutzbar halten zu können? Hierbei wird zwischen verschiedenen Anwendungen aus dem klassischen Bibliothekswesen, aber insbesondere auch auf die speziellen Anforderungen von Broadcast-, Produktions-und Re-Use-Szenarien eingegangen. Die in der Vorlesung behandelten Aspekte umfassen Technologien für Digitale Master of Science in Praktischer Informatik 01.12.2015 Bibliotheken, Aufbau und Struktur multimedialer Datenobjekte und korrespondierender Metadatenschemata. Weiterhin werden Techniken für die Segmentierung, Verfahren für die Sicherung von Authenzitität und Integrität, Methoden für die Extraktion von semantischen Informationen sowie der Repräsentation komplexer Verknüpfungen diskutiert. Weiterhin werden die aus informatischer Sicht relevanten rechtlichen Regelungen und urheberrechtlichen Beschränkungen skizziert. Lernergebnisse / Kompetenzen: Die Studierenden beherrschen die wichtigsten allgemeinen Begriffe, Modelle und Methoden der aktuellen Technologien sowie den gegenwärtigen Stand der Forschung und Entwicklung in den relevanten Themengebieten Multimediatechnologien sowie Hypermedia- und Multimedia-Information-RetrievalMethoden und den dazu korrespondierenden Technologien und können diese zuordnen und innerhalb exemplarischer Technologie- und Anwendungensentwicklungen in den relevanten Themengebieten Multimediatechnologien sowie zu Hypermedia- und Multimedia-InformationRetrieval-Methoden anwenden. Die Studierenden beherrschen die wichtigsten Beispiele, Problemschilderungen, Erfahrungsberichte und Best-Practice-Lösungsansätze zur Sicherung der langfristigen Verfügbarkeit digitaler nicht-textueller Medien. Literatur: Inhaltliche Voraussetzungen: Kenntnisse aus dem Kurs 01873 "Daten- und Dokumentenmanagement im Internet" Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur oder Klausurersatzgespräch bestanden Voraussetzung Anmeldung LN: Modulverantwortliche/r: Matthias Hemmje Lehrende: Matthias Hemmje Master of Science in Praktischer Informatik 01.12.2015 Vertiefung Datenstrukturen und Datenbanken mit den beiden Kursen 01662 Datenstrukturen II Durchführung: in jedem Sommersemester, in der zweiten Hälfte des Semesters 01676 SWS: 2+1 Moving Objects Databases I Durchführung: in jedem Sommersemester, in der ersten Hälfte des Semesters Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein oder drei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Kurseinheiten: 160 Stunden Bearbeitung der Einsendeaufgaben inkl. Verarbeitung des Korrektur: 80 Stunden Wiederholung und Prüfungsvorbereitung, Prüfung: 60 Stunden 01662: Dieser Kurs vermittelt Kenntnisse zu Graph-Algorithmen, geometrischen Algorithmen und Datenstrukturen, sowie zum externen Suchen und Sortieren. Zu den Graph-Algorithmen gehören etwa der Algorithmus von Dijkstra zur Bestimmung kürzester Wege, die Berechnung der transitiven Hülle eines Graphen oder eines minimalen Spannbaumes. Einen Schwerpunkt dieses Kurses bilden Algorithmen zur Behandlung geometrischer Probleme mittels Plane-Sweep und Divide- and Conquer-Techniken. Dabei werden auch Datenstrukturen für Intervallmengen wie Segment-Bäume und Intervallbäume eingeführt. Schließlich werden B-Bäume und externe Sortierverfahren behandelt. 01676: The course offers an introduction to a new research area in databases termed "moving objects databases". The goal is to extend database technology to be able to represent any kind of moving entity in a database and to ask queries about them. Moving objects can be classified as moving points or moving regions. Examples of moving points are people, animals, or vehicles; examples of moving regions are hurricanes, forest fires, or oil spills in the sea. For querying, one would like to ask about the current or anticipated near future movement as well as analyze movement histories in the past. The course describes data models and query languages for moving objects. Lernergebnisse / Kompetenzen: 01662: Erfolgreiche Studierende beherrschen die wesentlichen Konzepte von Graphen und geometrischen Algorithmen und Datenstrukturen. Sie sind in der Lage, Plane-Sweep oder Divide-and-Conquer-Techniken für die Lösung geometrischer Probleme einzusetzen und entsprechende Programme zu entwickeln. Sie können die Laufzeit und den Platzbedarf solcher Programme bestimmen und somit effiziente Lösungen entwickeln. 01676: Students have a deep understanding of modeling approaches for nonstandard database applications. They can explain data models such as the MOST model, or the model of spatio-temporal data types, dealing with current and near future movement, or history of movement, respectively. They can describe the integration of such approaches into the relational model and formulate queries. They can also describe the needed extensions of DBMS implementation. Literatur: R.H. Güting und S. Dieker, Datenstrukturen und Algorithmen. 3. Aufl., Teubner- Master of Science in Praktischer Informatik 01.12.2015 Verlag Stuttgart, 2004. T. Ottmann und P. Widmayer, Algorithmen und Datenstrukturen. 5. Aufl., Spektrum Akademischer Verlag, Heidelberg, 2012. R.H. Güting and M. Schneider, Moving Objects Databases. Morgan Kaufmann Publishers / Elsevier, Amsterdam, 2005. P. Rigaux, M. Scholl, and A. Voisard, Spatial Databases: With Application to GIS. Morgan-Kaufmann Publishers, San Francisco, 2002. Inhaltliche Voraussetzungen: 01662: Kenntnisse aus dem Kurs Datenstrukturen I des Bachelor-Studiengangs 01676: Kenntnisse der Konzepte von Standard-Datenbanksystemen. Vertiefte Kenntnisse zur Implementierung von Datenbanksystemen, etwa anhand des Kurses 01664. Anmerkung: Nicht zusammen mit dem Modul Moving Objects Databases nutzbar Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur oder Klausurersatzgespräch bestanden Voraussetzung Anmeldung LN: Modulverantwortliche/r: Ralf Hartmut Güting Lehrende: Ralf Hartmut Güting Master of Science in Praktischer Informatik 01.12.2015 Katalog M, Bereich M4 Software Engineering und Programmiersprachen Logisches und funktionales Programmieren mit dem Kurs 01816 Logisches und funktionales Programmieren Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten 130 - 150 Stunden, bearbeiten der Übungsaufgaben 60 - 75 Stunden, Prüfungsvorbereitung 60 - 75 Stunden Inhalt: Der Kurs enthält eine Einführung in die wichtigsten Programmiertechniken für nicht- imperative Programmiersprachen. Im ersten Teil werden Techniken der logischen Programmierung am Beispiel von Prolog gezeigt. Außerdem werden die in Prolog verwendete Beweisstrategie sowie nicht-logische Anteile zur praktischen Programmierung behandelt. Im zweiten Teil werden Techniken aus funktionalen Programmiersprachen am Beispiel des Lisp-Dialekts Scheme demonstriert. Neben klassischen Methoden (Funktionen höherer Ordnung) werden auch Datenabstraktion, strom- und objektorientierte Programmiertechniken vorgestellt. Zusätzlich werden am Beispiel der Sprache Haskell Konzepte aus modernen funktionalen Sprachen erläutert. Im dritten Teil werden Ansätze zur Integration der logischen und funktionalen Programmierung vorgestellt. Darüberhinaus werden verschiedene neuere Entwicklungen im Bereich dieser beiden Programmierparadigmen behandelt. So wird auch auf das logische Programmieren mit Constraints eingegangen, das sich als besonders vielversprechender Ansatz zur deklarativen Programmierung herausgestellt hat und bereits in vielen Anwendungen erfolgreich eingesetzt wurde. Lernergebnisse / Kompetenzen: Die Studierenden können grundlegende Aspekte nichtimperativer Programmiersprachen und deren wichtigste Programmiertechniken beschreiben. Sie sind in der Lage, diese Techniken in logischen und funktionalen Programmen anzuwenden. Sie können die spezielle Ausdruckskraft und Flexibilität des logischen und funktionalen Programmierens erklären und diese bei der Erstellung logischer und funktionaler Programme demonstrieren. Literatur: W. F. Clocksin, C. S. Mellish: Programming in Prolog. Springer, Berlin, 5. Auflage, 2003 L. Sterling, E. Shapiro: The Art of Prolog. MIT Press, 2. Auflage, 1994. H. Abelson, G. J. Sussman: Structure and Interpretation of Computer Programs, MIT Press, 2. Auflage, 1996. Inhaltliche Voraussetzungen: keine Anmerkung: Master of Science in Praktischer Informatik 01.12.2015 keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: wird im Kursanschreiben angegeben Modulverantwortliche/r: Christoph Beierle Lehrende: Christoph Beierle Master of Science in Praktischer Informatik 01.12.2015 Vertiefung Software Engineering und Programmiersprachen A (SA, FP) mit den beiden Kursen 01798 Software-Architektur Durchführung: in jedem Wintersemester, in der ersten Hälfte des Semesters 01852 SWS: 2+1 Fortgeschrittene Konzepte funktionaler Programmierung Durchführung: in jedem Sommersemester, verteilt über das gesamte Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: zwei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: 01798: 75 Stunden Bearbeitung des Kurstextes, 40 Stunden Bearbeitung der Übungs- und Einsendeaufgaben 35 Stunden Nachbearbeitung und Klausur- bzw. Prüfungsvorbereitung 01852: Bearbeiten der Kurseinheiten 65 - 70 Stunden, bearbeiten der Übungsaufgaben 30 - 40 Stunden, Prüfungsvorbereitung 30 - 40 Std 01798: Wegen der stetig zunehmenden Komplexität und Größe von Software treten verstärkt Fragestellungen in den Vordergrund, die sich mit der Strukturierung, der Organisation und dem Aufbau von Softwaresystemen beschäftigen. Von besonderem Interesse sind dabei die Kommunikation zwischen Systemteilen und die Konstruktion von Systemen aus Komponenten. Die Architektur eines Software-Systems beschreibt die verschiedenen Strukturen des Systems und legt das Zusammenwirken der Systemkomponenten fest. Der Kurs erläutert zunächst allgemein, welche Strukturen in diesem Zusammenhang von Interesse sind und wie sie beschrieben werden können. Insbesondere unterscheidet er zwischen den Strukturen, die dem dynamischen Verhalten von Systemen zugrunde liegen, und den statischen Strukturen der Software des Systems. Er gibt eine Einführung in den Entwurf und die Bewertung von Architekturen und in wichtige Architekturmuster. Zur Vertiefung werden Programmgerüste und Komponentenarchitekturen behandelt. Darüber hinaus geht der Kurs auf relevante informelle und formale Beschreibungstechniken ein. 01852: Der Kurs widmet sich weiterführenden Themen funktionaler Programmierung, die über die grundlegenden Aspekte des Kurses "Logisches und funktionales Programmieren" (01816) hinausgehen, sowie einigen wichtigen theoretischen Grundlagen funktionaler Programmiersprachen. Zu Beginn werden die besonderen Konzepte moderner funktionaler Sprachen wie z.B. strenge Typisierung, parametrischer Polymorphismus, Datentypen und Pattern Matching am Beispiel der Sprache ML vorgestellt. Die mathematische Fundierung funktionaler Sprachen ermöglicht die formale Behandlung von Programmen. Dies wird anhand verschiedener Methoden zum Beweis von Programmeigenschaften oder aber auch zur Programmtransformation demonstriert. Als formale Grundlagen werden der Lambda-Kalkül sowie das Typsystem von Hindley/Milner erläutert. Schließlich wird das Verständnis funktionaler Programmiersprachen durch die Beschreibung verschiedener Implementierungsaspekte vertieft. Master of Science in Praktischer Informatik 01.12.2015 Lernergebnisse / Kompetenzen: 01798: Die Studierenden kennen Fragestellungen und Lösungsansätze des Faches Softwarearchitektur. Sie sind in der Lage, Strukturfragen bei der Konstruktion von Software besser zu verstehen und Techniken der Softwarearchitektur in eigenen Softwareprojekten angemessen einzusetzen. 01852: Die Studierenden sind in der Lage, fortgeschrittene Konzepte funktionaler Programmierung zu präsentieren. Sie können die Typisierung und die formale Behandlung funktionaler Programme erklären und Beispielprogramme in einer typisierten, funktionalen Sprache konstruieren. Literatur: R Reussner, W Hasselbring Handbuch der Software-Architektur (dpunkt Verlag 2006). L Bass, P Clements, R Kazman Software Architecture in Practice 2. Ausgabe (Addison Wesley, 2003) M. Erwig: Grundlagen funktionaler Programmierung. Oldenbourg Verlag, 1999 Inhaltliche Voraussetzungen: 01798: Es werden Programmierkenntnisse vorausgesetzt, möglichst in Java, wie sie z. B. durch den Kurs 01618 Einführung in die objektorientierte Programmierung vermittelt werden. Achtung: Kurstitel ist zwar deutsch, Kurs ist aber in englischer Sprache. 01852: Kenntnisse in funktionaler Programmierung, z.B. aus dem Kurs 01816 Logisches und funktionales Programmieren. Anmerkung: Nicht zusammen mit den Modulen Vertiefung Software Engineering und Programmiersprachen B (WP, FP) oder C (WP, SA) nutzbar Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur oder Klausurersatzgespräch bestanden Voraussetzung Anmeldung LN: 01798: keine, 01852: wird im Kursanschreiben angegeben Modulverantwortliche/r: Christoph Beierle, Friedrich Steimann Lehrende: Christoph Beierle, Friedrich Steimann Master of Science in Praktischer Informatik 01.12.2015 Vertiefung Software Engineering und Programmiersprachen B (WP, FP) mit den beiden Kursen 01796 Web-Programmierung Durchführung: in jedem Semester, verteilt über das gesamte Semester 01852 SWS: 3 Fortgeschrittene Konzepte funktionaler Programmierung Durchführung: in jedem Sommersemester, verteilt über das gesamte Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein bis drei Semster SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: 01796: Bearbeitung der Kurseinheiten: 90 Stunden Bearbeitung des Übungsaufgaben: 30 Stunden Nachbereitung und Prüfungsvorbereitung, sowie Prüfung: 30 Stunden 01852: Bearbeiten der Kurseinheiten 65 - 70 Stunden, bearbeiten der Übungsaufgaben 30 - 40 Stunden, Prüfungsvorbereitung 30 - 40 Stunden 01796: Gegenstand des Kurses ist die methodische Entwicklung von Internetbasierten Anwendungsprogrammen. Der Kurs beginnt mit Basistechnologien des World Wide Web: IP, TCP, UDP, HTTP, (X)HTML, XML und Sessions. Anschließend wird ein Überblick über weitere Technologien, Programmiersprachen, Medien und Anwendungen gegeben, die im Internet-Umfeld einen hohen Verbreitungsgrad haben. Für die Entwicklung von Anwendungsprogrammen wird mit der Java EESpezifikation eine Standardarchitektur vorgestellt, die zur Implementierung der Benutzungsschnittstelle auf dem Server Servlets und JavaServer Pages (JSPs) vorsieht, sowie für den Anwendungskern Enterprise JavaBeans (EJBs) und Entities. Mit JavaServer Faces (JSF) wird ein Framework hinzugezogen, das auf der JSPTechnik und Servlets basiert und für die Entwicklung von grafischen Benutzungsoberflächen verwendet wird. Darüber hinaus werden Softwarearchitekturmuster und Softwarearchitekturen für Internet-basierte Anwendungsprogramme vorgestellt und ausgewählte Entwurfsmuster näher betrachtet. 01852: Der Kurs widmet sich weiterführenden Themen funktionaler Programmierung, die über die grundlegenden Aspekte des Kurses "Logisches und funktionales Programmieren" (01816) hinausgehen, sowie einigen wichtigen theoretischen Grundlagen funktionaler Programmiersprachen. Zu Beginn werden die besonderen Konzepte moderner funktionaler Sprachen wie z.B. strenge Typisierung, parametrischer Polymorphismus, Datentypen und Pattern Matching am Beispiel der Sprache ML vorgestellt. Die mathematische Fundierung funktionaler Sprachen ermöglicht die formale Behandlung von Programmen. Dies wird anhand verschiedener Methoden zum Beweis von Programmeigenschaften oder aber auch zur Programmtransformation demonstriert. Als formale Grundlagen werden der Lambda-Kalkül sowie das Typsystem von Hindley/Milner erläutert. Schließlich wird das Verständnis funktionaler Programmiersprachen durch die Beschreibung verschiedener Implementierungsaspekte vertieft. Master of Science in Praktischer Informatik 01.12.2015 Lernergebnisse / Kompetenzen: 01796: Die Studierenden beherrschen die Grundlagen der Web-Programmierung. Sie sind in der Lage, kleinere Java-Web-Anwendungen eigenständig zu implementieren. 01852: Die Studierenden sind in der Lage, fortgeschrittene Konzepte funktionaler Programmierung zu präsentieren. Sie können die Typisierung und die formale Behandlung funktionaler Programme erklären und Beispielprogramme in einer typisierten, funktionalen Sprache konstruieren. Literatur: H.-W. Six, M. Winter: Kurs 01793 „Software Engineering I – Methodische Entwicklung objektorientierter Desktop-Applikationen“ Fernuniversität in Hagen, 2006 Oracle: The Java EE 7 Tutorial: http://docs.oracle.com/javaee/7/tutorial/doc M. Erwig: Grundlagen funktionaler Programmierung. Oldenbourg Verlag, 1999. Inhaltliche Voraussetzungen: 01796: Vertiefte Kenntnisse in Software Engineering z.B. aus Kurs 01793, Erfahrung in der Softwareentwicklung mit der Programmiersprache Java 01852: Kenntnisse in funktionaler Programmierung, z.B. aus dem Kurs 01816 Logisches und funktionales Programmieren Anmerkung: Nicht zusammen mit den Modulen Vertiefung Software Engineering und Programmiersprachen A (SA, FP) oder C (WP, SA) nutzbar, nicht zusammen mit dem nicht mehr angebotenen Modul Software Engineering II nutzbar Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur oder Klausurersatzgespräch bestanden Voraussetzung Anmeldung LN: 01852: wird im Kursanschreiben angegeben Modulverantwortliche/r: Christoph Beierle, Jörg Desel Lehrende: Christoph Beierle, Jörg Desel Master of Science in Praktischer Informatik 01.12.2015 Vertiefung Software Engineering und Programmiersprachen C (WP, SA) mit den beiden Kursen 01796 Web-Programmierung Durchführung: in jedem Semester, verteilt über das gesamte Semester 01798 SWS: 3 Software-Architektur Durchführung: in jedem Wintersemester, in der ersten Hälfte des Semesters Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein bis drei Semster SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Inhalt: 01796: Bearbeitung der Kurseinheiten: 90 Stunden Bearbeitung des Übungsaufgaben: 30 Stunden Nachbereitung und Prüfungsvorbereitung, sowie Prüfung: 30 Stunden 01798: 75 Stunden Bearbeitung des Kurstextes, 40 Stunden Bearbeitung der Übungs- und Einsendeaufgaben 35 Stunden Nachbearbeitung und Klausur- bzw. Prüfungsvorbereitung 01796: Gegenstand des Kurses ist die methodische Entwicklung von Internetbasierten Anwendungsprogrammen. Der Kurs beginnt mit Basistechnologien des World Wide Web: IP, TCP, UDP, HTTP, (X)HTML, XML und Sessions. Anschließend wird ein Überblick über weitere Technologien, Programmiersprachen, Medien und Anwendungen gegeben, die im Internet-Umfeld einen hohen Verbreitungsgrad haben. Für die Entwicklung von Anwendungsprogrammen wird mit der Java EESpezifikation eine Standardarchitektur vorgestellt, die zur Implementierung der Benutzungsschnittstelle auf dem Server Servlets und JavaServer Pages (JSPs) vorsieht, sowie für den Anwendungskern Enterprise JavaBeans (EJBs) und Entities. Mit JavaServer Faces (JSF) wird ein Framework hinzugezogen, das auf der JSPTechnik und Servlets basiert und für die Entwicklung von grafischen Benutzungsoberflächen verwendet wird. Darüber hinaus werden Softwarearchitekturmuster und Softwarearchitekturen für Internet-basierte Anwendungsprogramme vorgestellt und ausgewählte Entwurfsmuster näher betrachtet. 01798: Wegen der stetig zunehmenden Komplexität und Größe von Software treten verstärkt Fragestellungen in den Vordergrund, die sich mit der Strukturierung, der Organisation und dem Aufbau von Softwaresystemen beschäftigen. Von besonderem Interesse sind dabei die Kommunikation zwischen Systemteilen und die Konstruktion von Systemen aus Komponenten. Die Architektur eines Software-Systems beschreibt die verschiedenen Strukturen des Systems und legt das Zusammenwirken der Systemkomponenten fest. Der Kurs erläutert zunächst allgemein, welche Strukturen in diesem Zusammenhang von Interesse sind und wie sie beschrieben werden können. Insbesondere unterscheidet er zwischen den Strukturen, die dem dynamischen Verhalten von Systemen zugrunde liegen, und den statischen Strukturen der Software des Systems. Er gibt eine Einführung in den Entwurf und die Bewertung von Architekturen und in wichtige Architekturmuster. Zur Vertiefung werden Programmgerüste und Master of Science in Praktischer Informatik 01.12.2015 Komponentenarchitekturen behandelt. Darüber hinaus geht der Kurs auf relevante informelle und formale Beschreibungstechniken ein. Lernergebnisse / Kompetenzen: 01796: Die Studierenden beherrschen die Grundlagen der Web-Programmierung. Sie sind in der Lage, kleinere Java-Web-Anwendungen eigenständig zu implementieren. 01798: Die Studierenden kennen Fragestellungen und Lösungsansätze des Faches Softwarearchitektur. Sie sind in der Lage, Strukturfragen bei der Konstruktion von Software besser zu verstehen und Techniken der Softwarearchitektur in eigenen Softwareprojekten angemessen einzusetzen. Literatur: H.-W. Six, M. Winter: Kurs 01793 „Software Engineering I – Methodische Entwicklung objektorientierter Desktop-Applikationen“ Fernuniversität in Hagen, 2006 Oracle: The Java EE 7 Tutorial: http://docs.oracle.com/javaee/7/tutorial/doc R Reussner, W Hasselbring Handbuch der Software-Architektur (dpunkt Verlag 2006). L Bass, P Clements, R Kazman Software Architecture in Practice 2. Ausgabe (Addison Wesley, 2003) Inhaltliche Voraussetzungen: 01796: Vertiefte Kenntnisse in Software Engineering z.B. aus Kurs 01793, Erfahrung in der Softwareentwicklung mit der Programmiersprache Java 01798: Es werden Programmierkenntnisse vorausgesetzt, möglichst in Java, wie sie z. B. durch den Kurs 01618 Einführung in die objektorientierte Programmierung vermittelt werden. Achtung: Kurstitel ist zwar deutsch, Kurs ist aber in englischer Sprache. Anmerkung: Nicht zusammen mit den Modulen Vertiefung Software Engineering und Programmiersprachen A (SA, FP) oder B (WP, FP) nutzbar, nicht zusammen mit dem nicht mehr angebotenen Modul Software Engineering II nutzbar Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur oder Klausurersatzgespräch bestanden Voraussetzung Anmeldung LN: 01798: keine Modulverantwortliche/r: Jörg Desel, Friedrich Steimann Lehrende: Jörg Desel, Friedrich Steimann Master of Science in Praktischer Informatik 01.12.2015 DSL Engineering mit dem Kurs 01888 Domänenspezifische Sprachen Durchführung: in jedem Wintersemester, auch SS 2016 Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semster SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeitung der Kurseinheiten: 150 Stunden Bearbeitung der Übungsaufgaben: 80 Stunden Nachbereitung und Prüfungsvorbereitung, sowie Prüfung: 70 Stunden Domänenspezifische Sprachen sind formale Sprachen, die speziell für ein bestimmtes Anwendungsgebiet, die „Domäne“, entworfen wurden. Sie übernehmen häufig in der Domäne gebräuchliche Notationen und grenzen sich so von Allzwecksprachen wie beispielsweise Java oder UML ab. Damit soll es Domänenexpertinnen leichter gemacht werden, sich in einer für ihre Zwecke nützlichen Sprache auszutauschen. Damit domänenspezifische Sprachen wirklich nützlich sind, bedürfen sie umfassender Werkzeugunterstützung, wie man sie von allgemeinen Programmierund Modellierungssprachen her gewohnt ist. Da der Nutzerkreis domänenspezifischer Sprachen im allgemeinen aber kleiner ist, ist es für deren Erfolg wichtig, dass sich diese Werkzeuge mit wenig Aufwand herstellen lassen. Sog. Language workbenches, mit denen integrierte Entwicklungsumgebungen für formale Sprachen relativ leicht entwickelt werden können, gehören daher zur Entwicklung domänenspezifischer Sprachen fest dazu. Dieser leittextgestützte Kurs befasst sich mit dem relativ jungen Thema des Entwurfs und der Werkzeugunterstützung domänenspezifischer Sprachen. Er basiert auf dem Buch DSL Engineering von Markus Voelter. Das Buch ist in verschiedenen Formen über http://dslbook.squarespace.com/ erhältlich und kann vor Belegung des Kurses zur Ansicht heruntergeladen werden (zu empfehlen!). Lernergebnisse / Kompetenzen: Die Studierenden sollen eine Vorstellung von Zweck und Nutzen domänenspezifischer Sprachen entwickeln. Sie sollen sich Kenntnisse vom technischen Aufwand der Implementierung solcher Sprachen und ihrer Werkzeuge erarbeiten und sollen abzuschätzen lernen, wann sich die Entwicklung einer domänenspezifischen Sprache lohnt. Literatur: Basistext: M. Voelter: DSL Engineering - Designing, Implementing and Using Domain-Specific Languages, dslbook.org, 2013 oder http://dslbook.squarespace.com ergänzend: Martin Fowler, Domain Specific Languages, Addison-Wesley 2010 Inhaltliche Voraussetzungen: Fundierte Programmierkenntnisse, beispielsweise erworben durch Bearbeitung der Kurse 01618 oder 01814, sind unabdingbar. Außerdem sind gute Engischkenntnisse unverzichtbar, da der Basistext in englischer Sprache verfasst ist. Anmerkung: Master of Science in Praktischer Informatik 01.12.2015 Der Basistext muss vor Semesterbeginn beschafft werden. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: keine Modulverantwortliche/r: Friedrich Steimann Lehrende: Friedrich Steimann Master of Science in Praktischer Informatik 01.12.2015 Katalog M, Bereich M7 Computer und Mensch Informationsvisualisierung im Internet mit dem Kurs 01870 Informationsvisualisierung im Internet Durchführung: grundlegend überarbeitet wieder ab WS 2017/18 Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: s. Kurse Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeitung der Kurseinheiten: 7 mal 20 Stunden = 140 Stunden Einüben der Inhalte: 7 mal 15 Stunden = 105 Stunden Wiederholung und Prüfungsvorbereitung = 55 Stunden Inhalt: Informationsvisualisierung kann Menschen wesentlich darin unterstützen, den Umfang von Informationskollektionen zu erfassen, deren Beschaffenheit zu verstehen und darin enthaltene relevante Informationen zu erkennen. Angemessene Visualisierungsmethoden für den Einsatz in Benutzungsschnittstellen von Informationssystemen zu finden, gewinnt daher zunehmend an Bedeutung. Der Kurs führt zunächst in grundlegende Begrifflichkeiten und Modelle der Informationsvisualisierung ein und gibt einen kurzen Überblick über die Zusammenhänge zwischen Informationsvisualisierung, visueller Wahrnehmung und Kognition. Anschliessend werden die wichtigsten Informationsvisualisierungstechniken kategorisiert sowie deren grundlegende Methoden und Eigenschaften ausführlich vorgestellt. Es folgt eine Darstellung von Methoden zur Evaluation von Informationsvisualisierungstechniken, die Definition eines Evaluationsmodells sowie die beispielhafte Evaluation ausgewählter Informationsvisualisierungstechniken. Der Kurs wendet sich daraufhin der Diskussion von Technologien und Informationsvisualisierungsarchitekturen zu. Hier kommen insbesondere die "Virtual Reality Modeling Language" (VRML), eine Beschreibungssprache für dreidimensionale Objekte und Szenen sowie das External Authoring Interface (EAI) zur Realisierung von integrierten Informationsvisualisierungsarchitekturen im Zusammenwirken mit anderen Anwendungen und Diensten zur Sprache. Die Übung bearbeitet und vertieft dabei gezielt den Entwurf von Informationsvisualisierungsanwendungen. Lernergebnisse / Kompetenzen: Die Studierenden beherrschen die wichtigsten allgemeinen Begriffe, Modelle und Methoden der Informationsvisualisierung und können diese innerhalb exemplarischer Technologien und Anwendungen der Informationsvisualisierung zuordnen sowie innerhalb eigener Entwürfe und Modellierungen von Informationsvisualisierungen in Benutzungsschnittstellen zu Informationssystemen anwenden. Literatur: Colin Ware: Information Visualization. Morgan Kaufmann, 2004 Rikk Carey, Gavin Bell: The Annotated Vrml 2.0 Reference Manual, Addison Wesley, 1997 Don Brutzman, Leonard Daly: X3D. Extensible 3D Graphics for Web Authors, Morgan Kaufmann, 2007 Inhaltliche Voraussetzungen: Master of Science in Praktischer Informatik 01.12.2015 Anmerkung: der Kurs wurde im WS 2015/16 letztmals angeboten, danach nach grundlegender Überarbeitung voraussichtlich wieder im WS 2017/18 Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur Voraussetzung Anmeldung LN: Modulverantwortliche/r: Matthias Hemmje Lehrende: Matthias Hemmje Master of Science in Praktischer Informatik 01.12.2015 Computerunterstütztes kooperatives Arbeiten und Lernen mit den beiden Kursen 01880 Computerunterstütztes kooperatives Arbeiten (CSCW) Durchführung: in jedem Sommersemester, verteilt über das gesamte Semester 01883 SWS: 2+1 Computerunterstütztes kooperatives Lernen (CSCL) Durchführung: in jedem Sommersemester, verteilt über das gesamte Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein oder drei Semester SWS: 2+1 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (8 mal 20 Stunden): 160 Stunden Bearbeitung der Einsendeaufgaben (8 mal 5 Stunden): 40 Stunden Mitwirkung an den Diskussionen in der Kurs-Newsgroup: 30 Stunden Wiederholung und Prüfungsvorbereitung: 70 Stunden Inhalt: Der Kurs 01880 behandelt verschiedene Aspekte der Rechnerunterstützung für Gruppen von Personen, die gemeinsam an einem Problem arbeiten. Nach den Grundlagen des kooperativen Arbeitens werden die im 3K-Modell definierten Systemklassen, Kommunikation, gemeinsame Informationsräume, Workflow Management und Workgroup Computing betrachtet und an Beispielen illustriert. Abschließend widmet sich der Kurs der Realisierung von synchroner Groupware. Der Kurs 01883 behandelt das Thema des computerunterstützten kooperativen Lernens (CSCL) aus interdisziplinärer Sicht. Er bietet eine anwendungsorientierte Einführung in das Forschungsgebiet CSCL und soll Erfahrung in der selbstständigen Einarbeitung in ein interdisziplinäres Forschungsgebiet vermitteln. Dazu werden die Themenbereiche Grundlagen, Werkzeuge, Didaktische Konzepte sowie Umsetzungen und Perspektiven von CSCL behandelt. Lernergebnisse / Kompetenzen: Die Teilnehmer entwickeln ein vertieftes Verständnis über die interdisziplinären Grundlagen und Forschungsmethoden im Forschungsgebiet CSCW/CSCL. Sie können begründete Entwurfsentscheidungen bei der Entwicklung von CSCW/CSCLSystemen treffen und bestehende CSCW/CSCL-Systeme bzgl. ihrer Verwendbarkeit in verschiedenen Anforderungssituationen auswählen und bewerten. Sie können sich selbstständig interdisziplinäre Arbeiten erschließen und ein übergreifendes Begriffsverständnis erarbeiten. Darüber hinaus können sie die Ergebnisse von Evaluationsstudien bezüglich ihrer Aussagekraft beurteilen. Durch die Teilnahme an Internet-Diskussionsgruppen wird das Einüben wissenschaftlicher Kommunikation gefördert. Literatur: Basistext zu 01883 ist das Buch: Haake, G. Schwabe, M. Wessner (Hrsg.): CSCLKompendium 2.0 - Lehr- und Handbuch zum computerunterstützten kooperativen Lernen. Oldenbourg Verlag, München, 2012. Teufel, S., C. Sauter, T. Mühlherr und K. Bauknecht: Computerunterstützung für die Gruppenarbeit . Addison-Wesley, 1995. Borghoff, U. M. und J. H. Schlichter: Computer-Supported Cooperative Work. Springer-Verlag Berlin Heidelberg New York, 2000. Schwabe, G., N. Streitz und R. Unland (Hrsg.): CSCW-Kompendium. SpringerVerlag Berlin Heidelberg New York, 2001. Schümmer, Till und Stephan Lukosch: Patterns for Computer-Mediated Interaction. Master of Science in Praktischer Informatik 01.12.2015 John Wiley & Sons, Ltd., 2007. Inhaltliche Voraussetzungen: Grundkenntnisse in Programmierung. Grundkenntnisse Betriebssysteme (Prozesse) und Rechnernetze (Protokolle), z.B. aus Kurs 01801. Kenntnisse in Verteilten Systemen (Kurs 01678) sind hilfreich. Anmerkung: Der Basistext muss vor Semesterbeginn beschafft werden. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): in jedem Kurs Kursabschlussklausur oder Klausurersatzgespräch bestanden Voraussetzung Anmeldung LN: Modulverantwortliche/r: Jörg M. Haake Lehrende: Jörg M. Haake Master of Science in Praktischer Informatik 01.12.2015 Gestaltung Kooperativer Systeme mit dem Kurs 01884 Gestaltung Kooperativer Systeme Durchführung: in jedem Wintersemester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4+2 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Kurseinheiten (7 mal 20 Stunden): 140 Stunden Bearbeitung der Einsendeaufgaben: 50 Stunden Mitwirkung an den Diskussionen in der Kurs-Newsgroup: 40 Stunden Wiederholung und Prüfungsvorbereitung: 70 Stunden Inhalt: In diesem Kurs werden Gestaltungskonzepte kooperativer Systeme anhand von Entwurfsmustern vermittelt. Diese werden in den Übungen am Entwurf eines konkreten kooperativen Systems praktisch eingeübt. Neben dem gestalterischen Aspekt betrachten die Teilnehmenden des Moduls philosophische und ethische Grundlagen kooperativer Systeme. So wird diskutiert, wie Identität in virtuellen Gemeinschaften herausgebildet, wie Gruppenprozesse unterstützt, Kommunikation gestaltet und gegenseitige Wahrnehmung in kooperativen Systemen hergestellt und in den Arbeitsalltag der Nutzenden eingebettet werden kann. Hierauf aufbauend werden die Teilnehmenden in die Lage versetzt, in einem partizipativen Entwurfsprozess ein kooperatives System sowohl aus Benutzungssicht als auch aus technischer Sicht zu gestalten. Hierzu werden Entwurfsmuster als zentrales Werkzeug eingesetzt. Diese sind auf verschiedenen Abstraktionsebenen angesiedelt (Virtuelle Gemeinschaft, Arbeitsgruppe, Gruppenbewusstsein und Technologie) und erlauben einen holistischen Blick auf computerunterstützte virtuelle Gemeinschaften und Kleingruppen. Ergänzt werden die Muster durch konkrete Beispiele kooperativer Systeme und neuere Trends (z.B. bei der Unterstützung mobiler Kooperation). Basistext ist das Buch "Patterns for Computer- Mediated Interaction" (s. Literatur). Lernergebnisse / Kompetenzen: Die Teilnehmenden entwickeln ein vertieftes Verständnis für das Design von kooperativen Systemen, sowohl Kenntnisse auf technischer Gestaltungsebene als auch auf sozio-technischer Ebene. Studierende können nach Abschluss des Moduls Kooperationsprozesse analysieren und auf kooperative Systeme abbilden. Neben diesen fachspezifischen Zielen verbessern die Studierenden wichtige Schlüsselqualifikationen: Verteilte Kooperation über das Internet, Verständnis von Gruppenprozessen und Gruppeninteraktion, Erschließung englischer Fachliteratur und Bewertung der Folgen des Einsatzes von soziotechnischen Systemen. Literatur: Basistext ist das Buch: Schümmer, Till und Stephan Lukosch: Patterns for ComputerMediated Interaction. John Wiley & Sons, Ltd., 2007 Crumlish, C. und Malone, E.: Designing Social Interfaces. O’Reilly, 2009. Greenberg, S., Carpendale, S., Marquardt, N. und Buxton, B.: Sketching User Experiences: The Workbook. Elsevier, 2011. Gross, T. und Koch, M.: Computer-Supported Cooperative Work, Odenbourg, 2007. Master of Science in Praktischer Informatik 01.12.2015 Neil, T.: Mobile Design Pattern Gallery. O’Reilly, 2014. Preece, J., Rogers, Y. und Sharp, H.: Interaction Design. John Wiley & Sons, Ltd., 2015. Inhaltliche Voraussetzungen: Englische Sprachkenntnisse; da der Kurs auf englischer Literatur basiert. Anmerkung: Der Basistext muss vor Semesterbeginn beschafft werden. Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene benotete mündliche Modulprüfung Stellenwert Note: 1/6 Voraussetzung Anmeldung Prüfung: keine oder Leistungsnachweis (LN): bestandene Kursabschlussklausur oder bestandenes Klausurersatzgespräch Voraussetzung Anmeldung LN: Modulverantwortliche/r: Jörg M. Haake Lehrende: Till Schümmer Master of Science in Praktischer Informatik 01.12.2015 Praktika Programmierpraktikum mit dem Kurs 01580 Programmierpraktikum Durchführung: in jedem Semester Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Semester Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Programmieraufgaben: 250 Stunden Überarbeitung der Teillösungen gemäß Rückmeldung (sofern notwendig): 40 Stunden Teilnahme an Präsenzphase (sofern angekündigt): 10 Stunden Inhalt: Im Programmierpraktikum wird den Teilnehmenden eine Programmieraufgabe vorgegeben, anhand derer die Teilnehmenden die Bedeutung der Modularisierung schätzen lernen. Die Teilnehmenden bearbeiten die Programmieraufgabe zu Hause. Während der Bearbeitungszeit werden die Fragen der Teilnehmenden mit Hilfe der Praktikumsnewsgroup und per E-Mail von den Betreuenden beantwortet. Auf Basis der eingereichten Teillösungen erhalten die Teilnehmenden detailliertes Feedback und ggf. eine Aufforderung, innerhalb einer Nachfrist Änderungen durchzuführen. Bei der Ankündigung des Praktikums wird darüber informiert, ob eine Präsenzphase in Hagen stattfindet.Sofern eine Präsenzphase angekündigt wird, stellen die Teilnehmenden ihre Lösung am Semesterende in Hagen vor. Lernergebnisse / Kompetenzen: Die Teilnehmenden können eine größere Programmieraufgabe selbstständig lösen und hierzu ein objektorientiertes Programm entwerfen und realisieren, welches die vorgegebene Anforderungsspezifikation erfüllt. Sie können dazu in einer modernen objektorientierten Programmierumgebung (Java, Eclipse) ein Programm implementieren, testen und dokumentieren. Die dabei anfallenden Dateien und Versionen können sie mittels eines Versionenverwaltungssystems (z.B. CVS) verwalten. Sie können zudem Kommentare und Änderungsspezifikationen verstehen und umsetzen sowie fachbezogene Diskussionen mit den Betreuenden führen. Literatur: Inhaltliche Voraussetzungen: Für die Teilnahme am Programmierpraktikum sind fundierte Java-Kenntnisse erforderlich. Diese können im Kurs 01618 Einführung in die objektorientierte Programmierung erworben werden. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Master of Science in Praktischer Informatik 01.12.2015 Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Jörg M. Haake Lehrende: Hochschullehrende der Informatik Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Eingebettete Systeme mit dem Kurs 01514 Fachpraktikum Eingebettete Systeme Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Sommersemester Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Inhalt: Bearbeiten der Heim-Versuche (7 mal 30 Stunden): 210 Stunden Vor- und Nachbereitung der Präsenzphase: 50 Stunden Präsenzphase und Studientag: 40 Stunden In diesem Fachpraktikum sollen die Studierenden in die Lage versetzt werden, ihr in der Theorie (z. B. in den Kursen 1608, 1609 und 1706) erarbeitetes Wissen in der Praxis anzuwenden. Dafür wird zum einen ein Mikrocontroller-System, zum anderen ein frei programmierbares Logik-System (FPGA - Field Programmable Gate Array) inklusive der benötigten Software-Entwicklungsumgebungen zur Verfügung gestellt. Jeder Teilnehmer bzw. jede Teilnehmerin wird sich im Rahmen des Praktikums intensiv mit einem der beiden Systeme auseinandersetzen. - Die Entwicklung von Programmen für das Mikrocontroller-System erfolgt in Assembler. Der Teilnehmer/die Teilnehmerin führt die Programmierung verschiedener Steuer- und Regel-Anwendungen durch, die auf den Signalen unterschiedlichster Sensoren basieren und die umfangreichen PeripherieKomponenten des Mikrocontrollers verwenden. - Die Funktionalität des FPGA-Systems wird mittels einer HardwareBeschreibungssprache (VHDL - Very High Speed Integrated Circuit Hardware Description Language) realisiert. Dazu wird ein erster Einstieg in VHDL geboten, in dem die Grundstrukturen der Sprache vermittelt werden. Es werden einfache Hardware-Komponenten, wie Schieberegister, Addierer usw., aber auch komplexere Komponenten, wie z.B. Speichercontroller (SRAM, DRAM), realisiert. Lernergebnisse / Kompetenzen: Die Praktikumsteilnehmer sammeln praktische Erfahrungen mit den oben genannten komplexen Hardware-Systemen und ihrer Programmierung. Dadurch wiederholen und vertiefen sie den Stoff, der ihnen bereits aus grundlegenden Kursen der Technischen Informatik (z.B. den FernUni-Kursen 1609 "Computersysteme II" und 1706 "Anwendungsorientierte Mikroprozessoren") bekannt ist. Während der Präsenzphase lernen sie, komplexe Problemstellungen zunächst in Kleingruppen zu bearbeiten und die erstellten Lösungen allen Teilnehmer zu präsentieren und zu diskutieren. Nach Abschluss der Präsenzphase müssen sie ihre Ergebnisse in einer ausführlichen Versuchsbeschreibung darstellen und einsenden. Literatur: Pong P. Chu: "Embedded SoPC design with Nios II processor and VHDL examples", Wiley, 2011 (Dieses Buch wird den TeilnehmerInnen im Rahmen des Praktikums geliehen.) Kurs 01608 "Computersysteme I" und Kurs 01609 "Computersysteme II" Kurs 01706 "Anwendungsorientierte Mikroprozessoren" Master of Science in Praktischer Informatik 01.12.2015 optional: Helmut Bähring: "Anwendungsorientierte Mikroprozessoren: Mikrocontroller und Digitale Signalprozessoren", Springer-Verlag, 2010 Inhaltliche Voraussetzungen: Grundlagenwissen zu Mikroprozessoren, wie z.B. aus dem Kurs 1609 "Computersysteme II" und dem Kurs 1706 "Anwendungsorientierte Mikroprozessoren", sowie grundlegende Programmier-Kenntnisse Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Helmut Bähring Lehrende: Helmut Bähring, Jörg Lenhardt, Andreas Kleimann Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum CSCW mit dem Kurs 01592 Fachpraktikum CSCW Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: alle drei bis vier Semester Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Bearbeiten des Gruppenprojekts: 260 Stunden Teilnahme an beiden Präsenzphasen: 40 Stunden Inhalt: Dieses Fachpraktikum behandelt Design und Implementierung von CSCW-Systemen (Groupware). Die Teilnehmenden entwickeln in einer Projektgruppe ein konkretes CSCW-System. Insbesondere werden Methoden für die Anforderungsermittlung, den Entwurf, die Realisierung, den Test und die Dokumentation von GroupwareAnwendungen (d.h. von Anwendungen für die Unterstützung von Gruppenarbeit, CSCW) erlernt und in der Gruppe eingeübt. Neben diesen technischen Aspekten der Softwareentwicklung werden Methoden für die Organisation der Projektarbeit ("Software Engineering in the large") in einem verteilten Team behandelt. Im Fachpraktikum nutzen die Projektgruppen moderne Entwicklungsumgebungen, Groupware-Werkzeuge und Versionierungssysteme. Das Projektmanagement zur Bearbeitung der Entwicklungsaufgabe wird vom Team durchgeführt. Die Teilnehmenden des Praktikums erhalten die Möglichkeit, während des Praktikums verschiedene Rollen aus der Projektarbeit einzuüben. Jedes Team stellt seine Ergebnisse in einer Abschlusspräsentation vor. Lernergebnisse / Kompetenzen: Die Teilnehmenden entwickeln ein tiefergehendes Verständnis für die Probleme und Lösungsalternativen bei der Realisierung von Groupware-Anwendungen und/oder den zugrundeliegenden Frameworks/Toolkits. Sie können eine GroupwareAnwendung spezifizieren, entwerfen und in einer objektorientierten Programmierumgebung realisieren, testen und dokumentieren. Sie besitzen die Kompetenz zu verteilter Teamarbeit, insbesondere zur Wahrnehmung von Rollen im Projektmanagement, bei der Nutzung verteilter Entwicklungsumgebungen sowie in gemeinsamen Arbeitsumgebungen. Sie beherrschen den Einsatz von Versionierungssystemen und Groupware-Werkzeugen zur Unterstützung der Arbeit eines verteilten Projektteams. Literatur: Literatur zu den genutzten Programmiersprachen und ggf. Frameworks wird zum Beginn des Praktikums bekannt gegeben. Inhaltliche Voraussetzungen: Für die Teilnahme am Fachpraktikum sind fundierte Kenntnisse der objektorientierten Software-Entwicklung (vor allem Design und Implementierung) erforderlich. Hilfreich sind fundierte Kenntnisse in Verteilten Systemen und Kooperativen Systemen, wie sie in den Kursen 01678 Verteilte Systeme, 1880 CSCW oder 1884 Gestaltung kooperativer Systeme erworben werden können. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Master of Science in Praktischer Informatik 01.12.2015 Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Jörg M. Haake Lehrende: Jörg M. Haake Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Erweiterbare Datenbanksysteme mit dem Kurs 01590 Fachpraktikum Erweiterbare Datenbanksysteme Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in 2 von 3 WS Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Zum Praktikum gehören 3 kurze Präsenzphasen in Hagen zu Anfang, zwischen den beiden Abschnitten, und am Ende des Semesters. Zwischen den Präsenzphasen arbeiten die Teilnehmer miteinander und mit den Betreuern über das Internet zusammen. Inhalt: Einarbeitung vor Beginn des Praktikums: 12 Stunden Erste Präsenzphase: 20 Stunden Bearbeiten von Programmieraufgaben des ersten Abschnitts: 120 Stunden Zweite Präsenzphase: 24 Stunden Teamarbeit des zweiten Praktikumsabschnitts: 120 Stunden Abschlusspräsentation: 4 Stunden Am Lehrgebiet "Datenbanksysteme für neue Anwendungen" wird seit einigen Jahren ein Prototyp eines erweiterbaren Datenbanksystems, genannt SECONDO, entwickelt. SECONDO implementiert kein festes DBMS-Datenmodell, sondern bietet eine Architektur, einen Systemrahmen und wohldefinierte Schnittstellen für die Realisierung verschiedener Datenmodelle. Als Erweiterungen kann man z.B. Implementierungen von Nicht-Standard-Datentypen (Polygone, Bilder, chemische Formeln, ...), neue Indexstrukturen oder Join-Methoden, Optimierungsregeln oder Kostenfunktionen ins System einbringen. Im Praktikum sollen kleine Gruppen von jeweils etwa 6 Personen zusammenarbeiten. In einem ersten Praktikumsabschnitt ist eine Reihe von Aufgaben zu bearbeiten, um Erweiterungstechniken für SECONDO kennenzulernen. Im zweiten Abschnitt ist eine größere Erweiterungsaufgabe von der Gruppe mit mehr Selbständigkeit und Kreativität zu lösen. In diesem Abschnitt werden auch Erfahrungen des Projektmanagements vermittelt. Die gemeinsam entwickelte Software wird in einem Versionierungssystem verwaltet, so dass schon während der Entwicklung laufend Integrationstests möglich sind. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme besitzen Studierende ein eingehendes Verständnis der Architektur und Implementierung von Datenbanksystemen anhand eines konkreten Systems, das über die in einem klassischen Kurs vermittelbaren Kenntnisse weit hinausgeht. Sie sind in der Lage, Erweiterungen des Datenbanksystems für spezielle Anwendungen auf der Ebene des Kernsystems und der graphischen Benutzerschnittstelle einzubringen, ggf. auch des Optimierers. Sie können neue Attributdatentypen für Relationen und Operationen für die Anfrageauswertung implementieren. Sie können ein größeres Problem in Teilaufgaben zerlegen und die verteilte Arbeit im Team über das Internet organisieren. Sie besitzen hervorragende Voraussetzungen für eine Abschlussarbeit am Lehrgebiet "Datenbanksysteme für neue Anwendungen" im Bereich erweiterbarer Datenbanksysteme und des Master of Science in Praktischer Informatik 01.12.2015 Secondo-Prototypen. Literatur: R.H. Güting, T. Behr, C. Düntgen: SECONDO: A Platform for Moving Objects Database Research and for Publishing and Integrating Research Implementations. IEEE Data Engineering Bulletin 33:2 (2010), 56-63. R.H. Güting, V. Almeida, D. Ansorge, T. Behr, Z. Ding, T. Höse, F. Hoffmann, M. Spiekermann: SECONDO: An Extensible DBMS Platform for Research Prototyping and Teaching. 21st Intl. Conf. on Data Engineering (ICDE, Tokyo, Japan), 2005, 1115-1116. R.H. Güting, T. Behr, C. Düntgen: Trajectory Databases. In: C. Renso, S. Spaccapietra, E. Zimanyi (Eds.), Mobility Data: Modeling, Management and Understanding. Cambridge University Press (2013), 42-61. J. Lu, R.H. Güting: Parallel SECONDO: Practical and Efficient Mobility Data Processing in the Cloud. SCDM, IEEE International Conference on Big Data, 2013. F. Valdés, M.L. Damiani, R.H. Güting: Symbolic Trajectories in SECONDO: Pattern Matching and Rewriting. 18th Intl. Conf. on Database Systems for Advanced Applications, Wuhan, China, April 2013, 450-453. Inhaltliche Voraussetzungen: Gute Kenntnisse von Datenbanksystemen. Gute Programmierkenntnisse und fähigkeiten in C++ und Java. Wir gehen davon aus, dass gute Java-Programmierer bereit und in der Lage sind, sich in die Programmierung in C++ einzuarbeiten; dies sollte vor Beginn des Praktikums erfolgen. Wer PROLOG-Kenntnisse besitzt, hat die Chance, Erweiterungen am Optimierer vorzunehmen (optional). Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Ralf Hartmut Güting Lehrende: Ralf Hartmut Güting Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Prozessmodellierungswerkzeuge mit dem Kurs 01593 Fachpraktikum Prozessmodellierungswerkzeuge Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: alle 2 bis 3 Jahre Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Praktikum mit zwei Präsenzphasen, eine zu Beginn und eine am Ende der Veranstaltung Präsenzphasen: 50 Stunden Präsentationsvorbereitung: 10 Stunden Entwurf und Implementierung von Algorithmen im Team: 240 Stunden Inhalt: Am Lehrgebiet "Softwaretechnik und Theorie der Programmierung" wird seit einigen Jahren das Werkzeug "VIPtool" zur Synthese von Petrinetzen und anderen Modellen verschiedener Prozessbeschreibungssprachen entwickelt. Es handelt sich dabei um eine Java-basierte Plattform. Die Funktionalität des Werkzeugs wird durch Plug-Ins bzw. durch das Zusammenspiel von Plug-Ins realisiert. Im Praktikum geht es darum, neue Algorithmen im Bereich der Prozesssynthese zu entwickeln und durch Plug-Ins zu realisieren. Dabei soll das Praktikum neben Erfahrungen in der Implementierung komplexer Systeme Kompetenz für aktuelle relevante Fragestellungen bei der Prozesssynthese vermitteln. Erfolgreiche Absolventen haben eine sehr gute Grundlage für eine Abschlussarbeit in diesem Gebiet. Lernergebnisse / Kompetenzen: Erfolgreiche Absolventen verfügen über Erfahrungen in der projektorientierten Softwareentwicklung, insbesondere in den Bereichen Planung, Umsetzung und Integration verschiedener Softwaremodule in kleineren Gruppen. Da sich die Funktionalitäten der zu entwickelnden Softwaremodule an die Forschungsthemen des Lehrgebietes anlehnen, haben die Absolventen Kenntnisse im Bereich der Prozessmodellierungssprachen und sind in der Lage, auf Grundlage wissenschaftlicher Literatur effiziente Algorithmen zu implementieren. Literatur: Inhaltliche Voraussetzungen: Vertiefte Fertigkeiten in der Programmierung mit Java. Erfolgreiche Bearbeitung des Kurses 1793. Sicherer Umgang mit mathematischer Notation. Wünschenswert sind zudem Erfahrungen mit Prozessbeschreibungssprachen wie z.B. Petrinetze, BPMN, EPK, UML activity diagrams, auch aus der beruflichen Praxis. Hilfreich ist auch der erfolgreiche Besuch des Programmierpraktikums mit einem Thema aus diesem Bereich. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: Master of Science in Praktischer Informatik 01.12.2015 oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Jörg Desel Lehrende: Jörg Desel Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Multimedia- und Internetanwendungen mit dem Kurs 01594 Fachpraktikum Multimedia- und Internetanwendungen Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: 1 x jährlich Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Präsenzphasen: 50 Stunden Präsentationsvorbereitung: 10 Stunden Entwurf und Implementierung von Algorithmen im Team: 240 Stunden Inhalt: Im Fachpraktikum Internet- und Multimediaanwendungen bieten wir den Studierenden die Möglichkeit im Team ein webbasiertes Informationssystem mittels aktueller Internettechnologien prototypisch zu erstellen. Mittels aktueller Internettechnologien und offene Standards im Umfeld von serviceorientierten Architekturen, Semantic Web, Datenmanagement und Information Retrieval entstehen so Komponenten, Rahmenwerke und Anwendungen für die semantische Datenanreicherung und Wiederverwendung von Daten. Die entsprechenden Anforderungen ergeben sich aus diversen Forschungs- und Entwicklungsprojekten die am Lehrgebiet durchgeführt werden. Die Bearbeitung der gestellten Aufgaben erfolgt dabei modular in kooperierenden Kleingruppen. Die Natur der gestellten Aufgaben setzt einen für die Softwareentwicklung entsprechend ausgestatteten Rechner mit Internetzugang voraus. Die Kommunikation mit den Teilnehmern über Skype oder Adobe Connect, mindestens aber per E-Mail, ist dabei unabdingbar. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme am Fachpraktikum beherrschen Studierende den praktischen Umgang mit neuesten Internettechnologien und sind in der Lage, die Erfahrungen und Kompetenzen direkt im Berufsleben einzusetzen. Zudem erwerben die Teilnehmer Erfahrungen und Kompetenzen in Teamarbeit und Aufgabenorganisation im Team. Sie wissen, wie man Ziele eigenständig definiert und wie diese durch Projekthandbücher durchgesetzt werden. Sie können ausgeführte Arbeiten in einer Abschlusspräsentation vorstellen und vertreten. Sie können schriftliche Dokumentationen und implementierte Module in einem Versionierungssystem (Subversion) ablegen. Literatur: Inhaltliche Voraussetzungen: Kenntnisse in JAVA und objektorientierter Softwareentwicklung werden vorausgesetzt, Erfahrungen im Umgang mit Eclipse, Maven und SVN sind wünschenswert. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: Master of Science in Praktischer Informatik 01.12.2015 oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Matthias Hemmje Lehrende: Matthias Hemmje Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Programmiersysteme mit dem Kurs 01595 Fachpraktikum Programmiersysteme Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: alle 2 bis 3 Jahre Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Inhalt: Gemeinsame Präsenzphase in Hagen und Abschlusspräsentation: 50 Stunden Einarbeitung in die theoretischen Grundlagen: 25 Stunden Entwicklung eines Softwaredesigns im Team: 25 Stunden Planung und Durchführung der Implementierung: 150 Stunden Entwurf und Implementierung von Testfällen: 50 Stunden Domain Specific Languages (DSLs) sind das Mittel der Wahl, um ein Problem in einem spezifischen Kontext, der Domäne, zu lösen. Sie werden so entworfen, dass sie optimal auf die Darstellung der Probleme innerhalb der Domäne zugeschnitten sind. Unterstützt wird die Entwicklung mit DSLs durch passende Entwicklungsumgebungen. Im Rahmen des Fachpraktikums soll für eine vorgegebene DSL von Grund auf eine Entwicklungsumgebung geschaffen werden, welche das Arbeiten mit der DSL erlaubt. Die Entwicklungsumgebung soll dabei unter anderem einen Parser, einen Compiler und einen Texteditor mit Syntaxhervorhebung und Werkzeugunterstützung für das Schreiben von Code umfassen. Zwar existieren zahlreiche Werkzeuge, welche bei der Implementierung von DSLs unterstützen, jedoch soll im Rahmen dieses Praktikums bewusst auf die Verwendung solcher Systeme verzichtet werden, um die Konzeption und Implementierung eines komplexen Programms an einem überschaubaren Beispiel zu üben. Das Praktikum wird in Gruppen zu 4-5 Studierenden durchgeführt. Die Teams sollen sich und insbesondere ihren Entwicklungsprozess selbst organisieren. Für die Entwicklung der Software ist ein Versionskontrollsystem einzusetzen, welches vom Lehrgebiet zur Verfügung gestellt wird. Die Ergebnisse werden in einem Abschlussgespräch per Webkonferenz präsentiert. Lernergebnisse / Kompetenzen: Nach Abschluss des Moduls - sind Studierende in der Lage, in Gruppenarbeit ein größeres Programm zu erstellen. - können sie zu einer gegebenen Grammatik einen Scanner und Parser entwerfen. - sind sie in der Lage, für eine gegebene Sprache Semantikprüfung und Codegenerierung zu implementieren. - wissen sie, wozu Regressionstests wichtig sind, und können sie in Programme einbinden. Literatur: Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Monica S. Lam. Compilers: Principles, Techniques, and Tools, Second Edition (Pearson Education, Inc, 2006) Inhaltliche Voraussetzungen: Master of Science in Praktischer Informatik 01.12.2015 Das Fachpraktikum richtet sich an Studierende mit Interesse an anwendungsorientierter, objektorientierter Programmierung. Die Aufgabe ist dergestalt aufgebaut, dass unterschiedlichste Problemfelder berührt werden, wie etwa Parser, Semantikprüfer, Codegeneratoren, Tests – Interesse in Richtung eines dieser Felder wird also benötigt. Weiterhin wird der sichere Umgang mit wenigstens einer bekannten, objektorientierten Programmiersprache, wie zum Beispiel Java (der über eine Belegung des Kurses 01618 hinausgeht und beispielsweise in einem Programmierpraktikum erworben wurde), vorausgesetzt. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Friedrich Steimann Lehrende: Friedrich Steimann Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Simulation von diskreten Produktionssystemen mit dem Kurs 01596 Fachpraktikum Simulation von diskreten Produktionssystemen Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: alle 2 bis 3 Jahre Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Bearbeiten der Aufgaben des Fachpraktikums 210 Stunden, Vorbereitung und Durchführung der Präsenztage in Hagen 90 Stunden Inhalt: Im Fachpraktikum werden anhand von vorgegebenen Problemstellungen aus der Produktionsdomäne Simulationsstudien unter Verwendung eines gegebenen kommerziellen Simulators in kleinen Gruppen durchgeführt. Die zu bearbeitenden Problemstellungen sind typischerweise an praxisrelevante Fragestellungen, zumeist aus der Hochtechnologiebranche, angelehnt. Nach einer Analyse der zu lösenden Probleme werden geeignete Simulationsmodelle entwickelt. Diese werden in einem ersten Schritt verifiziert und validiert. Anschließend werden mit Hilfe dieser Simulationsmodelle die in der jeweiligen Simulationsstudie zu beantwortenden Fragen untersucht. Falls die Standard-funktionalität des Simulators nicht ausreicht, sind geeignete Erweiterungen der Funktionalität unter Verwendung der Programmiersprache C++ vorzunehmen. Die Ergebnisse sind unter Verwendung von einfachen statistischen Methoden auszuwerten und zu interpretieren. Vorschläge zur Lösung der Problemstellungen sind zu entwickeln und im Rahmen eines Vortrags vorzustellen und zu begründen. Lernergebnisse / Kompetenzen: Die Studierenden lernen, eigenständig Simulationsstudien durchzuführen. Es werden weiterhin Kenntnisse in der problemspezifischen Anpassung kommerzieller Simulationssoftware erworben. Die Studierenden sind dazu befähigt, eigenständig eine Problemanalyse durch zuführen und darauf aufbauend Simulationsmodelle zu entwickeln. Sie sind in der Lage, Simulationsmodelle eigenständig zu verifizieren und zu validieren. Die Studierenden sind dazu befähigt, die Ergebnisse der Simulationsstudie unter Verwendung einfacher statistischer Methoden auszuwerten und zu interpretieren. Die Studierenden sind in der Lage, die Ergebnisse einer Simulationsstudie überzeugend zu präsentieren. Sie erkennen die Möglichkeiten und die Grenzen der stochastischen diskreten Simulation. Literatur: Law, A. M. Simulation Modeling and Analysis, 4. Auflage, McGraw Hill, 2007. B. L. Nelson. Foundations and Methods of Stoachastic Simulation: A First Course. Springer, 2013. Inhaltliche Voraussetzungen: Erfolgreicher Abschluss des Moduls "Entscheidungsmethoden in unternehmensweiten Softwaresystemen" Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Master of Science in Praktischer Informatik 01.12.2015 Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Lars Mönch Lehrende: Lars Mönch Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Parallel Programming mit dem Kurs 01597 Fachpraktikum Parallel Programming Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: alle 2 bis 3 Jahre Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Erstellung eines Pflichtenhefts für die Praktikumsaufgabe 50 Stunden, Erarbeitung eines Softwarekonzepts im Team 50 Stunden, Implementierung und Test der Software 150 Stunden Studientage und Präsentation der Software 50 Stunden Inhalt: Heutige Parallelrechner bestehen häufig aus Standard-PCs, die über ein schnelles Verbindungsnetzwerk miteinander verbunden sind. Im Fachpraktikum soll eine größere Programmieraufgabe auf einem derartigen Cluster-Computer in Gruppen von drei bis fünf Teilnehmern gelöst werden. Die Aufgabenstellung wird am Anfang des Semesters während eines Präsenztermins in Hagen bekanntgegeben und ausführlich erläutert. Außerdem wird in die Benutzung des Cluster-Computers eingeführt, es werden die Teams gebildet und Strategien zum Projektmanagement festgelegt. Bei der kooperativen Softwareentwicklung werden Versionierungssysteme verwendet. Die erarbeiteten Lösungen werden am Ende des Semesters bei einer zweiten Präsenzphase in Hagen durch eine Abschlusspräsentation vorgestellt und mit den Betreuern diskutiert. Die Programmierung erfolgt in der Programmiersprache C/C++. Mit Hilfe der standardisierten Programmierschnittstellen PVM und MPI wird der nachrichtenbasierte Datenaustausch der parallel auf dem Cluster-Computer ablaufenden Tasks programmiert. Lernergebnisse / Kompetenzen: Nachdem die Studierenden das Modul bearbeitet haben, können sie komplexe Problemstellungen in Teamarbeit lösen, parallelisierbare Komponenten identifizieren, auf die Ziel-Prozessorarchitektur verteilen, eine Softwareimplementierung für diese Rechnerarchitektur konstruieren, Testfälle generieren und damit die parallele Implementierung evaluieren, Fehler in der Implementierung identifizieren und beheben, Optimierungsmöglichkeiten gegenüberstellen und beurteilen, die Implementierung rekonstruieren und somit eine möglichst gut angepasste parallele Softwareimplementierungen für die gegebene Problemstellungen entwickeln. Literatur: Wird je nach Aufgabenstellung bekanntgegeben Inhaltliche Voraussetzungen: Erfolgreicher Abschluss des Moduls "Parallel Programming", Kurs 01727 (Parallele Programmierung und Grid Computing) oder der Nachweis einer gleichwertigen Qualifikation. Gute Programmierkenntnisse in C. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Master of Science in Praktischer Informatik 01.12.2015 Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Wolfram Schiffmann Lehrende: Jörg Keller, Wolfram Schiffmann Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum für verteilte Kooperative und Mobile Anwendungen mit dem Kurs 01598 Fachpraktikum für verteilte Kooperative und Mobile Anwendungen Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: in jedem Wintersemester Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Präsenzphase 70 Stunden, Heimarbeit 230 Stunden Inhalt: Im Fachpraktikum für verteilte Kooperative und Mobile Anwendungen bieten wir den Studierenden die Möglichkeit, im Team ein komplexes Softwareprodukt aufgrund aktueller Internettechnologien zu erstellen. In diesem Praktikum werden Dienste ähnlich der bekannten sozialen Netze (Facebook, hi5, Xing, linkedin, …) erstellt und erweitert, oder mobile Systeme unter Google Android auf der Grundlage von Service-basierten Architekturen erstellt. Als Basistechnologien innerhalb dieses Fachpraktikums setzen wir die offenen Standards (z.B. die des W3C), Service-orientierte Architekturen, Subversion und Java/JavaScript/J2EE ein. Die Bearbeitung der gestellten Aufgaben erfolgt in Kleingruppen. Die Natur der gestellten Aufgaben setzt einen entsprechend ausgestatteten Rechner mit Internetzugang voraus. Die Kommunikation mit den Teilnehmern über Skype oder Jabber und mit Email, ist dabei unabdingbar. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme am Fachpraktikum können Studierende die neuesten Internettechnologien praktisch anwenden. Sie haben Erfahrungen in Teamarbeit und Aufgabenorganisation erworben. Sie wissen außerdem, wie man Ziele eigenständig definiert und wie diese durch Projekthandbücher durchgesetzt werden. Sie haben Erfahrungen mit dem Einsatz von Projektmanagementprogrammen und sie können mit einem Versionskontrollsystem umgehen. Literatur: Inhaltliche Voraussetzungen: Kenntnisse in JAVA und objektorientierter Softwareentwicklung werden vorausgesetzt, Erfahrungen im Umgang mit Eclipse, Maven und SVN sind wünschenswert. Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung; Bestehen eines Eingangstests, der während der Master of Science in Praktischer Informatik 01.12.2015 vorlesungsfreien Zeit verschickt wird Modulverantwortliche/r: Dominic Heutelbeck Lehrende: Dominic Heutelbeck Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum IT-Sicherheit mit dem Kurs 01599 Fachpraktikum IT-Sicherheit Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: alle 2 bis 3 Jahre Dauer Modul: ein Semester SWS: 4 Detaillierter studentischer Arbeitsaufwand: Bearbeitung Aufgaben Phase 1: 150 Stunden Bearbeitung Aufgaben Phase 2: 100 Stunden Dokumentation u. Präsentation: 50 Stunden Inhalt: In diesem Fachpraktikum sollen die in den Kursen Sicherheit im Internet I+II vermittelten Kenntnisse anhand praktischer Aufgabenstellungen angewendet werden. Jeder Praktikumsteilnehmer erhält Zugang zu einem zentralen Übungsrechner, auf dem er einen eigenen virtuellen Linux-Rechner schützen soll. Hierzu sind ein gesicherter Zugang (VPN), eine Firewall, ein Application-Level Gateway, ein Intrusion Detection System und weitere Werkzeuge zur Sicherung zu installieren, zu konfigurieren und zu testen. Anschließend wird in Gruppen eine größere Aufgabenstellung wie die Installation und Konfigurationen eines VPN zwischen mehreren Gruppen kollaborativ gelöst. Neben diesen Arbeiten obliegt auch die Organisation des Managements dieses Projekts den Studierenden. Die erarbeiteten Lösungen werden versioniert (z.B. cvs, subversion) und am Ende des Semesters in einer Präsenzphase in Hagen vorgestellt und mit den Betreuern diskutiert. Lernergebnisse / Kompetenzen: Nach erfolgreicher Bearbeitung können Studierende die üblichen Werkzeuge der IT Sicherheit bedienen und konfigurieren. Sie sind in der Lage, die Funktionsfähigkeit von Firewalls nach Änderungen der Konfiguration zu überprüfen. Sie kennen die relevanten Log-Dateien und können die Bedeutung von Einträgen interpretieren. Die Teilnehmer sind in der Lage, sich in einem Team zu organisieren, effizient an der Lösung einer Aufgabe zu arbeiten, und die dabei auftretenden Differenzen einer Lösung zuzuführen. Die Teilnehmer können ihre Entscheidungen und Maßnahmen bei Administration und Installation von Werkzeugen der IT-Sicherheit begründen und präsentieren. Literatur: Inhaltliche Voraussetzungen: Erfolgreiche Bearbeitung eines der Kurse 01866 oder 01867 Sicherheit im Internet I/II bzw. äquivalente Kenntnisse Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Master of Science in Praktischer Informatik 01.12.2015 Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Jörg Keller Lehrende: Jörg Keller Master of Science in Praktischer Informatik 01.12.2015 Fachpraktikum Mensch-Computer-Interaktion mit dem Kurs 01513 Fachpraktikum Mensch-Computer-Interaktion Durchführung: s. http://www.fernuni-hagen.de/mathinf/studium/lehre/praktika/informatik_vorschau Arbeitsaufwand: 300 Stunden ECTS-Punkte: 10 Häufigkeit: alle 2 bis 3 Jahre Dauer Modul: ein Semster SWS: 4 Detaillierter studentischer Arbeitsaufwand: Bearbeitung des Projektes: 250 Stunden Präsentation der Ergebnisse: 50 Stunden Inhalt: Im Fachpraktikum des Lehrgebiets Mensch-Computer-Interaktion werden aktuelle Probleme aus dem Bereich der Entwicklung interaktiver und intelligenter Systeme bearbeitet. Dazu gehören insbesondere die Verarbeitung komplexer Sensorsignale wie etwa Video-, Audio- oder 3DDaten sowie die Anwendung von Methoden des maschinellen Lernens (z.B. Reinforcement Learning). Auch Verfahren des maschinellen Sehens wie z.B. bild- oder videobasierte Merkmalerkennung oder Segmentierung können zum Aufgabenspektrum des Fachpraktikums gehören. Darüber hinaus können je nach Aufgabenstellung auch Roboter des Interaktionslabors in Hagen verwendet werden, für deren Steuerung die Studierenden Ihre Lösungsansätze zunächst in Simulationen testen, bevor sie in der Abschlussphase des Fachpraktikums auf den realen Robotern zum Einsatz kommen. Das entwickelte Softwaresystem wird in einer Abschlussveranstaltung präsentiert. Lernergebnisse / Kompetenzen: Erfolgreiche Absolventinnen und Absolventen verfügen nach dem Praktikum über Kenntnisse des aktuellen Forschungsstands eines Gebietes der Entwicklung interaktiver und intelligenter Systeme. Sie haben die Fähigkeit erworben, auf der Grundlage von wissenschaftlicher Originalliteratur eigene Lösungskonzepte für aktuelle Forschungsfragen der Mensch-Computer-Interaktion zu entwickeln. Im Rahmen der Softwareentwicklung in Teamarbeit haben die Absolventen und Absolventinnen eine koordinierte Arbeitsteilung zur gemeinsamen Lösung eines komplexen Problems erlernt. Dies umfasst die Ausbildung bestimmter Rollen im Projektmanagement (z.B. Projektleitung), die Verwendung von kollaborativen Entwicklungswerkzeugen (z.B. git) und eine fachgerechte Dokumentation der Komponenten des implementierten Systems. Darüber hinaus sind sie in der Lage, ihre Arbeiten in einer Abschlussveranstaltung zu präsentieren und zu vertreten. Literatur: wird je nach Aufgabenstellung bekanntgegeben Inhaltliche Voraussetzungen: Die in den Kursen „Interaktive Systeme I + II“ erworbenen oder äquivalente Kenntnisse sind wünschenswert. Des Weiteren sollen die Teilnehmer und Teilnehmerinnen über praktische Programmiererfahrung in den Sprachen C/C++ oder Java verfügen. Anmerkung: Keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Master of Science in Praktischer Informatik 01.12.2015 Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreich bearbeitete Praktikumsaufgabe Voraussetzung Anmeldung LN: Teilnahmevoraussetzung: eine bestandene mdl. Prüfung Modulverantwortliche/r: Gabriele Peters Lehrende: Gabriele Peters Master of Science in Praktischer Informatik 01.12.2015 Betriebspraktikum mit einem Betriebspraktikum Durchführung: ständig SWS: - Arbeitsaufwand: 900 Stunden ECTS-Punkte: 30 Häufigkeit: ständig Dauer Modul: mehrere Monate Detaillierter studentischer Arbeitsaufwand: Das Betriebspraktikum wird in einem Unternehmen oder einer Organisation durch Durchführung konkreter Aufgaben und Tätigkeiten aus der Praktischen Informatik geleistet. Der Studierende verfasst einen Praktikumsbericht (Mustervorlage im Studiengangsportal rechts auf der Seite "Anrechnungen"), in dem er die durchgeführten Aufgaben und Tätigkeiten mit dem jeweiligen Stundenumfang auflistet und kurz inhaltlich skizziert. Der Arbeitgeber bestätigt die Richtigkeit der im Bericht gemachten Angaben (insbesondere durchgeführte Aufgaben und Tätigkeiten mit dem jeweiligen Stundenumfang). Der Studierende reicht den Praktikumsbericht mit der Bestätigung des Arbeitgebers ein. Der Modulverantwortliche prüft die Unterlagen, führt bei Unklarheiten Gespräche mit dem Arbeitgeber oder dem Studierenden, und stellt bei Erfüllung der Anforderungen den Leistungsnachweis aus. Bei Problemen während der Durchführung des Betriebspraktikums steht der Modulverantwortliche als Ansprechpartner zur Verfügung. Inhalt: Studierende mit weniger als 210 ECTS-Punkten im Studiengang, der Zugangsvoraussetzung ist, können im Betriebspraktikum durch den Nachweis berufspraktischer Erfahrungen und Kompetenzen in der Praktischen Informatik 30 ECTS-Punkte erwerben. Lernergebnisse / Kompetenzen: Das Betriebspraktikum vermittelt den Studierenden durch Durchführung konkreter Aufgaben und Tätigkeiten aus der Praktischen Informatik in einem Unternehmen oder einer Organisation berufspraktische Erfahrungen und Kompetenzen in der Praktischen Informatik. Sie lernen typische Aufgaben und Tätigkeiten aus der Praktischen Informatik kennen, die für die spätere Berufspraxis relevant sind. Weiterhin unterstützen diese Erfahrungen die Einordnung der Studieninhalte vor dem Hintergrund konkreter Berufspraxis. Da die Spannbreite relevanter Erfahrungen und Kompetenzen groß und auch abhängig vom gewählten Unternehmen bzw. der gewählten Organisation ist, verfasst der Studierende einen Praktikumsbericht, in dem er die durchgeführten Aufgaben und Tätigkeiten mit dem jeweiligen Stundenumfang auflistet und kurz inhaltlich skizziert. Literatur: Inhaltliche Voraussetzungen: Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Master of Science in Praktischer Informatik 01.12.2015 Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): posisitv begutachteter Praktikumsbericht Voraussetzung Anmeldung LN: bei Abgabe des Praktikumsberichts: eine bestandene mdl. Prüfung Modulverantwortliche/r: Jörg M. Haake Lehrende: Betreuende im Unternehmen Master of Science in Praktischer Informatik 01.12.2015 Seminare Seminar mit einem von ca. 10 Seminaren Durchführung: in jedem Semester Arbeitsaufwand: 150 Stunden ECTS-Punkte: 5 Häufigkeit: in jedem Semester Dauer Modul: ein Semester SWS: 2 Detaillierter studentischer Arbeitsaufwand: Inhalt: Themenauswahl: 8 Stunden Erarbeiten der vorgegebenen Literatur und weitere Literaturrecherche, Lesen weiterer Artikel: 40 Stunden Erstellen der schriftlichen Ausarbeitung: 40 Stunden Erstellen der Präsentation, Üben des Vortrags: 40 Stunden Präsenzphase: 12 - 24 Stunden Seminare sind einem bestimmten Thema gewidmet und haben eine begrenzte Teilnehmerzahl. Wegen der Berufstätigkeit der Studierenden werden die Präsenzphasen an der Fernuniversität gewöhnlich in Kompaktform an einem Wochenende in Hagen durchgeführt. Studierende bekommen von den Betreuenden ein Thema und Literaturhinweise. Sie lesen die angegebene Literatur und suchen selbständig weitere Literatur zum Thema. Sie erstellen eine schriftliche Ausarbeitung. Oft ist vorher eine Gliederung mit der Betreuerin oder dem Betreuer abzusprechen. Sie erstellen eine Präsentation, die mit einem Laptop vorführbar ist. Die Betreuenden geben auch dafür Hinweise. Zur Präsenzphase des Seminars treffen sich alle Teilnehmerinnen und Teilnehmer und die Betreuenden in Hagen. Die Studierenden halten ihre Vorträge; die entsprechenden Inhalte werden - auch vortragsübergreifend - diskutiert. Die Studierenden erhalten Rückmeldung von den Betreuenden zur Qualität ihrer Präsentation und der schriftlichen Ausarbeitung. Ein Teil der Seminare wird als virtuelles Seminar - also komplett über das Internet durchgeführt. Seminarbeiträge werden in netzbasierten Kleingruppen erstellt und zum Abschluss des Seminars in einem Vortrag präsentiert. Daher sind eine schnelle Internetverbindung (>= ISDN) und ein multimediafähiger PC (Mikrofon, Kopfhörer und Soundkarte) unabdingbar. Seminare werden mit jeweils neuen, aktuellen Inhalten angeboten. Deshalb gibt es hier im Modulhandbuch nur eine allgemeine Beschreibung. Lernergebnisse / Kompetenzen: Nach erfolgreicher Teilnahme können Studierende - ein wissenschaftliches Thema anhand vorgegebener Literaturhinweise erarbeiten, - selbständig weitere Literatur zum Thema suchen, - englische Informatik-Artikel lesen und verstehen, - Inhalte strukturieren und mit eigenen Beispielen darstellen, - eine schriftliche Ausarbeitung erstellen, Master of Science in Praktischer Informatik 01.12.2015 - eine Bildschirmpräsentation erstellen, - technische Inhalte vor einem Publikum erklären, - auf Fragen aus dem Publikum angemessen eingehen. Literatur: Je nach Thema Inhaltliche Voraussetzungen: je nach Thema Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: in diesem Studiengang nicht möglich Stellenwert Note: Voraussetzung Anmeldung Prüfung: oder Leistungsnachweis (LN): erfolgreiche Seminarteilnahme (Ausarbeitung und Vortrag) Voraussetzung Anmeldung LN: keine Modulverantwortliche/r: Ralf Hartmut Güting Lehrende: Hochschullehrende des Fachs Informatik in der Fakultät für Mathematik und Informatik Master of Science in Praktischer Informatik 01.12.2015 Abschlussmodul Abschlussmodul mit einer Abschlussarbeit mit Abschlusskolloquium Durchführung: ständig SWS: - Arbeitsaufwand: 450 Stunden ECTS-Punkte: 15 Häufigkeit: ständig Dauer Modul: 3 Monate im Vollzeitstudium, 6 Monate im Teilzeitstudium Detaillierter studentischer Arbeitsaufwand: Die Verteilung des Aufwands kann je nach Thema, Vorkenntnissen, Art der Arbeit und Stil der Betreuung stark variieren, hier nur ein Beispiel: Inhalt: - Einarbeitung in die Thematik der Abschlussarbeit, Literaturrecherche und studium, Vertrautmachen mit existierender Softwareumgebung: 80 Stunden - Gesprächstermine mit der Betreuerin / dem Betreuer und Mitarbeitern des betreuenden Lehrgebiets (mit Anreise), Abschlusspräsentation (u.a. abhängig von Entfernung, Art der Kommunikation): 4-6 mal 4-8 Stunden, also etwa 20 - 50 Stunden - Eigene Entwicklung, Analyse des Problems, Entwurf, Implementierung, Tests und Experimente: 230 Stunden - Erstellen der schriftlichen Ausarbeitung und der Abschlusspräsentation: 100 Stunden Das Abschlussmodul besteht aus einer Abschlussarbeit und einem zugehörigen Kolloquiumsvortrag vor dem/der betreuenden Prüfenden. Die Abschlussarbeit ist eine Prüfungsarbeit in Informatik. Abschlussarbeiten in anderen Fächern sind nicht möglich. Die Abschlussarbeit soll ohne Anlagen einen Umfang von 70 Seiten nicht überschreiten. Die Bearbeitungszeit beträgt im Vollzeitstudium 3 und im Teilzeitstudium 6 Monate. Die Lehrenden bieten Themen an, entweder von sich aus (auch z.B. über die Webseiten des Lehrgebiets) oder auf Anfrage von Studierenden. In einer Vorbereitungsphase finden relativ viele Diskussionen zwischen Betreuenden und Studierenden statt, während der/die Studierende sich in das Thema einarbeitet. In dieser Phase sind normalerweise Treffen in Hagen erforderlich, zu denen die/der Studierende also anreisen muss. Auch später sind gewöhnlich direkte Gespräche zwischen Studierenden und Betreuenden in Hagen nötig. Daneben erfolgt die Kommunikation zwischen dem/der Studierenden und der Betreuerin oder dem Betreuer natürlich auch über E-Mail oder Telefon, teilweise auch über computergestützte Videokonferenztechniken. Die technische Umgebung für die Durchführung von Abschlussarbeiten wird von der Fernuniversität bei Bedarf bereitgestellt. So gibt es einen Pool von Laptops, die für Abschlussarbeiten an Studierende verliehen werden. Das betreuende Lehrgebiet stellt die für die Durchführung der Aufgabe benötigte spezielle SoftwareUmgebung bereit. Die/der Studierende erarbeitet die Literatur, entwickelt eigene kreative Beiträge (Algorithmen, Modelle, Beweise, Software-Prototypen). Sie/er Master of Science in Praktischer Informatik 01.12.2015 beschreibt den Literatur-Hintergrund und ihre/seine eigenen Beiträge in einer schriftlichen Ausarbeitung. Die Arbeit wird nach Abgabe vom Betreuenden und einer weiteren Professorin oder einem weiteren Professor begutachtet und bewertet. Die abschließende Präsentation im Kolloquium wird ähnlich wie ein Seminarvortrag erarbeitet, wobei die Inhalte und das Umfeld der Arbeit dargestellt werden. Eine gesonderte schriftliche Ausarbeitung ist nicht mehr erforderlich, da ja die Abschlussarbeit vorliegt. Die Präsentation wird analog zu einem Seminar, gewöhnlich per Laptop und Projektor durchgeführt. Dabei kann auch vom Studierenden erstellte Software vorgeführt werden. Lernergebnisse / Kompetenzen: Die Abschlussarbeit zeigt, dass die Kandidatin oder der Kandidat gründliche Fachkenntnisse erworben hat und in der Lage ist, innerhalb einer vorgegebenen Frist ein Problem aus dem Fach selbständig mit wissenschaftlichen Methoden zu bearbeiten. Dazu gehört das Erfassen und Auswerten der relevanten Literatur. In Einzelfällen kann das Thema einer solchen Arbeit darin bestehen, die existierende Literatur zu sichten und strukturiert darzustellen. Normalerweise wird aber auch eine eigenständige kreative Leistung dazugehören, also z.B. das Entwickeln neuer Algorithmen, die (Weiter-) Entwicklung theoretischer Modelle, die Entwicklung und prototypische Implementierung neuartiger Software-Komponenten. Die MasterAbsolventin oder der Master-Absolvent hat mit bestandener Abschlussarbeit demonstriert, dass sie/er in der Lage ist, die erlernten Kenntnisse und Methoden der Informatik selbständig auf neue Problemstellungen anzuwenden. Literatur: themenabhängig Inhaltliche Voraussetzungen: Inhalte und Fähigkeiten des vorausgehenden Masterstudiums Anmerkung: keine Vergabe von Leistungspunkten (Modulabschluss): Prüfung: bestandene Abschlussarbeit mit Kolloquium Stellenwert Note: 1/3 Voraussetzung Anmeldung Prüfung: bei Anmeldung der Arbeit: drei bestandene mdl. Prüfungen oder Leistungsnachweis (LN): wird nicht angeboten oder ist nicht im Studiengang nutzbar Voraussetzung Anmeldung LN: Modulverantwortliche/r: Ralf Hartmut Güting Lehrende: Hochschullehrende der Fakultät für Mathematik und Informatik Master of Science in Praktischer Informatik 01.12.2015
© Copyright 2024 ExpyDoc