[ The attached tutorial code has now been updated for the F# Visual Studio 2010 Beta2 release (with matching CTP update for Visual Studio 2008) ] 

One of the great pleasures of my job is to go to conferences like JAOO and present on F# and other topics. This year I presented both a tutorial and a lecture at JAOO 2009, and I've included the tutorial and lecture slides below! Thanks to everyone who came along - I really enjoyed giving this one!

Some highlights of the code are:

  • Foundational material on F# async programming, and samples including:
    • Fetching web pages in parallel
    • The Bing translator sample using async programming
    • A Graphical, asynchronous twitter client in 50 lines
    • A Twitter feed example that uses F# first class reactive event processing to process the stream of feeds
    • An asynchronous web crawler
    • Processing images in parallel, using a mixture of I/O and CPU parallelism
  • An updated version of the famous Interactive DirectX demo
  • Lots of great micro samples on foundational topics such as
    • object oriented programming
    • language oriented programming
    • function composition
    • design patterns
    • discriminated unions
    • records
    • units of measure

The tutorial slides include important new slides on asynchronous programming. Over the next few blog entries I'll be taking a closer look at some of the material, especially in the areas of parallel and asynchronous programming.

I'd really appreciate your input on how we can make this tutorial even better. Giving an F# tutorial is enormously enjoyable and if you'd like to give a tutorial, please drop me a note (dsyme at microsoft dot com) and I'll send you the latest copy of the slides and code - we're already planning to add a few more , including a section on the standard F# "functional programming operators" such as List.map, List.fold etc.Send us your suggestions for further topics to cover!

Some of this material comes from Chris Smith, Matthew Podwysocki, Luke Hoban, Brian McNamara and James Margetson from the F# core team at Microsoft. Some snippets of the async samples showing the use of the PeriodicTable web service were co-developed with Robert Pickering (thanks Robert!)