Practical Machine Learning with Functional Programming

Practical Machine Learning with Functional Programming

Solving real-world problems with Machine Learning and F#

Course abstract

If you are curious about what Machine Learning is about, and want to sharpen your developer skills, come with your laptop and… let’s hack together!

In this workshop with Mathias Brandewinder, you will be working on real-world datasets, applying a variety of machine learning techniques, using a functional programming approach.

In the process, you will gradually learn simple but fundamental and widely applicable machine learning ideas, and develop a sense for what it means to “do machine learning”, and how it is similar and different from writing “normal” code.

Rather than taking an abstract mathematical view of machine learning or jump straight into frameworks, we will implement together a selection of classic prediction algorithms, across datasets illustrating different practical problems you will encounter.

By coding things from the ground up, you will develop an intuition for how things actually work inside the black box, what types of techniques are available and the problems they are suitable for, and some of the potential issues you need to watch out for.
And, as we work our way through different problems, you will be gradually introduced to F# and functional techniques and how they are helpful.

Beyond F#, many of the ideas presented are applicable to other languages, functional or not… come along if you want to deep dive on Machine Learning!


  • We will explore a variety of problems, using 4 different datasets, looking at questions such as automatically recognizing what number is in a picture, detecting what language a piece of text is written in, predicting usage of a service for a particular day using historical data, or (perhaps the most important one) whether a wine is any good, based on its chemical profile.
    Each dataset covers common different situations you might encounter: numerical and categorical inputs, and text, to a lesser extent, because natural language processing is a very large topic all by itself.
  • We will cover a wide range of techniques, to establish a good understanding for the overall machine learning landscape: what tools exist, what problems they are useful for, and simply what they are called – searching for things when you don’t know what they are called is hard! Specifically, we will present classification and regression prediction techniques (k nearest neighbors, perceptron/logistic regression, decision trees and random forests, classic regression), and unsupervised techniques that are useful to extract information from larger datasets (k-means clustering, principal components analysis).
  • We will discuss neural networks, but only at a high level.
  • We will emphasize primarily simple techniques that are broadly applicable. Rather than jumping directly into libraries, we will program algorithms from the ground up, using code as a vehicle to explore mathematical ideas in an interactive and concrete way, and build an intuitive understanding of how things work. In the process, we will see that the fundamental ideas are less complicated than they appear, and that seemingly quite different problems and techniques are in the end quite similar.
  • We will code everything in F#, in the scripting environment (we will use the Code editor, but any other IDE or editor running F# should do). Each problem is designed to be F# beginner friendly and uses interactive scripts where language concepts and syntax are progressively introduced, in the context of the problem at hand.
  • In the process, you will learn how functional programming techniques can be used to great effect for data manipulation and exploration, from reading data with type providers to reshaping it with pipes and filters, and more. Beyond F#, many of the ideas presented are applicable to other languages, functional or not.

Machine learning and regular development both involve writing code, but are subtly different.
Throughout the workshop, we will highlight these differences, and share practical tips on what to look out for, and emphasize setting up a workflow / methodology to enable reliable feedback and avoid common pitfalls.

What you will learn

By the end of the workshop, you will…

  • Understand the language used in machine learning discussions
  • Know how to search for tools to solve your issues, and evaluate them
  • Be comfortable using F# scripts to explore and manipulate data
  • Setup machine learning experiments to iteratively build prediction models
  • Have picked up new ideas that will make you look at code differently
  • Have had quite a bit of fun hacking at code together!

Expect to get your hands dirty

Machine Learning and Functional Programming are both very hot topics these days; they are also both rather intimidating for the beginner.
In this workshop with Mathias Brandewinder, we’ll take a 100% hands-on approach, and learn practical ideas from Machine Learning, by tackling real-world problems and implementing solutions in F#, in a functional style.

In the process, you will see that once you get beyond the jargon, F# and Machine Learning are actually not all that complicated – and fit beautifully together.

Mathias will guide you in this journey towards writing effective F# code with lots of coding on fun problems.


Tools & Laptop: Should I take my laptop with me?
Yes. You will need a laptop with an IDE or editor running F#. Check www.fsharp.org for instructions on how to get setup.

Entry requirements: Is there anything I need to do before the workshop
No F# or Machine Learning prerequisites: complete beginners are totally welcome.

Teaching language: What language will this workshop be in?
This course will be taught in English.

Cosa dicono di questo workshop…

A very intense workshop to learn from scratch what and how to put Machine Learning in the field.Matteo Baglini

Mathias is able to explain Machine Learning concepts in a very easy way, I was able to understand the fundamentals without any previous knowledge on the subject.
As a bonus, you will learn a beautiful and very useful language to apply those techniques (F#).Valerio Borioni

This workshop is great for getting your feet wet in the massive topic of modern machine learning techniques.
As someone who already used F# before, I was amazed to witness first-hand how applicable this amazing language is in this area, and probably the best testimony on the teaching skills of Mathias.Jan Van Ryswyck

Mathias Brandewinder

Mathias has been writing code professionally for the past 10 years or so, and enjoying most of it. He used to work mostly in C#, until he discovered F# and fell in love with it.

His original background has little to do with programming: in a past life, Mathias studied economics, and operations research. He is interested (among many things) in applied math in general, and machine learning and decision theory in particular.

Info pratiche sul workshop

Lingua: Il corso sarà tenuto in inglese.
Orari: dalle 9.30 alle 17.30 ciascun giorno.
Laptop: Sì, è necessario che porti il tuo laptop con te.
Dress code: Informale.
Compreso nel prezzo: Nel prezzo del biglietto sono compresi i coffee break e i pranzi insieme al docente e agli altri corsisti. Perché anche il networking è importante! :-)

Come arrivare a Milano?

Puoi raggiungere il centro di Milano grazie ai collegamenti con ben tre aeroporti: Linate, Malpensa, e Bergamo Orio al Serio. Non male, vero? :-)

Visita la nostra pagina Venue & Location Info Page e inizia a preparare il tuo viaggio! Ci troverai un sacco di informazioni utili su dove dormire, alcune opzioni di viaggio, dove si trova la venue del workshop, e molto altro ancora!

Domande? Dubbi? Scrivici a at [email protected].


Il workshop sarà confermato al raggiungimento del numero minimo di partecipanti. Invieremo una comunicazione con la conferma del corso agli iscritti al più tardi tre settimane prima del corso.

Domande? Dubbi? Scrivici a [email protected].


Leggi la nostra intervista a Mathias Brandewinder When People and Machine (Learning) Collide!

Cecilia Nardini ha partecipato all’edizione di aprile 2018 del workshop e ha raccontato la sua esperienza nel blog post Two days in (F) sharp company. Da non perdere! :-)

Guarda il video del talk di Mathias Brandewinder, registrato durante un meetup della nostra serie “An Evening With” a Milano nell’aprile 2018: Deep Learning with CNTK and F#.

Ti interessa questo corso?

Se hai delle domande specifiche, o vuoi ricevere maggiori informazioni, scrivici. Saremo felici di risponderti!


    Vuoi ricevere una volta a settimana i nostri contenuti esclusivi su tecnologia, sviluppo software, business e design?


    Iscriviti alla newsletter!