Functional Programming
Personal
Lecture | Prof. Dr. Peter Thiemann | thiemann@info... |
Exercise | Janek Spaderna | spadernj@info... |
Time and place | Lecture: Wednesdays, 14-16, SR 051-00-031 | Zoom meeting (lectures) |
Tutorials: Fridays, 14-16, online | BBB meeting (exercises) |
News
2023-02-05 | Exam information |
2023-01-18 | ONLY RECORDING THIS WEEK |
2022-12-07 | NO LECTURE THIS WEEK |
2022-10-21 | BBB meeting for the exercises |
2022-10-19 | Zoom meeting for the lectures |
2022-10-01 | GitHub page |
2022-10-01 | Homepage online |
Lecture Materials
Note: "Recordings" are unedited screen recordings of the lecture.
Exercises
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
Organization
Modality of exercise
Exercise sheets are added to the website one week in advance. Exercises are not graded, but solutions may be submitted. If you want to check your work, you are of course welcome to ask during the exercise sessions or by email. Solutions will be discussed during the exercise session.
Exam
The exam will be a Take-Home Exam. It will be available by 2023-03-13 23:59. You have 48 hours to work on the exercises. Submission deadline: 2023-03-15 23:59.
The exam will be made available through the Ilias course Functional Programming - Take Home Exam - WS22/23. Exam submission will be handled through that same course. If you registered for the exam you should have received an e-mail containing an invitation link. Please contact us if you need access to the Ilias course.
Communication
Announcement 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!