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,035 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:

301 - 325 of 503 Reviews for Functional Program Design in Scala

By Nikolas V

Dec 15, 2019

The course material about the futures, although interesting should have been developed further and at least with an extra week in the course (and have an assignment associated to it). As things are, week 4 didn't flow as well as the previous ones, or any of the weeks from the course "Functional programming in Scala".

By Erick F

May 6, 2018

The only issue I have is with the "Latency as an effect" part of the course, it seemed reasonable but it assumed that you knew many concepts that are not shown, and also it doesn't have as many practical examples as other sections. Nevertheless, the main aspect of the course, functional design, was explained greatly.

By stuart o

Sep 4, 2016

Offers outstanding depth in parallel concepts and the weekly programming samples are really interesting and fun. Some good community discussion but not a lot of participation by instructors. The theoretical material is covered very quickly and there are not a lot of practice exercises to master those concepts.

By Dzmitry B

Aug 11, 2016

A few last lectures (Future, Try) lack pretext, or at least appear somewhat out of order, unless one is familiar with the topic. Generally, higher score (10 out of 10, or 9 out of 10) could have been made a little harder to get. Adding a couple of extra optional problems for one point each could be a good idea.

By Andrei P

Feb 25, 2017

Theory is great but recorded messy sometimes. I looks like it was recorded for something else and then adapted for this course. And I would like to have some more explanation not important topic like Monads, etc

I also would like to have more practice on each of important topic to really fit it in your mind

By Razertory

Feb 21, 2020

Martin is smart and knowledgeable. This course really helped me on Scala Programming. Personally, I'd like something more on algebraic design lectures and code assignments such as monoid, functors, applicative functors and many kinds of monads. Anyway, it's my 1st experience on coursera, thanks a lot : )

By Juan P G E

Jan 31, 2019

Very interesting course. You can learn the basics about functional reactive programming and get to know about Signals and Futures. The assignments are not as difficult as the ones in the previous course and you can see that there is a lot of work to provide the infrastructure needed for those exercises.

By Tan K H

Oct 24, 2018

This course touches on many areas of production-level functional programming design. However, it is too short and the parts are somewhat disjointed, particularly the assignments. Can be greatly improved by having a specific focus (e.g. FRP, monadic design, effects) and have a course for each focus.


Mar 22, 2017

Most Lectures are extremely helpful for standard learner of Scala who is unfamiliar with Stream, Rx and any other lazily evaluated expression and it's applicable architecture.

But lectures about Future and it's related Class are not enough volume and quality.

It is why I does not rate full stars.

By Sebastian Z

Aug 28, 2017

It's a complete course with more advanced topics than its predecessor but seems that some lectures removed because some times Odersky referenced to lectures that weren't in the course. On the last week was some videos disconnected (talking about Scala Futures) with the rest of the course.

By Veltin D

Jan 22, 2017

Course material quality is unequal throughout the lecture. It does seem that some parts were taken from another class and were copy-pasted into this class. Anyhow, very good class overall, the homeworks are really good and well prepared. Thanks for putting online such a great class !

By Germán A

Aug 4, 2017

The course topics seem a little disjoint, some complex topics like monads and futures require more examples or a more throrough explanation. Excercises seem to be related arbitrarily to the course topcis, for example exercise on week 3 about generators needs material from week 1.

By Hanna S

May 13, 2018

The last few 4th week's videos seem a little bit messy, some lessons referenced are definitely missing and Futures part is quite confusing and not very useful (I mean, "guys, just go and read about it online" would bring more value per second than watching the videos).

By Иванов О

Nov 9, 2017

Not a bad course, a nice introduction to monads, reactive programming and futures, though it has a lot of disconnected chunks and exercises from the old course and isn't as polished as the first one about FP (which, in my opinion, really set the bar for other courses).

By Rodolfo N P

Mar 25, 2017

Excellent course, has a good transition from the previous course but still manages to be standalone. The last week about reactive programming was a little hamfisted, though. I would have liked a more formal, but pragmatic, approach like Martin usually does.

By Henrik S

Jan 4, 2017

The first two weeks where very well structured and as interesting as the first course. In week 4 it seems that there have been materials from other courses puzzled together (Principles of Reactive Programming). That made it a bit difficult to keep on track.

By Harish k

Nov 4, 2016

Some of the lectures were tough to follow. Huge disconnect between the course videos and the assignments. QuickCheck assignment was a waste of time for me. Calculator assignment is really good. No assignments related to Week4 course work is disappointing.

By Kaloyan T

Dec 21, 2016

Pretty informative course, even if the first one or two weeks used to the part of the Intro to Scala course. The 2nd part of the lectures in the 4th week seem really disconnected from the rest of the course and are introduced with very little context.

By Narthana E

Aug 29, 2016

The course is generally good, but it seems to be a bit of a hybrid of several different courses. Perhaps the videos should be updated so that references in the videos to "the next several weeks" in the last week of the course, don't confuse students.

By Zeb S

Jul 10, 2019

I suspect I am not alone in finding the fourth week of this course to be somewhat lacking. I agree with the majority of the feedback regarding the shortcomings of the final week; however, as a whole this was a fun course and I learned a lot.

By Atsuya K

Nov 6, 2017

A good overview of functional programming concepts just like the preceding course. I wish, however, there were more material on concurrent programming. I'd like to see lectures on concurrency by Martin Odersky sometime in the future.

By Ishan

Oct 22, 2019

Assignments 3 and 4 can be improved. They are a bit hard to get started with and at the end only require a handful of lines of code to implement. It does not match the learning outcome of the difficult topics taught in the lectures.

By Vinicius L

Oct 22, 2017

The course is awesome... but I got myself a little lost when changing from Martin to Erick. Sometimes changing is good, by as a personal choice, I prefer the way Martin exposes the content so for me, the learning process is better.

By Hanneli T

Aug 28, 2017

The content is great and very practical. Most of the lectures are very clear and easy to understand. The only downside that I notices was during the week 4, where the explanation of Future and how to use it was kinda disconnected.

By Pawel M S

Oct 23, 2016

Very good and well-paced course. I'd give 5/5, but there are parts that seem to be missing -- lecturers refer to videos that aren't part of the course (or the previous one: Functional Programming Principles in Scala). Overall 4/5.