Functional Programming Patterns and Category Theory

Masterclass offered by: dr. Giuseppe Maggiore

Whom is this master class for

You have good experience with functional programming languages, either through work or as a hobby. You have witnessed first hand its power and wish for more. You have heard that there is indeed more: complex topics such as monads, meta programming, and category theory. From what you see these concepts promise to take the already powerful functional programming paradigm to the next level. You are overwhelmed by the apparent large number of highly complex tutorials and guides on topics such as monads, but you want to learn all these secrets anyway. Beyond the theory you are also planning to build software on your own to truly apply all of this.

What will you learn

After this class is done, you will master the following concepts at a professional level:

What does the master course in functional programming look like

The course is followed in a group of maximum 10 people. The costs of a two hour lecture are €60, -. You will receive a receipt. The number of lectures depends on your previous level of knowledge. With some programming knowledge, it should take about 10 lectures to become proficient with the topics listed above.

To start the master course in functional programming, you will first make an assessment interview. After we decide we wish to work together, we will make a learning agreement.

Successfully completing the course means that you will have absorbed and become proficient with the topics listed above. This means that I will release a certificate and will be available to support your skills for job interviews or with your superiors.

Some practical things

Please bring a laptop with Microsoft Visual Studio Community Edition and the latest version of GHC installed. As an alternative to Visual Studio you might choose to use Xamarin Studio. Make sure that everything is installed and functions properly before the first lecture. Experience suggests that not doing so will result in a significant waste of time.

The course location depends on the number of participants. We will aim towards always remaining within a distance of 5km from the center of Rotterdam.

In conclusion

Functional programming is an ever-growing, highly promising programming paradigm. Functional programming languages seem complex at first, but then deliver the experience of programs that are short, elegant, readable, and "just work". Most experienced functional programmers find that large classes of bugs simply disappear when using a modern functional language, together with a lot of verbosity. Yet beyond the first benefits there seems to open a whole new world. The clarity and clean design of functional languages makes it possible for some higher order, functional "design patterns", to emerge. It is through these design patterns that a yet higher level of efficiency in communicating abstractions via source code can be achieved.