May 7, 2014


I love public speaking. I often speak about software engineering research, but also about my various hobby projects, including a library for SAT solving and a program that can play bridge, and professional activities like presenting and using social media as a researcher.

On this page you can find videos, slides and materials of past presentations. Want to see my speak? I might be close soon! Check out my upcoming appearances.

Using F# and genetic programming to play computer bridge

Bridge is a card game with two distinct phases: bidding and playing. For this talk, I will focus mainly on the bidding part, as that is most challenging. In the bidding phase, both pairs of players bid to reach ‘the contract’: the number of tricks they want to make, and with which trump color. Given the limited bandwidth of communication (players can only communicate with bids) the challenge is to get at the best bid. I made a DSL in F# to describe the bidding rules that her bot will bid with, and she will talk about its design and the choices she made.

For bidding, there are a number of standard systems, but of course she wanted to go a bid further*. Reaching the optimal bid is very important: Failure to make the contract results in a penalty, but not reaching a possible contract does too. Therefore, she used genetic programming to combine different existing bidding strategies to reach the perfect scheme.

*pun intended

VideoF# Exchange
Slides: No slides yet!

Program Derivation for Functional Programs

Despite what your boss thinks, programs don’t just appear straight out of specifications. But…what if they did?

In this session I will show you how to systematically and step-by-step derive a program from a specification. Functional languages especially are very suited to derive programs for, as they are close to the mathematical notation used for proofs.

You will be surprised to know that you already know and apply many techniques for derivation, like Introduce Parameter as supported by Resharper. Did you know that is actually program derivation technique called generalization?

Slides: SlideShare
What people thought:

A board game night with geeks 

So this one day, I am playing the board game Quarto with my friend and I wonder, can this game end in a tie, or is there always a winner? Normal people might have squabbled or shrugged, but not us nerds! We obviously abandoned the game, took our laptops to the local pub and started hacking. In this talk I will explain how I used F# to transform this problem to satisfiability, ran it through a SAT solver to discover if it can indeed end in a tie. I will also show how to apply the same technique to more useful problems such as scheduling and code breaking.

Videos: BuildStuff ’15FSharpConf ’16, LambdaDays ’16FSharp Conf
Slides: SlideShare

Functional Programming in Excel

This talk is about the world’s most popular programming language… Java? Python? COBOL?

No… Excel!

Excel somehow hits the sweet spot between being powerful enough to run entire domains like finance and insurance, but also easy enough to attract a huge audience. Why is that?

In this talk we’ll explore some of the mechanisms that make spreadsheets so powerful, while implementing a few interesting mathematical problems in spreadsheets. While doing that, you might learn some (functional) programming concepts too, as we’ll talk about sorting, dynamic programming and lambdas.

Video: NDC London 2016
Slides: No slides yet!


Spreadsheets are code

Spreadsheets can be considered to be the world’s most successful end-user programming language. In fact, one could say spreadsheets are programming. This talk starts with a comparison of spreadsheets to software: spreadsheets are similar in terms of applications domains, expressive power and maintainability problems. We then reflect upon what makes spreadsheets successful: liveness, directness and an easy deployment environment seem contribute largely to their success.
Being a programming language, several techniques from software engineering can be applied to spreadsheets. We present an overview of such research directions, including spreadsheet testing, reverse engineering, smell detection, clone detection and refactoring. Finally, open challenges and future plans for the domain of spreadsheet software engineering are presented.

Videos: SANER FoSE symposium

Spreadsheets for developers 

Spreadsheets are often dismissed by developers for not being “proper programming” but that is not true. Since I have shown that spreadsheets are Turing complete, you have no excuse to diss them any longer. In this session, I will implement an actual sorting algorithm in Excel to show you its power and elegance. After all, spreadsheets are ‘live’ and functional, so they have everything going for them! Furthermore they are very fit for TDD and rapid prototyping. Don’t fight spreadsheets any longer, but learn to love them.

Video Strangeloop ’14, CodeMesh ’15
Slides: SlideShare
MaterialSelection sort spreadsheet

Putting the science in computer science

Programmers love science! At least, so they say. Because when it comes to the ‘science’ of developing code, the most used tool is brutal debate. Vim versus emacs, static versus dynamic typing, Java versus C#, this can go on for hours at end. In this talk, I share some research in software engineering that tries to understand and explain what programming methods, languages and tools are best suited for different types of development.

Video: ALE ’14
Slides: SlideShare

Spreadsheets are graphs too 

In this talk I explain how I replaced SQL server by Neo4J for my spreadsheet analysis toolkit.

Slides: SlideShare

Social media for the busy scientist 

This talk explains how to start to use social media to improve your visibility as a researcher. It was chosen SlideShare of the day in November 2013 and has been viewed 20.000 times.

Slides: SlideShare

Spreadsheets – The dark matter of IT 

This talk is about the omnipresence of spreadsheets in the business world and what we can learn from the success of spreadsheets.

Videos: Strata London 2013Strata Santa Clara 2014, screencast.

Overview of my dissertation

If you don’t feel like reading 150+ pages of academic spreadsheet research, try your luck on this summary instead.

Slides: SlideShare

3 thoughts on “Presentations

  • Loving your EX101x Data Analysis class.

    Trying to decypher the “Van Buuren” factor reference from your “Spreadsheets for developers” talk.

    • Hi Ken,

      Thanks! The factor refers to song ‘Everyday I love you more’ by Armin van Buuren, it is the factor with which love increases everyday.

      Hope that helps 🙂

  • Hi! I’m enjoying the EX101x a lot. As a consultant, I need to analyse huge amounts of data from time to time. I do, however get a bit frustrated when I get all that data transformed into visual information. Excel graphs are good, but maybe they are not the best way to visualize conclusions, specially when today we have other resources to create beautifully designed infographs like those we see in the magazines or on the Internet. Do you think it should be a major concern for Excel developers.? Thank you! 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *