Eberhard Karls Universität Tübingen

Mathematisch-Naturwissenschaftliche FakultätProgramming Languages and Software Technology

Prof. Dr. Klaus Ostermann

Photo of Klaus Ostermann

Klaus Ostermann
Universität Tübingen
WSI - Programmiersprachen und Softwaretechnik
Sand 13
72076 Tübingen
Germany

Telephone
+49 - (0) 70 71 - 29 - 75457
Telefax
+49 - (0) 70 71 - 29 - 50 82
E-Mail
klaus.ostermann(at)uni-tuebingen.de
Office
B217/218
Office hours
by appointment

Publications on Google Scholar

If you want to apply for an internship, PhD position etc., please read this.

If you want to communicate with me securely, you can find my PGP key here.

Community Service

Past involvements can be found here.

I’m a member of IFIP WG 2.16 and 2.11

Research Interests

  • Software Architecture und Patterns
  • Aspect-Oriented Programming
  • Object-Oriented Programming
  • Design and Implementation of Programming Languages
  • Types and Modules
  • Software Development Tools
  • Progam Analysis and Transformation

News

Industry project fair

Students present their finished projects and our industry partners present project proposals for the next iteration of “Das Tübinger Softwareprojekt”, an industry-acedemia collaboration with the goal of letting students experience a real software project as a programmer during their undergraduate studys, or as a team leader during their graduate studies.
Read more ...

Dubai 100

Our TSP Team “Rehality” was granted to join “Dubai 100”. Starting on 13th of January 2017 they will participate in a intensive 100-day programme designed to accelerate the growth of early-stage startups. Only 10 Teams where given this great opportunity.
Read more ...

Industry project fair

Students present their finished projects and our industry partners present project proposals for the next iteration of “Das Tübinger Softwareprojekt”, an industry-acedemia collaboration with the goal of letting students experience a real software project as a programmer during their undergraduate studys, or as a team leader during their graduate studies.
Read more ...

Paper accepted at POPL

Our paper on equirecursive types in System Fω, with title “System Fω with Equirecursive Types for Datatype-generic Programming”, has been accepted for presentation at the annual Symposium on Principles of Programming Languages.
Read more ...

Paper accepted at ICFP

Our paper on automatic refunctionalization for a language with copattern matching has been accepted for presentation at the International Conference on Functional Programming.
Read more ...

Assigned Thesis Topics

Highcharts for Scala

Highcharts is a Javascript library for visualizing data. The purpose of this thesis is to develop an adapter of Highcharts for Scala, such that data in the Scala runtime can be visualized with the same ease as with dedicated data science languages such as Mathlab or R.
Read more ...

Open Thesis Topics

Probabilistic Programming for Algorithmic Trading

Probabilistic programming is often advertized as “democratizing machine learning”, because it provides a very simple but expressive model of statistical inference. The purpose of this thesis is to validate that claim by applying it to algorithmic trading of securities. More specifically, we want to apply it for “auto-tuning” of parameters for trading strategies. In the thesis, no actual trading will take place, but we will evaluate the approach with historical ticker data.
Read more ...

Declarative Programming of Fischertechnik Robots

We are collaborating with Fischertechnik GmbH to develop novel ways to program their robots. Currently, the robots are programmed either with a high-level but rather limited graphical flow chart language, or using a low-level imperative API. The goal of this thesis is to design and implement a library for high-level modular but general functional programming for the Fischertechnik ROBO TXT controller. This library should be based either on the ``How to Design Worlds” approach by Felleisen et al or in the style of functional reactive programming.
Read more ...

Contract inference for relationally parametric polymorphic contracts

Guha et al have developed a way to specify relationally parametric polymorphism in contracts and check conformance at runtime. These ideas were realized in the Racket programming language. Currently, the utility of parametric contracts is limited due to the fact that parametric contracts must be instantiated explicitly in many circumstances; implicit instantiation only works for primitive types.
Read more ...

DSLs for Machine Learning

We are collaborating with Christopher Ré from Stanford University to improve the interface to the DeepDive machine learning system. More specifically, we aim to phrase the interface to DeepDive as an embedded domain-specific language with the eventual goal to integrate machine learning so closely and seamlessly into ordinary programs that it is as simple to define a function or data structure via machine learning than to define a function via ordinary programming. The goal of this thesis is to to make the first steps towards that goal. Concretely, the first step would consist in embedding DeepDive into a statically typed programming language such as Scala.
Read more ...

Finished Thesis Topics

Recording student progress in DrRacket

The purpose of this thesis is to develop a plug-in for the DrRacket development environment that will monitor and log the activity of students. The (appropriately anonymized) collected data will then be used for the scientific evaluation of how beginning programmers work. The main focus of this work is on collecting and representing the developer activity in such a way that interesting analyses can be defined on top of it.
Read more ...

Entwicklung eines Systems zur Suche von DIY-Projektbeschreibungen mit Bildern und Fotos

Das im Rahmen des “Tübinger Softwareprojekts” entwickelte System für Schritt für Schritt Anleitungen soll in dieser Bachelor-Arbeit um eine neuartige Such-Funktionalität erweitert werden. Wir gehen in Zukunft davon aus, dass Nutzer Projektbeschreibungen nicht mehr durch Texteingabe suchen, sondern eher nach Fotos oder Bildern im Internet. Ein Ansatz zur Implementierung der Funktionalität besteht darin, zuerst das Bild zu Verschlagworten und die so erhaltenen Schlagwörter dann als Eingabe einer „klassischen“ Suchmaschine zu verwenden. Hierzu gibt es bereits verschiedene Technologien. Die Aufgabe der Bachelor-Arbeit ist es nun, die vorhandenen Technologien zu identifizieren, zu analysieren und geeignete Technologien auszuwählen. Auf Basis von zu entwickelnden System- und Interaktionskonzepten soll die Implementierung bzw. Systemintegration erfolgen. Ziel ist die prototypische Darstellung einer Suche nach einer DIY-Projektbeschreibung mithilfe eines gemachten Fotos.
Read more ...

Assistenz-Funktionalität für Schritt für Schritt Anleitungen

Das im Rahmen des “Tübinger Softwareprojekts” entwickelte System für Schritt für Schritt Anleitunge soll in dieser Bachelor-Arbeit um eine Assistenz-Funktionalität erweitert werden. Im Allgemeinen sind Assistenten wie beispielsweise Apple Siri oder Microsoft Cortana hinreichend bekannt. Die Herausforderungen bei diesen Assistenten liegen in der Modellierung der Domäne und in der Bereitstellung des Domänenwissens. Zusätzlich muss der Assistent per API in das System eingebunden werden.
Read more ...

Automatic locality-friendly array interface extension of numerical functions through C++ template metaprogramming

Numerical functions often need be invoked on views of vectors or matrixes, derived by selecting some elements or by pre-transforming them. For instance, one might want to prescale matrix elements before applying an existing FFT algorithm on them. Often this must be done by copying the elements to a separate array, and then invoking the original FFT algorithm, but this procedure is not efficient because it uses additional space and therefore has higher impact on data caches.
Read more ...