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

4.5
stars
3,130 ratings

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: https://www.coursera.org/learn/progfun1....

Top reviews

RP

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!

ES

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 514 Reviews for Functional Program Design in Scala

By Vasile G

Mar 21, 2017

The assignments seemed somewhat easy compared to curriculum which became more difficult. I would say that the assignments from the first course were more challenging then those from the second. I also think very little attention was paid to new monad constructs like Try, Validate and scala's reactive library, but I guess the later was left for the third course.

By Roman A

Nov 13, 2019

The course covers a range of interesting and important topics and the quality of lectures and exercises is pretty high.

However, it is organized in a less coherent way than the first course in the specialization. Exercises do not match their weeks, lecturer suddenly changes in Week 4 and delivers something not clearly following from the previous lectures.

By Stefano

Mar 28, 2017

To me every mooc by Martin Odersky is pure gold. I guess this course underwent a couple of "refactorings" because I didn't have the impression that the topics (and sometimes the assignments) throughout the 4 weeks followed a clear path. This is just my impression though, I might be wrong. Anyway great mooc and lots of fun, I can totally recommend it!

By Chloe L

Nov 11, 2018

Prof Martin's lectures are great.. however I have trouble following the other lecturer Erik. He sounds out of breath all the time and the content is not as well organized & well explained as Prof Martin's. I ended up skipping his lectures (which is sad, as his lectures are about Scala Future which imo is a difficult but important topic).

By MAGDELENAT P

Jul 13, 2016

A bit lost sometimes. The course was remodeled after previous ones obviously and it seems a little chaotic sometimes. Not sure to get all the message that was intended to be passed. Sometimes the exercice are way simpler than the session contents. Still I've enjoyed (almost) every moment of the course and I am eager to go on! Thanks!

By Sergey V

Dec 11, 2016

Thanks for this course!

Only one times i was very confused - when i saw that in the last assignment i should use Vars and Signals, not Features and Promises - that's, i think, a little bit far from as async code in real projects, which contain promises, features, actors etc.

But anyway, thanks for all of that, it was useful for me.

By Tomasz K

Jun 12, 2016

Course material was not difficult, but the homeworks weren't much correlated with it. If you attend other IT online courses you will notice that this one is a little old fashioned. I was also more interested in real-life usages than how it should be implemented. Regardless the cons course was informative and somehow useful.

By Joël V

Mar 27, 2019

Provides an interesting theoretical bird view on: monads & its relation to for expressions, streams & lazy evaluation, elegant examples of mixing mutable and immutable data-structures for stateful programs, and finally signals for event management. The exercises are fun ;-) and illustrative although not too challenging.

By antonin p

Apr 27, 2017

Very good course but not as good as the first one :

Try monads are never introduced but are referenced by one of the lecturer.

Signal DP for mutable state encapsulation is introduced, but it's benefits are unclear until the research paper is read.

Exercises are still very carefully designed. Thanks for the great contents !

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 Spring C

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.

By YAMADA K

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 Oleg I

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.