This is the first article of my F# Intro Series for students looking to master F# and courses involving functional programming.

If you have found or have been recommended this article, chances are that you are faced with a functional programming course, exam, or re-exam. If that is the case, this series is intended to address your situation.

Backstory

During the summer of 2025 after pulling an A at the functional programming (FP) course exam, I wrote and released four articles on a few basic topics of F# such as elementary recursions and the type system. This was a small web-article project motivated by the large number of students and friends who would be up for the re-exam.

Since then I have continued to listen to and collaborate with other students. A number of aspects and problems have become more clear to me.

  1. The collective struggle to pass the FP course is ongoing and well-known. This is contributing to studies being delayed, personal trauma festering, and complaints being filed.
  2. Students need and deserve a better and more application-minded motivation for learning and using functional programming languages specifically, especially given that they are taking a mandatory course in them. It is not enough to praise FP in terms of general language and syntax features.
  3. It has proved woefully inadequate in several cases I personally observed; to only study old exams, auto-graded assignments and general programming theory; when faced with a programming exam in which your code comprehension, problem solving and coding skills are tested.
  4. I have found by experience and from speaking to struggling students, that the good programming practices, the right tools to use and productive forms of work will need to be taught more directly and deliberately for exam situations and independent work.

Those problems will be noble to address and explore in writing these articles. The aims are as follows:

  1. I want more students to pass the functional programming exam through promoting the tools and skills, that I have found helpful for doing so myself.
  2. I want to introduce what functional programming languages and features can be used for, from the perspective of an undergraduate or graduate programmer.
  3. I want to write more directly about types of FP exam questions that I have experienced, and techniques for facing a programming exam more generally.
  4. I want to intentionally introduce a set of good tools and strategies for F# programming in the exam situation, and specifically how that differs from auto-graded assignment work.

Disclaimer

I am not commissioned to write about F# or functional programming by anyone except out of my own initiative. I am irresponsible for any outcomes related to your formal education or personal learning experience.

That is precisely why I feel empowered to invoke my freedom to express how I think about functional programming as an undergraduate student. I am not subject to any external assessment of my accuracy or adherence to pedagogical standards. This is a student-to-student communication where I share my views and experiences to the best of my ability.

As a reader of this series, your side of this deal is that you must test any ideas that you lift from these articles for yourself in your own studies, to assert whether or not they are accurate or beneficial to you.

Further reading

Before going any further, here are the online F# resources (external links) I find to be the most important: