Summer Term / Sommersemester

Algorithmen und Datenstrukturen

Inhalte

  • Grundlegende Begriffe und formale Eigenschaften von Algorithmen
  • Techniken der Algorithmenentwicklung
  • Datentypen und Datenstrukturen
  • Grundlegende Datenstrukturen der Informatik und ihre Implementierung
  • Ausgewählte Algorithmen aus dem Bereich Sortieren und Suchen
  • Asymptotische Komplexitätsanalysen

Weiterführende Informationen

Künstliche Intelligenz (Modul: Smart Computing)

Ziel der Künstlichen Intelligenz (KI) ist die Entwicklung von Verfahren, mit deren Hilfe: Softwaresysteme selbständig komplexe Situationan analysieren und adäquate Reaktionen bestimmen können. Nach der Euphorie Anfang der 80’er Jahre und der Ernüchterung Anfang der 90’er Jahre hat sich die Künstliche Intelligenz als fester Bestandteil der Informatik etablieren können. Die im Rahmen der KI entwickelten innovativen Methoden werden in vielen Anwendungsbereichen genutzt. Die Vorlesung gibt einen Überblick über Methoden der KI und ihre Anwendungen.

Inhalte

  • Suchalgorithmen
  • Rationales Verhalten und terminologische Logiken
  • Genetische Algorithmen, genetisches Programmieren
  • Expertensysteme: regelbasiert, objekt-orientiert und reif für die Anwendung?
  • Fuzzybasierte Ansätze
  • Planen in der Robotik:“What are plans for?“
  • Entscheidungstheorie: Zur Rationalität von Agenten
  • Zurechtkommen mit unsicherem Wissen: Wahrscheinlichkeitstheoretisches Schließen
  • Ohne Lernen geht es nicht: Induktive und fallbasierte Methoden
  • Ausgewählte Anwendungsbereiche: Ökologie und Medizin

Weiterführende Informationen

Logische Programmierung

Die logische Programmierung beruht auf der Entdeckung, dass Logik als problemnahe und effiziente Programmiersprache verwendet werden kann. Die bekannteste Vertreterin dieser Sprachen ist Prolog. Das Modul behandelt die theoretischen Grundlagen der logischen Programmierung, führt in die Sprache Prolog ein und zeigt verschiedene praktische Anwendungen, z.B. aus den Gebieten Software Engineering und Verarbeitung von natürlicher Sprache. Die im Modul integrierten Übungen ermöglichen konkrete Erfahrungen mit Prolog.

Inhalte

  • Was ist logische Programmierung
  • Tutorial zur Programmiersprache Prolog
  • Prädikatenlogik
  • Klauselform
  • Logische Inferenz: Resolution, Unifikation, SLD Resolution
  • Negation: Negation als Fehlschlag, SLDNF Resolution
  • Listen
  • Mengenprädikate
  • Metainterpreter
  • Definite Clause Grammars
  • Exemplarische Anwendungen
  • Ausblick (DATALOG, CLP, HOL)

Weiterführende Informationen

Veranstaltung 87351 im LSF

Intelligente Umgebungen und kooperative Ensembles

Die Vorlesung gibt einen Überblick über die Methoden des Einsatzes von Strategien kooperierender Geräte- und Agentenensembles für die Steuerung intelligenter Umgebungen. Schwerpunkt der Vorlesung ist die Nutzung von Methoden aus der verteilten KI für die Steuerung intelligenter Umgebungen. Neben theoretischen Inhalten wird besonders auf einen praktischen Zugang zu den Lehrinhalten geachtet. Die Veranstaltung besteht aus klassischen Vorlesungen, seminar-ähnlichen Studentenbeiträgen, betreuten Übungen und der Umsetzung eines Gruppenprojektes im Smart Appliance Laboratory.

Inhalte

  • Anforderungen an Intelligente Umgebungen
  • Stand der Technik: Hausbusse und Hausvernetzung
  • Middlewaresysteme
  • Multiagentensysteme
  • Deliberative Multiagentensysteme; Joint Intention Theory
  • Reaktive Multiagentensysteme; Schwärme und Emergentes Verhalten

Weiterführende Informationen

Statistische Signalverarbeitung und Inferenz

Inhaltsbeschreibung folgt

Weiterführende Informationen

„Veranstaltung 88014 im LSF“

Aktuelle Themen des Ubiquitous Computing

Schlagworte wie „Ubiquitous Computing“, „Pervasive Computing“ und, als jüngster Begriff, „Ambient Intelligence“, bezeichnen die Vision einer Welt, in der wir von intelligenten, intuitiv bedienbaren Geräten umgeben sind, die uns bei der Gestaltung, Organisation und Durchführung unseres täglichen Lebens unterstützen. Gemeinsam ist ihnen das Konzept des „Smart Environment“, der „verständigen“ bzw. „intelligenten“ Umgebung, das ein neues Paradigma der Interaktion zwischen dem Menschen und seiner Alltagsumgebung bezeichnet. „Smart Environments“ versetzen diese Umgebung in die Lage, sich des in ihr handelnden Menschen, seiner Ziele und Bedürfnisse bewusst zu sein und den Menschen aktiv beim Durchführen seiner Tätigkeiten und beim Erreichen seiner Ziele zu unterstützen – sowohl auf Basis instrumentierter Umgebungen, als auch mit Hilfe mobiler, persönlicher digitaler Assistenten. Diese Veranstaltung bietet eine Einführung in die wichtigsten Paradigmen und Lösungskonzepte des Ubiquitous Computing aus der Perspektive der situationsgesteuerten Assistenz.

Weiterführende Informationen

  • „Veranstaltung ??? im LSF“

Summer & Winter Term / Sommer- & Wintersemester

Komplexe Software Systeme (KSWS) / Projekt / Neueste Entwicklungen in der Informatik (NEidI)

Die Veranstaltungen KSWS oder Projekt sind generische Module im Rahmen der Informatikausbildung im Bachelor- oder Masterstudium. Diese umfassen neben Vorlesungsinhalten (Projekt nur anteilig), Literaturarbeit (KSWS), Seminarvortrag zur (Zwischen-)Präsentation der Inhalte und die softwaretechnologische Umsetzung einer Anwendung. Dabei sind die zu realisierenden Anwendungen immer an aktuelle Forschungsprojekte gekoppelt.

Weiterführende Informationen

Veranstaltung 87446 im LSF

Winter Term / Wintersemester

Imperative Programmierung

Das Modul führt über die abstrakten Datentypen die Techniken der Programmierung ein. Dabei wird besonderes Augenmerk auf die Nutzung der Rekursion zur Problemlösung gelegt. Die Teilnehmer sollen in die Lage versetzt werden, Probleme als Gesamtheit von Daten und Algorithmen zu spezifizieren. Für die so spezifizierte Problemstellung werden von den Studierenden effiziente Datenstrukturen gefunden.

Inhalte

  • Einführung in die Softwareentwicklung
  • Strukturierte Programmierung
  • Rekursion
  • algebraische Spezifikation Abstrakter Datentypen
  • Datenstrukturen zur effektiven Implementation mit Hilfe einer algorithmischen Sprache
  • Spezifikation und Implementation mit unterschiedlichen Datenstrukturen (z.B. Liste, Keller, Schlange, Baum, Tabelle)

Weiterführende Informationen

Funktionale Programmierung

Die funktionale Programmierung stellt das zweite wichtige Programmierparadigma neben der imperativen Programmierung dar. Es basiert auf dem Prinzip der Textersetzung („term-rewriting“, „equational reasoning“) und behandelt Funktionen als „first class objects“. Das Modul behandelt die theoretischen Grundlagen der funktionalen Programmierung, führt in die Sprache Haskell ein und zeigt verschiedene praktische Anwendungen. Die im Modul integrierten Übungen ermöglichen konkrete Erfahrungen mit der funktionalen Programmierung zu machen.

Inhalte

  • Theoretische Basis der funktionalen Programmierung (Lambda-Kalkül) und Beziehung zur Theorie partieller Funktionen
  • Typische Datenstrukturen und Programmkonstrukte
  • Strategien der Entwicklung funktionaler Software
  • Beweis von Programmeigenschaften
  • Einbeziehung anderer Programmierparadigmen unter Berücksichtigung von Eingabe/Ausgabe

Weiterführende Informationen

Paradigmen der Programmierung

Das Module „Paradigmen der Programmierung“ behandelt ausgewählte Kapitel zu den grundlegenden Programmierparadigmen, in denen vertiefte Kenntnisse der Konzepte vermittelt werden, die aktuellen Programmiersprachen zugrunde liegen. Darüber hinaus wird die Fähigkeit vermittelt, ausgehend von einem gegebenen Anwendungsproblem das geeignete Sprachparadigma für die algorithmische Lösung zu identifiziern.

Inhalte

  • Funktionale Programmierung (Typinferenz, Softwaretechnik: Polymorphie, Typklassen, Streams, Monaden und Continuations, Ausführung funktionaler Programme: G-Maschinen, Optimierung in funktionalen Programmen)
  • Imperative / Objektorientierte Programmierung (Softwaretechnik: Modularisierung und Objekte, Kontrollstrukturen in Sequentiellen Programmen, Parallele Programme, Objektsysteme, z.B. CLOS, Call by Name, Closures; anonyme Klassen in Java)
  • Logische Programmierung (Theorembeweiser, Higher-Order-Systeme)
  • Allgemeine Themen (Gültigkeitsbereiche und Speichermanagement, Sprachenbasierte Sicherheit)
  • Regelbasierte Programmierung (Produktionssysteme, RETE-Algorithmus, Konfliktlösungsstrategien)
  • Spezielle Sprachmodelle (Tuple Spaces, z.B. LINDA, Actor Languages, Verteilte Sprachen, z.B. Obliq)
  • Skriptsprachen (Unix Shell, Perl, PHP, etc.)
  • Dynamische Sprachen (Self, NewtonScript , Smalltalk, LISP...)

Weiterführende Informationen

Mustererkennung und Kontextanalyse

Viele Funktionen intelligenter Informationssysteme basieren auf Verfahren der Mustererkennung und der Kontextanalyse: Die Erfassung des Fitnesszustands mit dem Smartphone, natürlichsprachliche Dialoge mit einem Rechner, die Erkennung von Nutzerwünschen in einem intelligenten Haus oder auch die Vorhersage von Aktienkursen. Aktivitäten und Ziele von Benutzern aus Sensordaten abzuleiten ist eine zentrale Herausforderung von intelligenten Umgebungen und von Assistenzsystemen. Neben verschiedenen „klassischen“ Verfahren des instanzbasierten Lernens (z.B. neuronale Netze oder Support Vector Machines), werden zunehmen modellbasierte Ansätze genutzt, die Wissen über kausale Zusammenhänge als Grundlage für eine wahrscheinlichkeitstheoretische Modellierung verwenden. Dieses Modul bietet eine Einführung in die grundlegenden Verfahren und Begriffe der Signalverarbeitung und der Mustererkennung. Ziel der Lehrveranstaltung ist es, aktuelle Verfahren zur Interpretation von Sensordaten zu untersuchen und zu bewerten.

Inhalte

  • Signale und lineare Systeme; Impulsantwort, Faltung, Fouriertransformation
  • Merkmale und Skalenniveaus
  • Parametrische Klassifikationsverfahren und Parameterschätzung
  • Instanzbasierte Verfahren und der Fluch der Dimensionalität
  • Kombination von Systemen: Stacking, Boosting und Bagging
  • Evaluation von Klassifikationssystemen und das No-Free-Lunch-Theorem.

Weiterführende Informationen

Ausgewählte Aspekte situationsgesteuerter Assistenzsysteme

In Vortragsseminaren erhält der Student Gelegenheit, den selbständigen Wissenserwerb aus der Fachliteratur zu üben, sowie die erarbeiteten Ergebnisse vorzutragen und zur Diskussion zu stellen. Die Vortragsseminare leiten zu kritischer Sachdiskussion an und schulen die Fähigkeit der Präsentation. Da mehrere Vortragsseminare angeboten werden, kann der Student ein seinen Interessen am besten entsprechendes Seminar auswählen.

Weiterführende Informationen