Functional Programming (Winter 2024)
General Information
- Lecturer: Prof. Dr. Peter Thiemann
- Assistant: Hannes Saffrich
- Lecture: Tuesday, 14:15 - 15:45, Building 106, SR 04 007
- Tutorials: Friday, 14:15 - 15:45, Building 51, SR 00 031
- Livestream: Zoom meeting, Passcode: rPZCumB7H, used for lectures and tutorials
Lectures & Tutorials
Date | Type | Topic | Material | Recordings |
---|---|---|---|---|
Tu 2024-10-15 | Lecture | Introduction | 00-intro.pdf, 01-starting-haskell.pdf | |
Fr 2024-10-18 | Lecture | Introduction | Slides | Video |
Exercises
Date | Deadline | Topic |
---|
Content
This course conveys fundamental concepts of functional programming using the programming language Haskell.
Goal
Learning objectives from the module compendium: “Development of a non-procedural view on algorithms and data structures, confident handling of higher-order functions and data, knowledge and ability to apply fundamental functional programming techniques, knowledge of advanced programming concepts, ability to develop medium-size functional programs independently.”
Topic List
- Definition of functions, pattern matching, higher-order functions
- Types and type classes
- Algebraic data types
- Functional data structures
- Applicative parsers
- Monads and monad transformers
- Arrows
- Verification of functional programs
- Monadic I/O and stream I/O
Preliminaries
Interest in learning and applying new programming concepts and languages.
Literature
The book Programming in Haskell by Graham Hutton covers about 30% of the lecture. This book is available in the TF-library.
Stephen Diehl’s WHAT I WISH I KNEW WHEN LEARNING HASKELL
Exam
Communication
We provide a discord-like chat to allow for asynchronous questions about the lecture, exercises, and functional programming in general. You can log in there with your Ilias credentials.
Announcements will be posted on this page under the rubric News. Urgent announcements will also be sent via email through HisInOne. If you do not want to miss these announcements, you should register for the course in HisInOne!