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

DateTypeTopicMaterialRecordings
Tu 2024-10-15LectureIntroduction00-intro.pdf, 01-starting-haskell.pdf
Fr 2024-10-18LectureIntroductionSlidesVideo

Exercises

DateDeadlineTopic

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!