Semantics and Functional Programming
HHU spring/summer semester 2024 edition

fernsehturm.jpg

Figure 1: Fernsehturm, Berlin 1968 (Horst Sturm)

Last updated: "[2024-05-21 Tue 16:24]"

Syllabus

1. Course description

This course is intended primarily as a first introduction to functional programming, aimed at students with an existing background in logic and/or linguistics. The programming language we'll be using in this course is Haskell - a statically-typed, purely functional language. Although not as common as languages such as python, Haskell is a general-purpose programming language with industrial applications.

For our purposes, Haskell is especially compelling since its design is inspired by mathematical tools commonly deployed in linguistic theory, such as the lambda calculus, type theory, and category theory. The main topic of this course is "computational semantics", but from a symbolic/algorithmic, rather than a data-driven perspective. Over the course of the semester, we'll gradually build up a working knowledge of Haskell by implementing logical constructs used in linguistics, such as Context Free Grammars and Montagovian fragments as programs.

This will be an extremely hands-on course, and students should ideally expect to bring a laptop to class. We'll set up a Haskell development environment together, and homework exercises will involve concrete programming tasks.

2. Haskell resources

3. Tentative Schedule

Class takes place Tuesday 16:30-18:00 in 2321.U1.72 (Z 34).

date class
April 9 NO CLASS
April 16 Lambda calculus
April 23 Intro to Haskell
April 30 (remote) Types and strings
May 7 Types and typeclasses
May 14 Fragments i: syntax
May 21 Fragments ii: semantics
May 28 Model checking
June 4 Meaning composition
June 11 Functors
June 18 NO CLASS
June 25 Applicatives
July 2 Monads
July 9 Student presentations
July 16 Student presentations

4. Lambda calculus

5. Intro to Haskell

6. Types and strings

7. Types and typeclasses

8. Fragments i: syntax

Author: Patrick D. Elliott

Created: 2024-05-21 Tue 16:24

Validate