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.
Video: F# 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?
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.
Functional Programming in Excel
This talk is about the world’s most popular programming language… Java? Python? COBOL?
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.
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.
Spreadsheets are graphs too
In this talk I explain how I replaced SQL server by Neo4J for my spreadsheet analysis toolkit.
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.
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.
Overview of my dissertation
If you don’t feel like reading 150+ pages of academic spreadsheet research, try your luck on this summary instead.