subject
Intro

edX: Introduction to Functional Programming

 with  Erik Meijer

Broadly speaking, functional programming is a style of programming in which the primary method of computation is the application of functions to arguments. Among other features, functional languages offer a compact notation for writing programs, powerful abstraction methods for structuring programs, and a simple mathematical basis that supports reasoning about programs.

Functional languages represent the leading edge of programming language design, and the primary setting in which new programming concepts are introduced and studied. All contemporary programming languages such as Hack/PHP, C#, Visual Basic, F#, C++, JavaScript, Python, Ruby, Java, Scala, Clojure, Groovy, Racket, … support higher-order programming via the concept of closures or lambda expressions.

This course will use Haskell as the medium for understanding the basic principles of functional programming. While the specific language isn't all that important, Haskell is a pure functional language so it is entirely appropriate for learning the essential ingredients of programming using mathematical functions. It is also a relatively small language, and hence it should be easy for you to get up to speed with Haskell.

Once you understand the Why, What and How that underlies pure functional programming and learned to “think like a fundamentalist”, we will apply the concepts of functional programming to “code like a hacker” in mainstream programming languages, using Facebook’s novel Hack language as our main example. This course assumes no prior knowledge of functional programming, but assumes you have at least one year of programming experience in a regular programming language such as Java, .NET, Javascript or PHP.

LICENSE
The course materials of this course are Copyright Delft University of Technology and are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike (CC-BY-NC-SA) 4.0 International License.

11 Student
reviews
Cost Free Online Course
Pace Self Paced
Subject Programming
Provider edX
Language English
Hours 4-6 hours a week
Calendar 7 weeks long

Disclosure: To support our site, Class Central may be compensated by some course providers.

+ Add to My Courses
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

11 reviews for edX's Introduction to Functional Programming

Write a review
4 out of 4 people found the following review useful
2 years ago
profile picture
Anonymous completed this course.
First you have to understand that this course is not about Haskell - indeed it seems as if Erik not only dropped Microsoft but all his former passion for pure FP and Haskell. But this would not be the problem - the course is about FP and that would be great. So where is the problem? The problem is that all the exerc Read More
First you have to understand that this course is not about Haskell - indeed it seems as if Erik not only dropped Microsoft but all his former passion for pure FP and Haskell.

But this would not be the problem - the course is about FP and that would be great.

So where is the problem?

The problem is that all the exercises are stupid *find the typo* or boring *enter this into GHCi character by character* problems - I don't think it teaches neither Haskell nor functional programming - it just teaches you to interact with the interpreter.

The next thing I disliked is quite subjective: I did not like the way Erik *haunted* the discussion boards - instead of allowing the students to help out each other, he constantly accused people of not "following the COC" and discouraged people who really tried to help - to the point where some of them left.

The reason of course IMO was the stupid grading: you see you had only a single attempt at each of the very stupid exercises so any help was highly disencouraged.

Erik get's a bonus point for the videos (which he presented in his usual funny and *trolling* manner) - but the rest was worthless to anyone not already well versed in FP/Haskell.
Was this review helpful to you? YES | NO
3 out of 3 people found the following review useful
3 years ago
profile picture
Wei En completed this course, spending 6 hours a week on it and found the course difficulty to be medium.
FP101x has excellent exercises, labs and lectures. Prof. Erik Meijer has done a great job of going through the material in this course. Overall I found the course instrumental to improving my understanding of functional programming. On the other hand, the exercises may get boring after a while and some stuff covered i Read More
FP101x has excellent exercises, labs and lectures. Prof. Erik Meijer has done a great job of going through the material in this course. Overall I found the course instrumental to improving my understanding of functional programming.

On the other hand, the exercises may get boring after a while and some stuff covered in the lectures aren't tested fully in exercises/labs (for example, in the Countdown Problem, we only had to select MCQs for a couple of implementations. Personally, I thought that a lab would be a better option).

The interesting labs more than make up for it (especially the Poor Man's Concurrency Monad, which was mind blowing but very helpful). I would recommend this to anyone who is interested in functional programming.

A note is that Prof. Erik Meijer follows a few coding conventions that many in the Haskell community disagree with. For example, he suggests that lists should be used over the Maybe monad. You will want to evaluate his suggestions carefully.
Was this review helpful to you? YES | NO
2 out of 2 people found the following review useful
3 years ago
profile picture
Anonymous is taking this course right now.
This is a fun course on the basics of Functional Programming, primarily using Haskell. I'm liking it. Eric Meijer is an engaging lecturer (sort of endearingly awkward) and the quizzes and homework are excellent. It's challenging without being super-difficult and I think I'm learning a lot. Some criticisms: I do not Read More
This is a fun course on the basics of Functional Programming, primarily using Haskell. I'm liking it. Eric Meijer is an engaging lecturer (sort of endearingly awkward) and the quizzes and homework are excellent. It's challenging without being super-difficult and I think I'm learning a lot.

Some criticisms: I do not like the course's practice of allowing only one submission for homework and lab items. I am not the only one, judging by the discussion forums. Numerous people have brought this up and offered suggestions but they seem to be dismissed by the course staff with lame reasons such as "if we allowed two attempts everyone would randomly guess and get 100%". Generally speaking the staff are polite but tend to be dismissive of criticisms about the design of the course and its assessments.
Was this review helpful to you? YES | NO
0 out of 1 people found the following review useful
3 years ago
Chema Cortés is taking this course right now, spending 7 hours a week on it and found the course difficulty to be hard.
Was this review helpful to you? YES | NO
2 years ago
Mark Henry Butler completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Kuronosuke completed this course.
Was this review helpful to you? YES | NO
a year ago
Denis Ananev completed this course.
Was this review helpful to you? YES | NO
2 years ago
Niklas Thörne dropped this course.
Was this review helpful to you? YES | NO
a year ago
Daniel Bohórquez partially completed this course.
Was this review helpful to you? YES | NO
2 years ago
profile picture
Alain Schwab partially completed this course.
Was this review helpful to you? YES | NO
2 years ago
Gustavo Henrique Mascarenhas Machado partially completed this course, spending 10 hours a week on it and found the course difficulty to be hard.
Was this review helpful to you? YES | NO

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free