Chevron Left
Back to Functional Program Design in Scala

Learner Reviews & Feedback for Functional Program Design in Scala by École Polytechnique Fédérale de Lausanne

3,036 ratings
520 reviews

About the Course

In this course you will learn how to apply the functional programming style in the design of larger Scala applications. You'll get to know important new functional programming concepts, from lazy evaluation to structuring your libraries using monads. We'll work on larger and more involved examples, from state space exploration to random testing to discrete circuit simulators. You’ll also learn some best practices on how to write good Scala code in the real world. Finally, you will learn how to leverage the ability of the compiler to infer values from types. Several parts of this course deal with the question how functional programming interacts with mutable state. We will explore the consequences of combining functions and state. We will also look at purely functional alternatives to mutable state, using infinite data structures or functional reactive programming. Recommended background: You should have at least one year programming experience. Proficiency with Java or C# is ideal, but experience with other languages such as C/C++, Python, Javascript or Ruby is also sufficient. You should have some familiarity with using the command line. This course is intended to be taken after Functional Programming Principles in Scala:

Top reviews

Sep 14, 2016

This is a university degree course which takes enormous effort to complete. But still its beond the programming course range giving you whats not possible to google or learn practical way. Thanks!

Mar 17, 2018

Thank you for this exciting course! I did the FP in Scala course a few years ago and decided to do the full certification now. I am looking forward to the next courses in the specialisation.

Filter by:

251 - 275 of 503 Reviews for Functional Program Design in Scala

By shimin

Jul 24, 2017

nice course

By liruidong

Jun 4, 2017

good course

By Alex

Apr 19, 2017

Thank you !

By JoolsFenner

Jul 16, 2016


By Masud H

Jan 6, 2020

Very good.

By Max B

Dec 1, 2019

Cool stuff

By Qi G

Oct 14, 2017

Very good~

By Bjornn B O F F

Jun 27, 2017

Top course

By jose c a

May 18, 2017



Jul 27, 2017

Thank you

By Andy R

Feb 5, 2017

very good

By Ming Y

Oct 19, 2016


By Light0617

Apr 29, 2019


By Ruben A D

Jan 20, 2018


By Yurii K

Dec 13, 2017


By Ronald C M

Oct 21, 2017

The best

By Almaz

Jul 11, 2017


By Alex G

Jul 4, 2016


By 林鼎棋

Jul 2, 2017


By Alexander R

Jul 8, 2018


By Taewoo K

Mar 23, 2020


By Sebas O C

Jul 22, 2019


By Hyung-tak J

Jul 25, 2016


By Marius K

Feb 25, 2018

This course is OK as a successor of "Functional Programming Principles in Scala". You definitely learn a lot of new functional concept, the material is presented well and the homework is engaging (though it is debatable if it couldn't be more closely related to the course content).

Participants should know, though, that this is a condensed version of a previous Coursera course by the same authors, "Principles of Reactive Programming", which is no longer available. Compared to the earlier course, the present course is less coherent – it consists more or less of a subset of the earlier course’s lectures (videos). As a consequence, the instructors sometimes refer to earlier or later lectures that are not actually there (or at least not in the expected order). (I recommend participants to look up the missing lectures on Youtube:

Lastly, I do not think the title "Functional Program Design" is appropriate. I would call it "Elements of Reactive Programming in Scala" or something similar.

By Kota M

Jan 24, 2018

This was my first experience with Functional Programming and also Scala. I found many parts of the course challenging, but also so much fun to me.

During the course, the teacher talks about the Scala development techniques, but also fundamental implementation of Scala language. I think the course will be more informative if the two kinds are clearly separated, since people would have different motivations towards the course. Many people may not need to understand what is going on behind the abstract functionality for their practice, but knowing them will push them up to higher levels.

I myself wanted to focus on getting used to coding with Scala, even if I am not 100% sure how the things are going on behind scene. Fundamental topics will be of my interest once I become a intermediate developer of the language.