Seminar: Principles of Programming Languages

SupervisionProf. Dr. Peter Thiemann
Time and PlaceSR 00-019, Geb. 079Tue, 14:00 -- 16:00
AssistanceLuminous Fennell


Programming language research is an area of computer science that concerns itself with

  • the design of new programming languages, programming language features and programming paradigms to aid developers in writing correct software
  • the formal study of programming languages and their properties.
  • the design of formal methods and tools to analyze and help understand computer programs.

In this seminar, we will read and discuss papers from particular areas of programming language research:

  • Probabilistic Programming
  • Logic Programming
  • Verification
  • Typestate & Linear Types
  • Program Synthesis
  • Analysis for JavaScript
  • Functional Programming


Each participant chooses a topic from the topic list below. The participants will need to prepare 30 to 40 min presentation about their topic as well as a written summary. We have several dates scheduled for the presentations. We plan to have two presentations per date.

The written summary has to be prepared in LaTeX using the llncs style and should not exceed 15 pages. The deadline for submitting the written summary is four weeks after the date of the corresponding presentation.


The final grade will be composed of the presentation (40%), the written summary (40%) and overall participation (20%).

List of topics


Date (Tuesday)PresentationsRoom
2015-10-27Topic assignmentSR 00-019, Building 079
2015-12-08Karim: Probabilistic Programming (Gordon et al 2014)SR 00-019, Building 079
2015-12-22Stefan: Uncertain<T>: a first-order type for uncertain data (Bornholt et al 2014) Arber: The Semantics of Predicate Logic as a Programming Language (Van Emden, Kowalski 1979).SR 00-019, Building 079
2016-01-19Christian: A Theory of Type Polymorphism in Programming (Milner 1978) Albrecht: Liquid Types (Rondon et al 2008)SR 00-019, Building 079
2016-02-02Arlind: Complete completion using types and weights (Gverno et al 2013) Daniel: Growing Solver-Aided Languages with Rosette (Torlak, Bodik 2013)SR 00-019, Building 079
2016-02-16Polina: Foundations of Typestate-Oriented Programming (Garcia et al 2014) Michael: Linear type theory for asynchronous session types (Gay, Vasconcelos 2010)SR 01-016, Building 101
2016-02-17Daniel B.: Concrete Types for TypeScript (Richards et al 2015)SR 01-016, Building 101