FUN

Introduction to Functional Programming in OCaml (FUN)

Introduction to Functional Programming in OCaml (FUN)

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 course you will discover the power of Functional Programming, using the OCaml language to write concise, efficient 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.

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

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

Related Courses

Creative Programming for Digital Media & Mobile Apps (Coursera) Coursera
University of London,Goldsmiths, University of London

Creative Programming for Digital Media & Mobile Apps (Coursera)

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice. This course will teach you how to develop and apply programming skills to creative work. This is an important skill within the development of creative mobile applications, digital music and video games. It will teach the technical skills needed to write software that make use of images, audio and graphics, and will concentrate on the application of these skills to creative projects. Additional resources will be provided for students with no programming background.

Jun 22nd 2026
5-12 Weeks
Data Structures (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Data Structures (Coursera)

A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. In this course, we consider the common data structures that are used in various computational problems. You will learn how these data structures are implemented in different programming languages and will practice implementing them in our programming assignments.

Jun 22nd 2026
5-12 Weeks
Socle en Informatique (FUN) FUN
le cnam

Socle en Informatique (FUN)

Le numérique et l'informatique ont une importance toujours croissante tant dans le monde professionnel que dans la vie courante. Maitriser les bases du domaine est donc un enjeu important. La proposition de ce socle en informatique est de centrer l'initiation à l'informatique sur les algorithmes et les programmes. Il s'adresse aussi bien aux débutants, qu'aux faux débutants qui ont déjà des notions mais vagues ou lointaines et aux initiés qui ne se sentent pas sûr d'eux-mêmes et souhaitent consolider leurs connaissances.

No sessions available
5-12 Weeks
Ordered Data Structures (Coursera) Coursera
University of Illinois at Urbana-Champaign

Ordered Data Structures (Coursera)

In this course, you will learn new data structures for efficiently storing and retrieving data that is structured in an ordered sequence. Such data includes an alphabetical list of names, a family tree, a calendar of events or an inventory organized by part numbers. The specific data structures covered by this course include arrays, linked lists, queues, stacks, trees, binary trees, AVL trees, B-trees and heaps. This course also shows, through algorithm complexity analysis, how these structures enable the fastest algorithms to search and sort data.

Jun 24th 2026
4 Weeks
Algorithms on Graphs (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Algorithms on Graphs (Coursera)

If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders in Facebook, you're going to work with graphs and algorithms on graphs.

Jun 22nd 2026
5-12 Weeks
Crash Course on Python (Coursera) Coursera
Google

Crash Course on Python (Coursera)

This course is designed to teach you the foundations in order to write simple programs in Python using the most common structures. No previous exposure to programming is needed. By the end of this course, you'll understand the benefits of programming in IT roles; be able to write simple programs using Python; figure out how the building blocks of programming fit together; and combine all of this knowledge to solve a complex programming problem.

Jun 23rd 2026
5-12 Weeks
Cloud Computing Concepts, Part 1 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts, Part 1 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more!

Jun 22nd 2026
5-12 Weeks
Écrivez votre premier programme avec Java (FUN) FUN
le cnam

Écrivez votre premier programme avec Java (FUN)

Le cours est une initiation aux bases de la programmation. Il vise à faire réaliser quelques programmes simples utilisant les instructions de base (if, boucles, tableaux). A travers cette réalisation, le but est de faire comprendre ce qu'est un programme applicatif et par quel processus il est créé. Il s'agit de comprendre ce qui se passe quand on clique sur une icône.

No sessions available
5-12 Weeks
Data Engineering with Rust (Coursera) Coursera
Duke University

Data Engineering with Rust (Coursera)

Are you a data engineer, software developer, or a tech enthusiast with a basic understanding of Rust, seeking to enhance your skills and dive deep into the realm of data engineering with Rust? Or are you a professional from another programming language background, aiming to explore the efficiency, safety, and concurrency features of Rust for data engineering tasks? If so, this course is designed for you.

Jun 25th 2026
4 Weeks
Introduction to CSS3 (Coursera) Coursera
University of Michigan

Introduction to CSS3 (Coursera)

The web today is almost unrecognizable from the early days of white pages with lists of blue links. Now, sites are designed with complex layouts, unique fonts, and customized color schemes. This course will show you the basics of Cascading Style Sheets (CSS3). The emphasis will be on learning how to write CSS rules, how to test code, and how to establish good programming habits.

Jun 22nd 2026
4 Weeks