Im Folgenden sind kurze Beschreibungen meiner ehemaligen Lehrveranstaltungen angegeben, die ich bis zum Wintersemester 2016 gehalten habe. Darüber hinaus sind viele Inhalte auf meinen Webseiten zu finden, so insbesondere zu den Themen
4-std., Vorlesung mit Übungen, 5. Semester
Bachelor-Studiengang Angewandte Informatik
Für eine sichere elektronische Kommunikation hat die moderne Kryptografie große Bedeutung erlangt. Dabei geht es nicht nur um die Privatheit der Kommunikation, sondern auch um die Echtheit von elektronisch übermittelten Dokumenten, um die Verbindlichkeit von Bestellungen und ähnliche Fragen der Sicherheit.
In begleitenden Programmierübungen werden zunächst die Berechnungsverfahren programmiert. Anschließend wird das RSA-Verfahren implementiert, danach einige andere Verfahren bis hin zur Diffie-Hellman-Schlüsselvereinbarung auf Basis elliptischer Kurven. Programmiersprache ist Python.
[ausführliche Beschreibung der Vorlesung]
4-std., Vorlesung mit Labor, 2. Semester
Bachelor-Studiengang Medieninformatik
Anhand der Programmiersprache Java werden die grundlegenden Techniken der Objektorientierung in der Programmierung erklärt.
Inhalt der Vorlesung im Sommersemester 2017
In begleitenden Programmierübungen wird ein Computerspieler für ein einfaches Spiel wie "Vier gewinnt" implementiert. Ziel ist es, am Ende selber nicht mehr gegen den Computerspieler gewinnen zu können.
2-std., Seminar, 6. Semester
Bachelor-Studiengang Angewandte Informatik
Im Informatik-Seminar werden neue Entwicklungen der Informatik aufgegriffen und vorgestellt.
Beschreibung: | |
Informatik-Seminar im Sommersemester 2016 |
4-std., Vorlesung mit Labor, 1. Semester
Bachelor-Studiengang Biotechnologie-Verfahrenstechnik
Anhand der Programmiersprache Java werden die grundlegenden Techniken der Programmierung erklärt.
In begleitenden Programmierübungen werden zunächst einfache, später auch anspruchsvollere Aufgaben aus der Bioinformatik behandelt:
Wahlveranstaltungen
Die Wahlveranstaltungen werden nicht alle in jedem Semester angeboten.
4-std., Vorlesung und Labor, 6. Semester (zusammen mit Dr. P. Sadeghi)
Bachelor-Studiengang Angewandte Informatik
Diese Wahlveranstaltung richtet sich im Besonderen an Studierende, die im Anschluss an den Bachelor-Abschluss noch ein Master-Studium anstreben.
Die Vorlesung bietet ein einiges an Theorie, aber immer in einer Form, die den Nutzen für die Praxis offenkundig werden lässt. In begleitenden Übungen werden die erlernten Konzepte praktisch angewendet und geübt und soweit möglich im Computerlabor umgesetzt. Thematisch geht es unter anderem um unterschiedliche Aspekte der Korrektheit von Programmen.
Programmverifikation (Lang)
Testing can only show the presence of errors, not their absence (Dijkstra). Dagegen ist es mit den Methoden der Programmverifikation möglich, formal zu beweisen, dass ein Programm fehlerfrei ist (d.h. die Spezifikation erfüllt).
Funktionale Programmierung (Sadeghi)
In der funktionalen Programmierung wird spezifiziert, was berechnet werden soll, nicht wie es berechnet werden soll. Spezifikation und Programm sind im Wesentlichen identisch, daher ist Korrektheit automatisch gegeben.
In den begleitenden Übungen zu Teil 1 wird das Beweisen von Programmstücken geübt. Zu Teil 2 wird im Computerlabor das Erstellen von Programmen in der Programmiersprache Haskell geübt.
4-std., Vorlesung mit Übungen, 6. Semester
Bachelor-Studiengang Angewandte Informatik
Redundanz bedeutet, dass Information mit mehr Zeichen als unbedingt notwendig dargestellt ist. So kann man z.B. manche Wörter abkürzen, ohne dass der Sinn verloren geht; daran zeigt sich, dass in diesen Wörtern Redundanz enthalten ist. Redundanz ist einerseits schlecht, da unnötig viel Speicherplatz oder Übertragungszeit verbraucht wird, andererseits gut, da Fehler leichter zu erkennen und ggf. zu korrigieren sind. Der Schreibfehler in dem Wort "Imformation" ist leichter zu erkennen und zu korrigieren als in der Abkürzung "Imf."
Die Vorlesung erläutert, wie Daten unter Hinzufügung von (möglichst nur wenig) Redundanz codiert werden, sodass Fehler erkennbar und ggf. sogar korrigierbar sind. Auf der anderen Seite wird gezeigt, wie systematisch (möglichst viel) Redundanz entfernt wird und damit die Daten komprimiert werden.
Fehlererkennung und -korrektur
Datenkompression
In den Übungen werden Aufgaben zu den Themen der Vorlesung bearbeitet und besprochen. Ferner werden einige der Verfahren im Computerlabor implementiert.
4-std., Vorlesung und Labor, 6. Semester
Bachelor-Studiengang Angewandte Informatik
Die Vorlesung stellt eine Fortsetzung der Algorithmen-Vorlesung dar.
Sortierverfahren auf Prozessorfeldern
Divide-and-Conquer-Methode
Approximationsverfahren für NP-schwere Probleme
Sonstiges