Skip to main content
FUN MOOC
  • FAQ
  • Home
  • News
  • Courses
  • GRADEO
  • Diplômes
  • Organizations
  • You are here:
  • Home
  • Courses
  • Introduction to Functional Programming in OCaml

Introduction to Functional Programming in OCaml

Ref. 56002
CategoryComputer science and programming
  • Duration: 6 weeks
  • Effort: 24 hours
  • Pace: ~4 hours/week
No open course runs

Description

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.

Prerequisites

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.

Assessment and certification

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.

Course plan

    • Introduction and overview
    • Basic types, definitions and functions
    • Basic data structures
    • More advanced data structures
    • Higher order functions
    • Exceptions, input/output and imperative constructs
    • Modules and data abstraction

Course runs

Archived

  • From Oct. 19, 2015 to Jan. 5, 2016
  • From Sept. 17, 2018 to Dec. 20, 2018
  • From Sept. 22, 2019 to Jan. 1, 2020

Course team

Roberto Di Cosmo

Categories

Roberto Di Cosmo is professor of computer science at University Paris Diderot, director of Irill, currently on leave at INRIA.

Yann Regis-Gianas

Categories

Yann Régis-Gianas teaches computer science at Université Paris-Diderot.

Ralf Treinen

Categories

Ralf Treinen is professor of computer science at University Paris Diderot.

Organizations

Université de Paris

Partners

License

License for the course content

Attribution-NonCommercial-NoDerivatives

You are free to:

  • Share — copy and redistribute the material in any medium or format

Under the following terms:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • NonCommercial — You may not use the material for commercial purposes.
  • NoDerivatives — If you remix, transform, or build upon the material, you may not distribute the modified material.

License for the content created by course participants

Attribution-NonCommercial-NoDerivatives

You are free to:

  • Share — copy and redistribute the material in any medium or format

Under the following terms:

  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
  • NonCommercial — You may not use the material for commercial purposes.
  • NoDerivatives — If you remix, transform, or build upon the material, you may not distribute the modified material.
FacebookTwitterLinkedin

Learn more

  • Help and contact
  • About FUN
  • Legal
  • Privacy policy
  • User's charter
  • General Terms and Conditions of Use
  • Sitemap
  • Cookie management
Powered by Richie