Prof. Dr. Christian Pape
Prof. Dr. Martin Sulzmann
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.
We make use of the Go programming language various aspects of programming language design and analysis. Rough overview of Go.
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, ...).
Written final exam (90min + closed book).