Programming 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

  • DBLP 2015 (Program Committee)
  • ASE 2015 (Expert Review Panel)
  • OOPSLA 2016 (Program Committee)
  • ESOP 2016 (Program Committee)
  • PEPM 2016 (Program Committee)
  • LaMOD 2016 (Program Committee)
  • Modularity Vsisions 2016 (Program Committee)
  • Scala Symposium 2016 (Program Committee)
  • ECOOP 2017 (Program Committee)
  • POPL 2018 (Program Committee)
  • PLDI 2018 (External Program Committee)
  • ASE 2018 (Program Committee)
  • Scala 2018 (Program Committee)
  • ICFP 2019 (Program Committee)

Past involvements can be found here.

I’m a member of IFIP WG 2.16 and 2.11

Research Interests

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

Open Thesis Topics

Web-basierte Visualisierung mittelalterlicher Musiknotation

MEI (Music Encoding Initiative) hat sich inzwischen als Format zur Musik-Codierung in der musikwissenschaftlichen Forschung etabliert. Es deckt neben der gebräuchlichen Musiknotation (Common Western Music Notation) auch Notationsformen älterer Musik (z.B. die sogenannten Neumen des Gregorianischen Chorals) ab. Das MEI Neumes Module wurde in Zusammenarbeit zwischen dem WSI und dem Musikwissenschaftlichen Institut Tübingen im Projekt Tübingen entwickelt. Eine Diplomarbeit am WSI (Gregor Schräder) entwickelte als web-basiertes Visualiertungstool den MEI Neumes Viewer. In der Arbeit soll die bisherige im MEI Neumes-Viewer verwendete “Eierkohlen”-Notation um weitere mittelalterliche Notationen (Neumennotation, Quadratnotation) erweitert werden. Als Vorbild könnte der Open-Source TeX-Dialekt Gregorio dienen.

Read more …

Grafischer Eingabe-Editor für MEI-Neumes

MEI (Music Encoding Initiative) hat sich inzwischen als Format zur Musik-Codierung in der musikwissenschaftlichen Forschung etabliert. Es deckt neben der gebräuchlichen Musiknotation (Common Western Music Notation) auch Notationsformen älterer Musik (z.B. die sogenannten Neumen des Gregorianischen Chorals) ab. Das MEI Neumes Module wurde in Zusammenarbeit zwischen dem WSI und dem Musikwissenschaftlichen Institut Tübingen im Projekt TüBingen entwickelt.

Read more …

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 …

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 …

Embedded Probabilistic Programming with Continuous Variable Distributions

Probabilistic programming languages are programming languages which have special support to describe probabilistic models, and then perform inference in these models. They are attractive because they unify the expressive power of a general-purpose programming language with probabilistic modeling and reasoning.

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 …

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 …

Finished Thesis Topics

Software-supported piano practice

Pianists perform a variety of exercises to improve the evenness and precision of their playing, including scales, arpeggios, and octaves. The purpose of this thesis is to develop an application that supports pianists in two ways: 1) Training the ear to identify uneven scales, arpeggios etc., and 2) Analyze the exercises of the pianist to identify flaws in the execution of the exercises.

Read more …

Transformation von Präprozessorvarianz auf Laufzeitvarianz

Das Ziel dieser Arbeit ist, eine Softwareproduktlinie der Firma Bosch, die mit C und CPP realisiert wurde, so zu transformieren, dass die Compile-Zeit Variabilität von CPP ersetzt wird durch Laufzeitvariabilität.

Read more …

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 …

News

Paper Award at GPCE 2018

At GPCE 2018, we have been awarded a “Most Influential Paper Award” for our 2008 GPCE paper on “Polymorphic Embedding of DSLs” by Hofer, Ostermann, Rendel, and Moors.

Read more …

Presentation at OOPSLA 2018

Jonathan Brachthäuser
Researcher
Jonathan Immanuel Brachthäuser
presents the paper Effect Handlers for the Masses at the International Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) in Boston, MA, USA.

Read more …

Guest Lecture by Philipp Gerhard (iPoint-systems gmbh)

Philipp Gerhard, Software Developer at iPoint-systems gmbh will give an invited guest lecture in Software Engineering and talk about Test Driven Development and Continuous Integration.

Read more …

Open PhD Student Position, Career Changers Welcome

We have an open position for a PhD student in our group, to be filled immediately.

Read more …

Guest Lecture by Heiko Hütter (DAASI International)

Heiko Hütter, Project Manager and Scrum expert at DAASI International will talk about Challenges and best practices in multi-project and multi-product setups using Scrum.

Read more …

Guest Lecture by Amra Avdic (Novatec GmbH)

Amra Avdic, Senior Consultant at Novatec GmbH, will talk about Requirements Engineering and agile Methods.

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 …

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 …

Paper accepted at OOPSLA

Our paper “Parsing with First-Class Derivatives” (Jonathan Brachthäuser
Researcher
Jonathan Immanuel Brachthäuser
, Tillmann Rendel
Alumni
Tillmann Rendel
and Klaus Ostermann
Head
Klaus Ostermann
) has been accepted for presentation at the annual conference of Object-oriented Programming, Systems, Languages, and Applications (OOPSLA).

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 …

School project supported by Vector Stiftung

We are happy to announce that the Vector Stiftung is supporting our project “Denken verstehen lernen”, where we aim to develop and try out a “Computational Thinking” curriculum for elementary schools.

Read more …

Preprint for POPL paper online

The preprint for our paper on equirecursive types in System Fω, with title “System Fω with Equirecursive Types for Datatype-generic Programming”, is now available online.

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 …

Software Engineering Project Fair @ PS

Meet us for the software engineering project fair, in which our industry partners present their proposal for this year’s software project offers.

Read more …

Jugend forscht Reviewing

This year, Klaus Ostermann
Head
Klaus Ostermann
is a reviewer at the state-wide Jugend forscht competition in Baden-Württemberg. We are looking forward to some exciting innovations by junior researchers!

Read more …

Community Involvement

Klaus Ostermann
Head
Klaus Ostermann
was invited to participate in the following international venues:

Read more …

Dagstuhl Seminar on Domain-Specific Languages

Klaus Ostermann
Head
Klaus Ostermann
and Tillmann Rendel
Alumni
Tillmann Rendel
attend the Dagstuhl-Seminar on Domain-Specific Languages from February 1 to 6, 2015. Several participants are interested in language design patterns, and Tillmann Rendel
Alumni
Tillmann Rendel
co-organizes a breakout group on the topic with Ulrik Pagh Schultz and Eric Walkingshaw.

Read more …

Move to Tübingen

Prof. Klaus Ostermann
Head
Klaus Ostermann
and part of his group move to Tübingen University, where Prof. Ostermann now holds the chair of programming languages and software technology.

Read more …