Practical Machine Learning with Functional Programming Workshop

Practical Machine Learning with Functional Programming Workshop

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.


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.

About the workshop

Language: The workshop will be held in English.
Time: from 9.30am to 5.30pm each day.
Laptop: Yes, see above for further instructions.
Dress code: Informal.
Included in the price: Two coffee breaks and lunch with the trainer and the other attendees are also included in this ticket… because networking matters :-)

How to get to Milan?

You can get to Milan City Centre by flying in to one of these three airports: Linate, Malpensa, and Bergamo Orio al Serio. Not bad, isn’t it? :-)

Check our Venue & Location Info Page and get it sorted! With plenty of handy information on accommodation, travel options, where to find the training venue, and much more!
Not enough? Drop us a line at [email protected].


The workshop is subject to the confirmation of a minimum number of registered attendees. We’ll be sending a confirmation email to all registered attendees no later than one month prior to the workshop start date.

Questions? Drop us a line: [email protected]

Learn more

Read our Interview with Mathias – When Man and Machine (Learning) Collide!

Our attendee Cecilia Nardini wrote an awesome blog post on Mathias’ workshop: “Two days in (F) sharp company”! Check it out! :-)

Watch the video of Mathias Brandewinder’s meetup talk from our serie “An Evening with”: Deep Learning with CNTK and F# (Milan, April 2018).

Are you interested in this course?

If you have any specific questions, or if you want to receive more information on dates, content or offers about this course, drop us a line. We'll gladly get back to you!


    Get exclusive content from experts in software development, technology, business and design!


    Subscribe to our newsletter!