Kursangebot

01613 - Einführung in die imperative Programmierung

Inhalt

Kurs 01613 bildet den Einstieg in die Programmierausbildung und stellt grundlegende imperative Programmierkonzepte sowie ihre typische Anwendung vor, um kleine Programme zu entwickeln. So werden u.a. einfache und strukturierte Datentypen behandelt. Des Weiteren wird sich mit einfachen und zusammengesetzten Anweisungen und Konstrukten wie Schleifen und Funktionen befasst. Darauf aufbauend werden weitere Techniken wie z.B. Rekursion eingeführt und einfache dynamische Datenstrukturen implementiert. Zur praktischen Erläuterung und Umsetzung dieser Konzepte wird eine typisierte imperative Programmiersprache verwendet. Die in dem Kurs vermittelten imperativen Konzepte bilden auch eine wichtige Grundlage der objektorientierten Programmierung. Im Kurs wird von Beginn an Wert auf guten Programmierstil gelegt, um auf diese Weise die Erstellung von leicht lesbarem und zuverlässigem Quellcode zu fördern.

Qualifikationsziele

Nach erfolgreicher Teilnahme sind die Studierenden mit grundlegenden imperativen Programmierkonzepten vertraut. Die praktische Anwendung sämtlicher Lerninhalte beherrschen sie im Rahmen von kleineren Programmieraufgaben.

Modulabschlussprüfung

Für den Kurs wird unter der Prüfungsnummer 63811 eine unbenotete Modulabschlussprüfung angeboten. Dafür müssen Sie an der zweistündigen Klausur am Ende des Semesters teilnehmen. Eine Mindestpunktzahl bei den Einsendeaufgaben ist dafür nicht erforderlich. Der Kurs 01613 wird in jedem Semester angeboten.

Klausur

Die Klausur hat die Prüfungsnummer 63811 und findet jeweils am Ende des Semesters statt. Die Anmeldung erfolgt über das Prüfungsportal (POS). Bitte beachten Sie die Hinweise im Klausuranschreiben.

Zum Zugriff auf die Klausuranmeldung im POS und auf die Funktionen des Online-Übungssystems ist eine Belegung des jeweiligen Kurses im Semester der Klausurteilnahme erforderlich.

Für die Modalitäten (Fristen, Klausurorte usw.) sind stets die semesterspezifischen Hinweise der Fakultät Mathematik und Informatik zu beachten (siehe "Aktuelles für Studierende").

01660 - Data Mining - Konzepte und Techniken

Inhalt

Das Thema dieses Kurses ist Data Mining, grob übersetzbar mit "Wissensentdeckung in Datenmengen/-banken". Die Bedeutung dieses Themengebiets ist in den letzten Jahren rasant gewachsen. Die Zielsetzung besteht darin, Strukturen, Zusammenhänge sowie Gruppen ähnlicher Objekte in sehr großen Datenmengen zu erkennen und zu bewerten. Der Kurs vermittelt zunächst Kenntnisse zur Vorbereitung von Data-Mining-Methoden hinsichtlich der Charakterisierung (z.B. Klassifizierung von Attributtypen, Visualisierung) und Vorverarbeitung der Daten (etwa durch Eliminierung von Ausreißern, Aggregation oder Normalisierung). Darauf aufbauend, werden verschiedene Techniken zur Mustersuche (z.B. Apriori-Algorithmus), Klassifikation (u.a. Entscheidungsbäume, Klassifikation nach Bayes) und Clusteranalyse (beispielsweise k-Means, DBSCAN) sowie passende Evaluationsmethoden vorgestellt. Zudem erläutert der Kurs, wie komplexere Strukturen, d.h. Datenströme, Textdokumente, Zeitreihen, diskrete Folgen, Graphen sowie Webdaten, analysiert werden können. Ein Kapitel mit praktischen Beispielen in Weka bildet den Abschluss des Kurses.

Qualifikationsziele

Nach erfolgreicher Teilnahme besitzen die Studierenden einen umfassenden Überblick zu Wissensentdeckungsprozessen in Datenmengen/-banken. Sie sind in der Lage, verschiedene Attributtypen zu beschreiben und zu visualisieren sowie entsprechende Abstandsmaße zu berechnen. Sie besitzen detaillierte Kenntnisse zur Datenvorverarbeitung. Sie sind mit den Zielen und Methoden der zentralen Data-Mining-Techniken Mustersuche, Klassifikation und Clusteranalyse vertraut. Zudem kennen sie sich mit der Analyse komplexerer Strukturen, etwa Zeitreihen oder Graphen, aus.

Modulabschlussprüfung

Für den Kurs wird unter der Prüfungsnummer 63117 eine benotete Modulabschlussprüfung angeboten. Dafür müssen Sie an der zweistündigen Klausur am Ende des Semesters teilnehmen. Eine Mindestpunktzahl bei den Einsendeaufgaben ist dafür nicht erforderlich.

Klausur

Die Klausur hat die Prüfungsnummer 63117 und findet jeweils am Ende des Semesters statt. Die Anmeldung erfolgt über das Prüfungsportal (POS). Bitte beachten Sie die Hinweise im Klausuranschreiben.

Zum Zugriff auf die Klausuranmeldung im POS sowie auf die Inhalte in Moodle und die Funktionen des Online-Übungssystems ist eine Belegung des jeweiligen Kurses im Semester der Klausurteilnahme erforderlich.

Für die Modalitäten (Fristen, Klausurorte usw.) sind stets die semesterspezifischen Hinweise der Fakultät Mathematik und Informatik zu beachten (siehe "Aktuelles für Studierende").

01663 - Datenstrukturen

Inhalt

Der Kurs behandelt grundlegende Algorithmen und Datenstrukturen der Informatik. Im Kurs werden zunächst die Begriffe Algorithmus, Datenstruktur und Datentyp erklärt und es wird die grundsätzliche Vorgehensweise bei der Analyse von Algorithmen beschrieben. Nach einer Diskussion programmiersprachlicher Basiskonzepte zur Konstruktion von Datenstrukturen werden grundlegende Datentypen (Listen, Stacks, Queues, Bäume) und ihre Implementierungen behandelt. Ein zentraler Datentyp ist das Dictionary mit seinen Implementierungen (Hashing, Suchbäume, AVL-Bäume). Weitere Datentypen zur Darstellung von Mengen sind Priority Queues und Partitionen mit MERGE und FIND Operationen. Schließlich werden Sortieralgorithmen sowie die Grundkonzepte von Graphen behandelt.

Der zweite Teil des Kurses 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. Schließlich werden B-Bäume und externe Sortierverfahren behandelt, die besonders für Datenbanksysteme von Bedeutung sind. Bei allen vorgestellten Algorithmen und Datenstrukturen steht stets die Analyse von Laufzeit und Platzbedarf im Vordergrund.

Qualifikationsziele

Nach erfolgreicher Teilnahme kennen die Studierenden die wichtigsten grundlegenden Datenstrukturen und Algorithmen der Informatik. Sie sind in der Lage, für die eigene Softwareentwicklung die jeweils geeignete Datenstruktur auszuwählen und sie ggf. anzupassen. Sie besitzen ein eingehendes Verständnis der Analyse von Algorithmen und können somit zwischen effizienten und ineffizienten Lösungen in der Programmierung unterscheiden.

Modulabschlussprüfung

Für den Kurs wird unter der Prüfungsnummer 63113 eine benotete Modulabschlussprüfung angeboten. Dafür müssen Sie an der zweistündigen Klausur am Ende des Semesters teilnehmen. Eine Mindestpunktzahl bei den Einsendeaufgaben ist dafür nicht erforderlich. Der Kurs 01663 wird in jedem Semester angeboten.

Klausur

Die Klausur hat die Prüfungsnummer 63113 und findet jeweils am Ende des Semesters statt. Die Anmeldung erfolgt über das Prüfungsportal (POS). Bitte beachten Sie die Hinweise im Klausuranschreiben.

Zum Zugriff auf die Klausuranmeldung im POS sowie auf die Inhalte in Moodle und die Funktionen des Online-Übungssystems ist eine Belegung des jeweiligen Kurses im Semester der Klausurteilnahme erforderlich.

Für die Modalitäten (Fristen, Klausurorte usw.) sind stets die semesterspezifischen Hinweise der Fakultät Mathematik und Informatik zu beachten (siehe "Aktuelles für Studierende").

01793 - Software Engineering

Inhalt

Gegenstand des Kurses 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.

Qualifikationsziele

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.

Modulabschlussprüfung

Für den Kurs wird unter der Prüfungsnummer 63812 eine benotete Modulabschlussprüfung in Form einer mündlichen Prüfung angeboten. Die Prüfung dauert ca. 25 Minuten. Prüfer sind aktuell Herr Dr. Finthammer und Herr Netzer. Die Informationen zur Prüfungsanmeldung finden Sie hier.

Eine Mindestpunktzahl bei den Einsendeaufgaben des Kurses ist für die Anmeldung zur Prüfung nicht erforderlich. Manche Studiengänge verlangen aber formale Voraussetzungen (z.B. den erfolgreichen Abschluss anderer Module), bevor Sie sich in diesem Kurs zur Modulabschlussprüfung anmelden können. Der Kurs 01793 wird in jedem Semester angeboten.

01796 - Web-Programmierung

Inhalt

Gegenstand des Kurses ist die methodische Entwicklung von Internet-basierten 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 EE-Spezifikation eine Standardarchitektur vorgestellt, die zur Implementierung der Benutzungsschnittstelle auf dem Server Servlets und JavaServer Pages (JSP) vorsieht sowie für den Anwendungskern Enterprise JavaBeans (EJB) und Entities. Mit JavaServer Faces (JSF) wird ein Framework hinzugezogen, das 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.

Qualifikationsziele

Die Studierenden beherrschen die Grundlagen der Web-Programmierung. Sie sind in der Lage, kleinere Java-Web-Anwendungen eigenständig zu implementieren.

Modulabschlussprüfung

Der Kurs „Web-Programmierung“ bildet zusammen mit dem Kurs 01798 „Software-Architektur“ das Modul 63020 „Software-Architektur und Web-Programmierung“. Die Modulabschlussprüfung erfolgt in Form einer gemeinsamen mündlichen Prüfung über beide Kursinhalte.

Das Modul 63020 „Software-Architektur und Web-Programmierung“ konnte letztmalig im Wintersemester 2020/21 belegt werden. Eine Prüfungsteilnahme ist nur noch bis einschließlich Wintersemester 2021/22 möglich.

Zur Vereinbarung eines Termins für eine mündliche Prüfung wenden Sie sich bitte an das Sekretariat eines der beiden Lehrgebiete, von denen die Kurse angeboten werden (Lehrgebiet Prof. Desel, Lehrgebiet Prof. Steimann).

Zur Terminanfrage für eine mündliche Prüfung bei Prof. Desel wenden Sie sich bitte (mind. 6 Wochen vor dem gewünschten Zeitraum) bevorzugt telefonisch an das Sekretariat.

01584 - Programmierpraktikum

Das Grundpraktikum Programmierung (Kurs 01584) wird semesterweise von wechselnden Lehrgebieten durchgeführt.

In welchem Semester das Lehrgebiet STTP (Prof. Desel) für die Betreuung verantwortlich ist, können Sie auf der Webseite zum Programmierpraktikum finden:

01593 - Fachpraktikum Softwareentwicklungswerkzeuge

Das Fachpraktikum (Kurs 01593) am Lehrgebiet STTP wird nicht in jedem Semester angeboten.

Welche Fachpraktika in den kommenden Semestern geplant sind, können Sie auf den entsprechenden Seiten der Fakultät finden:

01917 - Seminar

Regelmäßig werden am Lehrgebiet STTP Seminare zu verschiedenen Themen angeboten.

Welche Seminare in den kommenden Semestern geplant sind, können Sie auf den entsprechenden Seiten der Fakultät finden:

In der Vergangenheit wurden am Lehrgebiet STTP Seminare zu diesen Themen durchgeführt.

Lehrgebiet STTP | 01.07.2021