Teaching staff

Prof. Dr. Christian Pape

Prof. Dr. Martin Sulzmann

Content

Algorithms and Data Structures

Focus on dictionary like data structures: lists, hash tables, and search trees. The algorithms are given in pseudo code. Time and space analysis of the presented algorithms.

The lecture notes are provided as a pdf file.

Programming language methods and design

We make use of the Go programming language various aspects of programming language design and analysis. Rough overview of Go.

The Go programming language

The lecture notes are divided into three parts.

Part 1: Go basics + higher-order functions + lambda calculus

Part 2: Types, methods and overloading

Part 3: Concurrency

There are two extended examples: parser combinators and regular expression derivatives

Why Go?

Why (sadly) not Haskell? Purely functional.

Why not Python? Prefer statically typed languages.

Why not Java 9/C++17? Overkill.

Go is a well-engineered language that integrates many established programming language concepts (simple type inference, method overloading, message-passing concurrency, ...).

Evaluation

Written final exam (90min + closed book).