Functional Programming

Spring 2024


[Announcements] [General Information] [Additional Material] [Schedule]

Announcements


General Information

Course name: Functional Programming (Programmation Fonctionnelle)
Instructor: Michail Lampis
Email: michail.lampis AT dauphine.fr

As the name suggests, the topic of this course is the paradigm of Functional Programming, for which we will use the programming language Haskell. Functional programming is a style of programming where functions are first-class citizens that has many applications in modern computing (especially machine learning). We will work on Haskell because it is one of the purest languages in this paradigm (although FP ideas appear in most modern programming languages, such as Java, Python, etc.).

More information on the topics to be covered appears in the schedule below (which will be updated during the semester).

The course consists of 1.5 hours of weekly lectures, followed by 1.5 hours of TD, and 1.5 hours of TP TP sessions have been canceled. Students are partitioned into three groups for the TD/TP. For the TD/TP click here.

Grading: Your final grade is the maximum of (a) your grade in the final exam; or (b) the result of the formula 0.7E+0.3P, where E is your grade in the final exam and P is your grade in the midterm exam (partiel, during the week of 18/3).


Additional Material / Bibliography


Course Schedule

Here you will find a tentative schedule (updated regularly throughout the semester) and the slides we will use in class.

Lecture No. Date Topic Notes and code
1 16/1 Introduction slides
2 23/1 Types slides
3 30/1 More types - Currying
4 6/2 List Operations slides
5 13/2 Map, Fold, and higher-order operations
6 27/2 Foldl and Foldr continued. Data types. slides
7 5/3 Defining Data Types
8 12/3 Functors slides
9 26/3 Applicatives slides
10 2/4 Monads slides
11 23/4 IO Monad slides
12 30/4 Dynamic Programming slides
13 7/5