This course aimed at people with little or no skill in programming, no prior skills are required all. You just need a computer with Linux, OSX or Windows and an internet connection.
This course is about introducing you to programming in F#. We’ll complete an F# project together and generate procedural images in code, while learning functional programming principles. We will walk you through and explain every line of code and point out all the important programming concept as we progress.
We’ve structured the course to make learning all the material as easy and accessible as possible. We’ll challenge you to complete an F# programming task in every video to make sure you’ve got a great grip on all the concepts. But don’t worry, because after every challenge, we’ll also walk you through a solution line by line.
We have structured the course to enable anyone, no matter their background or experience, to get up and running with F#.
If you want to program with a language that has computer science at its heart and want to future proof your learning then this course is for you.
Welcome to this course! In this video, we go over what we'll be doing in this section! Hope you have fun learning F#!
This section is extremely basic, the aim is to cater for all skill levels from complete novice. Don't skip <NecessaryParts> as we will explain where you find the resources through the rest of the course.
We show you what to expect in the videos and how to find files and get in touch with us.
In this video, we go over the best practices for asking good questions and why they matter.
In this session you will be walked through how to download and install Xamarin Studio on your Mac.
In this session you will be walked through how to download and install Xamarin Studio on your Windows computer.
An introduction to Xamarin Studio and a few tips to get you started.
Introduction to some of the common types in F# and an example of how to use them.
This video will introduce you to functions, the fundamental unit of program execution.
This session explains what a version control system is and why we use Git and Github.
If you do not have an account on Github.com then you will need to create one in order to participate on this course.
In this session we show you how you can access source code on Github.com and how you can make changes to the source code and share it.
This quiz will test your understanding of the concepts you have been exposed to on the Introduction section.
We review what we learnt in this section and give you some ideas on where to go from here.
Welcome to the second section of this course! In this video, we go over what we'll be doing in this section! Hope you have fun learning F# and figuring out how to create a spirograph generator!
This section is straight forward, with the aim of learning the fundamental concepts of functional programming but it is not by any means the complete functional programming primer. If you have not completed the first section then we advise you to do so first as you may miss out on the important environment setup tips that could help you get started with F# and where we explain where to find the resources throughout the rest of our courses.
Tuples are basic building blocks in F# and it is good to gain understanding of these type now so we can use them in the several following videos.
Learn the ins and outs of functions and their basic usage.
In this lecture we introduce the concepts required for creating bitmaps and saving them as images. We start small but will get more in depth in the following lectures.
We discover the way a pixel can be plotted and hopefully the method employed should make it clear that it is not very practical. This section is designed to make you smile :-)
It's hip to be square, in this section we show you how too. Learn how to build instructions to plot pixels using a loop and eventually assign the instructions to a reusable, albeit rudimentary, function.
We begin to flesh out the implementation for our naive line function, focussing on one aspect at a time.
In this video we highlight the need for accurate division, otherwise we end up in situations where are lines are not drawn properly.
Learn how to make our lines draw when starting from a backwards position, this will incrementally improve our line drawing function giving it greater capability.
Records are a core part of F# and in this section we are introduced to them and start to utilise them in our code.
We start constructing a record to help retain the last position drawn on the bitmap, this enables us to drawn lines relative to other lines and provides a more intuitive set of functions to work with.
In this section we upgrade our functions and add new functions to enable us to turn and move rather than specifying coordinates to plot from and to.
This lecture will explain how to chain together a series of functions in a more common sense fashion, it also introduces the pipe-forward operator.
In this short video we introduce the fold function so that we are primed for the next series of lectures.
This section add more capabilities to our set of functions and now we can create shapes using a new polygon function.
This lecture introduces you to the sequence expressions that enable us as developers to achieve powerful results typing less code.
Finally, you can go crazy and build your very own spirograph to share with the world to behold.
Well done for getting this far! You now have a good grasp of the concepts of functional programming in F#! We hope you enjoyed this introduction, and we give you a few options regarding what to do next!
Well done for completing the introduction to F# programming! Join us on our other courses for more F#!
I have been a passionate software engineer since 2002 and have worked for companies such as The AA, Volkswagen Financial Services and Compare the Market, to name but a few.
I discovered programming when I was 18 and taught myself web development and Java and then moved into the .NET world in 2003. I now run the Cambridge F# User Group and co-organise the Cambridge DDD Nights User Group, both meet on a monthly basis.
My love of programming has given me the opportunity to experience various programming languages but I have happily settled on F# and I am now a proud sustaining member of the F# Software Foundation.