Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Online Course

Introduction to functional programming in OCaml

Paris Diderot University via France Université Numerique


This course may be unavailable.

Go to class

Taken this course? Share your experience with other students. Write review


« Dans le cadre de l’épidémie du Coronavirus, ce MOOC est accessible en mode
« Archivé ouvert », sans forum ni suivi de l’équipe pédagogique, et aucune attestation de suivi avec succès ou de certificat ne sera délivré. »

About This Course

Functional programming is a programming paradigm which is rapidly attracting interest from a broad range of developers because it allows to write expressive, concise and elegant programs.

In this MOOC you will learn Functional programming using the OCaml programming language.You will discover the powerful mechanisms that are offered to build and manipulate complex data structures in a clean and efficient way. And you will see how functions play a central role, as first-class values that can be freely used in any place where an expression can appear.

The OCaml programming language is a member of the ML language family pioneered by Robin Milner. An important feature of OCaml is that it reconciles the conciseness and flexibility of untyped programming languages (like Python, for example) with the safety of strongly typed programming languages (like Java, for example). The OCaml compiler performs in fact a type inference. Types of identifiers do not have to be declared but are inferred by the compiler at the moment of definition of an identifier, and then used for assuring type correctness when using an identifier.

We will start by using OCaml as a purely functional programming language. At the end of this MOOC we will see that OCaml is in fact a multi-paradigm language which allows you to combine the functional programming style with the imperative programming paradigm.


This course will be held in English. To follow this course we expect from you that you have already some basic knowledge of informatics, in particular you should already know how to write simple computer programs in some programming language. For instance, you should know concepts like variables (or identifiers), functions (or procedures, methods), conditionals, and loops.

Course Staff

Roberto Di Cosmo

Roberto Di Cosmo is professor of computer science at University Paris Diderot, director of Irill, currently on leave at INRIA. His research interests include functional and parallel programming, type systems, logic, rewriting, and the static analysis of large software collections.

Yann Regis-Gianas

Yann Régis-Gianas teaches computer science at Université Paris-Diderot. His research at the PPS laboratory focuses on the theory and the design of programming languages. He did his PhD in the INRIA team that develops OCaml and is now in the development team of the Coq proof assistant.

Ralf Treinen

Ralf Treinen is professor of computer science at University Paris Diderot. Symbolic constraint solving, verification and application of formal methods to the quality assurance of software components are among his current research interests. He is also a member of Irill.

Course Schedule

  • Week 0: Introduction and overview
  • Week 1: Basic types, definitions and functions
  • Week 2: Basic data structures
  • Week 3: More advanced data structures
  • Week 4: Higher order functions
  • Week 5: Exceptions, input/output and imperative constructs
  • Week 6: Modules and data abstraction


Each course sequence, except those of the introductory week, will be completed by a series of small programming exercises. You will do your exercises directly in your web browser, and the correctness of your answer will be automatically assessed by the system.

At the end of the course you will have to complete a small programming project in order to obtain the certificate of attendance.

Terms Of Use

  • Course: Creative Commons BY NC ND license : The user must include the name of the author, it can exploit the work except in a commercial context and can not make any changes to the original work.
  • Content produced by users: restrictive license. Your production remains your intellectual property and can therefore not be reused.


The fourth edition of the OCaml MOOC is funded by The OCaml Software Foundation and its sponsors.

Taught by

Ralf Treinen, Yann Régis-Gianas and Roberto Di Cosmo


Reviews for France Université Numerique's Introduction to functional programming in OCaml Based on 4 reviews

  • 5 stars 75%
  • 4 star 25%
  • 3 star 0%
  • 2 star 0%
  • 1 star 0%

Did you take this course? Share your experience with other students.

Write a review
  • 1
Prose S
by Prose is taking this course right now, spending 10 hours a week on it and found the course difficulty to be very hard.
To quote Wikipedia "OCaml unifies functional, imperative, and object-oriented programming under an ML-like type system. Thus, programmers need not be highly familiar with the pure functional language paradigm to use OCaml. " The language has some other compelling advantages (eg mature libraries and...
Was this review helpful to you? Yes
Anonymous completed this course.
This If you're interested in learning the basis of functional programming in OCaml, I would recommand to take this MOOC ! The content is clear.

Was this review helpful to you? Yes
Mark B
by Mark completed this course.
Was this review helpful to you? Yes
Kuronosuke K
Kuronosuke completed this course.
Was this review helpful to you? Yes
  • 1

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free

Never stop learning Never Stop Learning!

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free