Course OCaml development


  • Length: 5 Days
  • Pricing: 20 000€ for 10 people, customizable with duration and location
  • Attendees: developpers
  • Available remotely: yes
  • Tutors: our engineers

Make it happen!



Overview

This course has been designed by the OCamlPro team to enable developers to build upon their experience of other programming languages, such as C, C++, Python, C# or Java, to program confidently in OCaml. This covers all the main aspects of the OCaml language and tools and interleaves theory and practice. Depending on the duration and the customer needs, we can focus more on specific topics and design suitable learning projects.

The course is half theory, half practice. Participants will have to write and adapt simple applications in OCaml, to build and test them.

Objectives

  • Discover functional programming in OCaml
  • Modelize real-world data in OCaml types
  • Use the OCaml environment in a production context
  • Read and write OCaml code
  • Understand the architecture of OCaml applications

Prerequisites

  • Being familiar with another programming language
  • A computer access (Linux, Mac OS X, or Windows). An easy-to-install OCaml archive will be provided before the course to setup a minimal but productive environment.

  • Road Map

    1. Presentation of OCaml
      • History of OCaml
      • OCaml Ecosystem
    2. Setting up an OCaml environment
      • The OCaml distribution
      • The OPAM package installer
      • Editor modes for OCaml
    3. OCaml develpment tools
      • The OCaml toplevel
      • The OCaml compilers
    4. Basics of the language
      • Predefined types and simple values
      • Functions and recursivity
      • OCaml Imperative programming
      • Modules and Functors
      • Exceptions management
    5. Type-driven programming
      • Polymorphism and parametric types
      • Variants and records
      • Pattern-matching
    6. OCaml Standard Libraries
      • Basic modules
      • Containers
      • Input and Output
    7. More OCaml tools
      • Libraries and packing
      • Preprocessing: camlp4 and ppx
      • Lexer and Parser generators
    8. Overview of OCaml extensions
      • Polymorphic variants
      • Objects and classes