Mathias Brandewinder's Bumblebee: an Artificial Bee Colony algorithm in F#

Sometime in 2010, after years of C# development, I discovered F#, and found programming in a functional style both tricky and fun. Inspired by an article on Artificial Bee Colony algorithms, an optimization algorithm that mimics the intelligent foraging behaviour of honey bee swarms, I decided as a learning project to convert it from C# into an F# library, Bumblebee, which is available open-source at http://bumblebee.codeplex.com. In this talk, I want to do 4 things:
1) cover the basics of Artificial Bee Colony algorithms, and illustrate what problems it can help solve,
2) solve a problem together with Bumblebee, and use it as a F# primer,
3) open the hood and discuss some of the design aspects (making the API both F# and C# friendly, using the Task Parallel Library for parallelism, using OO and functional styles together, unit testing...)
4) share my learning experience transitioning from a C#-mindset to thinking F#.

This talk should be particularly relevant for C# developers who are F#-curious. Knowing F# beforehand is not required, but a certain comfort with functional concepts, like LINQ in C#, will definitely help.

I have been writing software in C# for 8+ years, and loving every minute of it, except maybe for a few release days. I enjoy arguing about code and how to make it better, and get very excited when discussing TDD or F#. My other professional interests are applied math and probability. If you want to know more about me, you can check out my blog at http://www.clear-lines.com/blog/ or follow me on Twitter as @brandewinder.

Join or login to comment.

  • dave m.

    Does it make sense to bring laptops?

    January 7, 2013

People in this
Meetup are also in:

Create your own Meetup Group

Get started Learn more
Allison

Meetup has allowed me to meet people I wouldn't have met naturally - they're totally different than me.

Allison, started Women's Adventure Travel

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy