Two Day Course: Tomas Petricek & Phil Trelford's Functional Programming in .NET, 27-28 October, 2011


Tomas Petricek & Phil Trelford are two major and well-known contributors to the F# Community and the F# London User Group.

Tomas and Phil have teamed together to offer a two day course on Functional Programming in .NET. The course will be held at SkillsMatter in London on 27-28 Oct 2011.

Tomas Petricek’s and Phil Trelford’s two-day Functional Programming in .NET course explains concepts that you need to write modern applications for .NET using F#, C# with LINQ as well as current and upcoming .NET technologies that arise from functional programming ideas.

Functional ideas are becoming ubiquitous in the .NET world. F# is a Visual Studio language; C# 3.0 includes many functional constructs; Reactive extensions (Rx) are based on functional design and upcoming version of C# is inspired by F# asynchronous workflows.

Learning several simple functional concepts will help you understand these technologies and use them effectively. This means that the course will make you a better programmer even if you’re not going to immediately start using F#. This course is based on experience of developing commercial applications in F# and we’ll discuss good ways of introducing F# to your daily work.

  • You’ll learn how to use and understand functional programming concepts and technologies in practice on the .NET platform.
  • Think in the functional way and use this thinking when designing .NET applications
  • Write effective and succinct code in F#
  • Combine F# functional libraries F# with object-oriented components in C#.
  • Model problem domains using functional types
  • Write reactive and asynchronous applications


Day 1 (Introducing functional concepts)

  • From functional programming in C# to F#
  • How F# fits with the rest of the world?
  • Translating object-oriented C# to F#
  • Using immutable types in C# and F#
  • Working with functional concepts
  • Using functions as values
  • Declarative list processing and how LINQ works
  • Declarative event processing using F# and Reactive Extensions (Rx)
  • Understanding and refactoring functional code
  • Parallelizing CPU-intensive computations
  • Testing functional programs and .NET applications with F#

Day 2 (Point of sale application in 1 day)

  • Understanding functional design
  • Using primitive functional data types: 
Records and Discriminated unions
  • Domain modelling using functional types
  • Writing programs as transformations 
between domain models
  • Creating abstract data types
  • Reactive and data-oriented programming
  • Sequence expressions and the workflow syntax
  • Asynchronous user-interface programming
  • Completing Silverlight application


If you are software developer or architect and want to dip your toes into functional programming, the Functional Programming in .NET course is for you! No matter if you want to start evaluating or using F#, if you want to gain new perspective on software architecture or if you want to become a better C# programme, the course is for you.


The course doesn’t require any prior experience with F# or functional programming. To benefit from the course, you should have working knowledge of some object-oriented language. Before the course, we provide a brief document that reviews important features of C# 3.0 (from the standard object-oriented point of view) that we’ll use in some practical exercises during the first day.


A brief theoretical introduction to every concept will be followed by numerous practical demos and exercises. At the end of the second day, you’ll leave with a complete real-world application developed using F#.