Again on MOOCs, again with the great Coursera’s courses!

After completing Functional Programming Principles in Scala I enrolled immediately in Functional Program Design in Scala and I successfully finished it last week!

As usual, if you are planning to join the course or just gathering information looking for the right one, I collected my thoughts and suggestions.

About Scala

This course in more about Scala itself, so if you don’t like Scala or you don’t want to learn it you should consider a different course. Nonetheless, the explanations about asynchronous programming are useful to better understand how libraries like Reactive Extensions or Akka Streams work and which kind of problems are addressing.

A fragmented course

Compared to the previous one, this course looks more fragmented and therefore difficult to follow: since the first three weeks were originally part of Principles of Reactive Programming (which unfortunately is no more offered), prof. Odersky often refers to “next lessons” about actors which will never appear.

On the other hand, the student is thrown in at the deep water with Erik Meijer speaking about effects and futures. Is indicative the fact that his name is not even listed in the instructors’ list.

The overall feeling is that the course has been patched without putting too much effort or taking care of the presentation. This is a pity since both Odersky and Meijer are great speakers and the topics are carefully explained.


As regard to the assignments, I have to admit that while they are interesting, the sensation is sometimes that they are not so related to the specific week. This was particularly true during the second week.

It is to note that I found this course less challenging than the first one, but I already used Scala and I’m familiar with futures and streams.


An unexpected and nice news: the last assignment involves Scala.js! I was at the same time surprised and excited since I had eventually the possibility to start using it. I thought it was much more difficult to bootstrap a project with Sbt and debug it, but thanks to sourcemaps it’s a breeze: I could see the Scala code directly in the Chrome inspector.


Same as before, plus be constant, do less but do it often.

Be patient with the lectures, as during the fourth week you will be tempted to give up because they are jumping from a teacher to another one with no apparent reason.

And most important: read the assignments and the hints. I’d say that three-fourths of the problem can be solved just following the hints.

Thank you, happy learning!