Chevron Left
Functional Program Design in Scala に戻る

スイス連邦工科大学ローザンヌ校(École Polytechnique Fédérale de Lausanne) による Functional Program Design in Scala の受講者のレビューおよびフィードバック



In this course you will learn how to apply the functional programming style in the design of larger 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. 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. Learning Outcomes. By the end of this course you will be able to: - recognize and apply design principles of functional programs, - design functional libraries and their APIs, - competently combine functions and state in one program, - understand reasoning techniques for programs that combine functions and state, - write simple functional reactive applications. 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 using the command line. This course is intended to be taken after Functional Programming Principles in Scala:



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!


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.


Functional Program Design in Scala: 426 - 450 / 496 レビュー

by Carl S


The lectures were not very illuminating and did not tie in closely with the programming assignments. There was very little focus on design. This course did nothing to answer the questions of why, if you were building a real-world software product, you should use Scala in particular or functional programming in general. It merely served to provide a few more examples of FP patterns without demonstrating their value.

by Valerio M


Interesting course. Not sure it really covers functional programming design, it feels more of a brief introduction. The material is clearly a cut & paste from a different (and I guess longer) course. There were references to non-existing weeks, and to subjects that were not part of this course. That felt a bit cheap, considering that courses are not really free anymore. Positive experience, but not exceptional.

by Алексей П


The topic very interesting as well as course assignments. But not so good as progfun1. It looks like some topics were thrown away. E.g. quick check assignment is not in a right place. Assignment about Streams is too complicated and does not illustrate streams well. There is not enough information about design - e.g. more patterns and guidance when to use mutable state with oop princilpes and when to use fp.

by Shriharsh M


Too fast and dense material is being presented with little practice. For example. lecture on Monad describes what they are but doesn't use them enough in exercises. While i was struggling to grasp topic while viewing the videos and had to view them repeatedly. Exercises were very simple. So I am not sure what they are evaluating. I realise that building an exercise to evaluate this topic is harder too.

by David B


Decent follow up to the excellent first course. There are three programming assignments, all quite challenging and interesting. The second assignment followed a series of lectures on mutable states. However the assignment was all about Scalacheck which was not at all covered in the lectures. Strange. If you're unfamiliar with reactive programming (as I was) the material will be challenging.

by Rudolf Z


This course introduces many important concepts in functional programming such as monads and lazy evaluation. Also you can find quick intodution to reactive programming in this course, however I want to know more about reactive programming. Week 4 is bad structed, it looks as if it was cutted from another course and pasted in this one. And I want more assignments to play with monads.

by Ivan S


The lectures were quite interesting, especially the first two weeks and the ones by Erik Meijer. But overall course seems to be too blatantly put from several other courses which might be interesting to listen separately (e.g. FRP) and the assignment don't seem to cover the material from the lectures too well. Some very interesting concepts seem to be left out of the scope (actors)

by Marton B


While I hold the first course in high regards, this one is often incomprehensible, the new tutor is a lot worse than Martin was, and the topics are also a lot less interesting. Property testing was a new concept to me, I really enjoyed using it, and since I've incorporated it into my own workflow, but events, signals, coming from a javascript background, were just an annoyance.

by Konstantin D


Fantastic topic on itself, yet delivered in a rushed manner. Programming assignments are of uneven difficulty. The second assignment is all about a testing framework usage, not really aimed towards Functional Design at all. Feels like the material worth 10 weeks was crammed into 4 weeks.

You can still learn some important conceptions, so it is not a total waste of your time.

by Leo A


This course has some really good material but the way it has been presented is very disjointed and does not really do the job of properly illustrating Functional Program Design. Although topics such as Signal and FRP are interesting they serve little value in day to day use and assignments focusing on Futures would be far more beneficial.

by Erick H


Contrasted with the first course, this one isn't nearly as good. The videos were choppy and broken up into strange segments. The assignment had some extremely confusing instructions and I wasted tons of time reading the forum to try and resolve basic things. Don't get me wrong. I did learn some stuff but the overall quality was lacking.



Many of the lectures use concepts that were not introduced before, which is very confusing. On the third week, the lectures are completely disconnected from the assignments. The lectures from the last week feel out of order, but at least the assignment was able to connect everything.

The best thing from this course are the assignments.

by Brian B


The course in general is not as good as Martin Odersky's first course, but it still has interesting bits to learn about functional programming.

Everything topic feels very disconnected to each other.

Lastly, the last part of the course is specially disorganized. I didn't feel like the assignment captured everthing that was taught.

by Bruno F


Material in the first few weeks was taught well and went together with the first course in the track.

The latter part of the course was not taught in such great depth and was not examined in the exercises either.

Consider making the first course longer and dedicating the whole of this course to the material in the latter half.

by Mikko S


I was expecting this course to be more challenging than Functional Programming Principles in Scala but found this one easier in the end. The assignments were ok but I felt like they could have been more challenging and also that they should have tested my understanding of the course contents more thoroughly.

by Alan A


I have the sensation that this second part is not so well explained as the first one.

Week 3 was confusing. The assignment is not related to the video contents.

Week 4 was confusing too. The mix between Martin and the other guy's videos is weird. Also I expected much more reactive stuff.

by Andy D


A daily demanding course, which could have benefitted from more time spent in some areas - particular signals. The video explaining a sample Signal implementation was very rushed and provided too little detail on a lot of information that seems to be taken for granted.

by ravi c


Very hard to follow due to unsequenced lessons. Had a tough time with the exercise QuickCheck because I was not solving the problem. I have devising test cases to verify the solution. Rest of the content was good, but reactive lesson was quite short to start with.

by Jacopo P


At times, this course looks a patch work of videos without a clear continuity. It is a pity that one week has no assessment at all and the last week mostly on "Futures" does not assess them. Also it would have been nice to have a snapshot on Actors

by Lucas F


The course needs a reboot. Some parts were merged with other and the whole thing lacks continuity. A few examples were poorly chosen. For instance, signals / reactive concepts would be easier to understand in user interfaces or graphics / games.

by Pedro P


week 4 course "timely effects" with Erik Meijer videos are very hard o watch, the background and the slides are very distracting. Did not learn much with those videos, I had to resort to other sources to learn about lazy evaluation and futures.

by Luis V


Good but not less quality that the other courses in the specialization.

The course seems a little messy and with lack of focus, it is obvious that it is the result of cut and paste of other courses... may be to fit with Coursera restrictions??

by Patrik M


I've enjoyed some lectures. But overall, this course was less educative than the first one in the Scala specialisation. I do appreciate Erik Meijer as a professional and a scientist. But, in my humble oppinion, he is not a great lecturer.

by Juan F O


The topics are great, the material is not really polished: the lectures are from previous courses and they reorganised material without redoing anything, which is needed in several points. Many explanations could be improved greatly.

by malhar j


The course was good but not as good/detailed as the first one. Martin did an excellent job as usual though. I felt the course content was interesting but got very dull towards the end. The assignments were not really challenging.