Parisian Master of Research in Computer Science
Master Parisien de Recherche en Informatique (MPRI)

Functional programming and type systems (48h, 6 ECTS)

Person in charge: Didier Rémy

See more details and all resources on the course's page

Teachers in 2020-2021


This course presents the principles and formalisms that underlie many of today's typed functional programming languages.

The course is made up of three parts and cannot be split.


Two written exams (a partial and a final exam) and one programming project or several programming exercises are used to evaluate the students that follow the full course. Only the partial exam will count to grade students who split the course.

Only course notes and hand written notes are allowed for the written exams.

Previous exams are available with solutions, but for a slightly different content of the course.

Programming project

As part of this course, the students will be given an individual programming task or several programming exercises that will be used to illustrate, put into practice, or explore in detail one particular topic of the course. These will count for the evaluation of the students.


Elementary notions of operational semantics and lambda-calculus (rewriting rules, inference rules), and a taste for programming, particularly in OCaml.

Languages and lecture notes

The course notes are in English. The lectures are by default in French, but English will be used if French is a real problem for some students.

Pedagogic team

Universités partenaires Université Paris-Diderot
Université Paris-Saclay
ENS Cachan École polytechnique Télécom ParisTech
Établissements associés Université Pierre-et-Marie-Curie CNRS INRIA CEA