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.
By Martiniano J•
In order to save time I will quote this other review By Abhinav P. that reflects 100% what I think:
"I was optimistic about this course based on the previous course, because that course was consistent, self-contained, and systematic. On the other hand, this course was clearly put together by throwing together, rather haphazardly, bits and pieces of other courses, some of which no longer even exist. This is outrageous; a course like this would never be taught at a prestigious institution like EPFL, and it is highly deceptive to give us a course, put together in a arbitrary, incoherent, Frankensteinish fashion, right after a course that was quite systematic and coherent.
Week one and two were not bad, hence why I gave two stars instead of one. But week three involves a programming project that has literally nothing to do with the lectures at all. To be sure, I didn't mind learning about Scala Check, but I had to do it pretty much entirely on my own; it was mentioned for about five seconds in the lecture videos. If I wanted to just read documentation without any actual teaching, why would I sign up for a course like this?
And week 4! Coursera/whoever put this course together isn't even trying anymore. The videos are clearly from multiple different courses, and Odersky himself makes references entire weeks worth of content that simply doesn't exist anymore. This is a damn mess. In its current state, the course is simply not worth publishing."
By Andrés F•
This course is a re-hash of both the excellent "Functional Programming Principles in Scala" and the mediocre "Principles of Reactive Programming in Scala". Unfortunately, in quality it's closer to the latter: mixed quality, lectures that seem unrelated to their corresponding assignments, many errors (both typos and, more seriously, examples that don't type-check!) and a general lack of an in-depth motivation for the principles. Staff participation in my run of the course (2016) was disappointingly low; in some cases there was no response at all to students pointing out glaring errors in the lectures.
It's very noticeable that this course is a patchwork of previous courses. In same cases the video lectures even display the wrong title for the course, or mention lectures that no longer exist in this version of the course!
The course has interesting parts (I was especially thrilled when I saw there were lectures about FRP), but its quality is way below "Functional Programming Principles in Scala". I'm disappointed.
To make this review constructive, my recommendations:
1- Pay attention to quality. Make sure all examples compile and type-check.
2- Make sure you're not repeating content already in other courses, especially if they are part of the same specialization!
3- If you're going to re-use content from other contents, make sure it fits the current course. Do not mention lectures not in the course.
I expected more. Week 2 on streams in my opinion was a very strong week and well worth time and effort. Week 1, 2 and 3 were pretty weak in my opinion. I don't feel like I've learned much or that the exercises reflected what was being taught in the lectures. For example on week 4 the exercises do nothing with futures even though there's 6 lectures on them. Week 3 spends 3 long lectures how to build a discrete simulation application and exercises are about property checking. Course felt disjointed and not really finished. Would NOT recommend and definitely would not pay 79 USD for.
By Remko d J•
Too much reuse of old material (assignments as well as lectures).
By Lidan Y•
By Илья Б•
At times instructions for problems are really vague. Every method should have comments or be test covered like it was in the first course. For example I had to spend some time, looking through the parser to discover that spaces in calculator expressions are mandatory. Technically it was in the description, but it was not clear at all and I was stuck with the idea that I'm doing something generally wrong so i had to write a whole test(that was kinda ad-hoc and not a good practice at all) to reach that tiny problem. Otherwise the course is really really great. It made me progress a lot in my scala skill, while keeping me interested in the problems and learning some new data structs ect. Keep up the good work!
By Rishi K•
Functional Program Design in Scala is one of the best courses for those who want to apply the functional programming style in the design of larger applications using functional programming concepts. This course is intended to be taken after Functional Programming Principles in Scala. It is a great course for those who want to explore into the functional programming aspect of Computer Science. The concepts are explained lucidly and the assignments are relatively difficult and help the individuals to apply the learnt concepts in an incremental manner. I was really excited on taking this course, and it has lived up to all my expectations from it.
By Pedro d S Q•
Martin Odersky has a beautiful, calming, sweet voice, that is able to entertain and guide the student even through the most difficult concepts. He has a great way of explaining, his setup is very good and the classes are well thought. The exercises consist of a handout with some bits already coded, and you have to implement some functions to make it all work. This is the second course of five, and I liked this one as much as I liked the first. I really like that the handouts have a "real code" feel to it. The exercises are really well designed, and help the student practice testing skills too, introducing early scala's testing framework.
By Owen E•
I think the exercises were a bit easier than the first component of the functional programming in Scala series, I did enjoy the difficulty of the first component. My least favorite part was the lecture videos on Futures in Week 4. The presenter is fine, but the style in which he is teaching is different from Martin's. Students often need to adapt to someone's teaching style, and I'm not sure if it's worth taking the time to developing a strategy for those ~ 30 minutes of lectures in week 4.
Anyway, I am enjoying the course so far. Thank you so much for providing this content to the public! You're heroes!
By Tom H•
This course sets out to teach from the ground up about various functional programming techniques and their uses. It manages to do just that in a very short time. The ideas are presented in Scala but apply just as well to most other languages. The last week, on functional reactive programming and asynchronous programming in particular can easily be transposed to modern front-end web development. The assignments are also interesting and well balanced.
I was familiar with most of the ideas, but this course gave me a better understanding of these.
I thoroughly enjoyed the experience.
By Joshua S•
Great opportunity to learn from some of the "rock stars" of comp-sci! The course builds on the concepts taught in first part of the series by careful illustration of their application to larger programming structures. The results are elegant expressions that convey the full intention of the programmer in a simple and concise manner, boldly declaring: "I am the solution to this problem." Really surprised in week 4 when Erik Meijer made an appearance as guest lecturer! Not only do you get to learn from Scala's architect, but from LINQ's as well.
By Rachapong C•
If you enjoyed the first course, you should enjoy this one. The excitement builds up as week 5 sees you writing (part of) a program that reacts to user interface input. Can't wait to see what the next course brings!
That said, week 3 with implicit type-directed programming was mind-boggling and I still don't think I understand it even after completing the week's assignment. Maybe all the interconnected object and class system is really too complicated but also maybe they could explain it a bit better.
By Roland F•
Odersky does an excellent job explaining concepts and providing sound motivation for them. This course's content was definitely a level above the last course in the specialization, and some of the material seemed a bit disconnected, especially towards the end. It would be useful if there were maybe notes to go along with the course (or slides) so that we could refer back to them when doing assignments instead of having to look back at the videos.
By Vikram B•
The assignments are tough but worth it. The last part of functional reactive programming is bit unclear and needs extra lectures. But the overall experience is good, and I feel much comfortable looking at Scala code. I really enjoyed the type directed programming section. It gave me new perspective to look at things. The water pouring problem is really challenging, I had to watch it five times to keep track of Prof. Martin Odersky.
By light n•
A good course that touches on the basics of high-level concepts of Functional Programming, that could have been made better with homeworks that are more related to course material & more examples of concepts introduced in the course, either in homeworks or video.
I thoroughly enjoyed 2nd week material, simply amazing concepts & homework.
If I could give 4.5 stars that would be the score I will give.
By Michael W•
This course was a more or less succsessful excerpt of the course "Reactive Programming in Scala" wich can still be found on youtube and in the net. The course only covers about 3 of the 7 weeks of the original course. But it seems to me that this first part of the reactive course was better than the other parts, that were tougt by other instructors. But, still a great course that tought me a lot.
By Chetan B•
A wonderful course, and a great introduction to both functional programming and Scala language. It's high time that we start paying attention to Functional Programming paradigm, and thanks to Scala we can now use it in the mainstream production grade development.
I would highly recommend this course to anyone who is looking for a new (and likely better) way of thinking about programming.
By Morteza N•
I really enjoyed this course. It's challenging and helps you develop a great functional programming mindset. I remember those classes I attended several years ago when I was struggling with learning Java, compare with that bad experience I could learn Scala just in 4 weeks much obliged to you Dr. Odersky and your colleagues that make learning process to be a breeze. Thank you!
By David S•
This is a great course with a clear exposition of some of the more complex topics in FP such as Monads. However, I feel the treatment of concurrency left me with more questions than answers (though I also understand the next course will explore it in more detail). I would have also liked some more excercises about building a Scala program "from scratch".
By Samuel S•
Really enjoyed this course. Having had experience in functional reactive programming, the content wasn't overly in depth but it helped cement understanding of how functional patterns can be used in place of OO ones, as well as further the knowledge of Scala gained in the first course.
The content on streams and futures was particularly helpful for me.
By Diego R•
This course is the best for learning the principles of functional programming. From my point of view exercises are a little bit difficult but they are really creative and make you strive for learning the concepts you need to apply in functional programming. The effort of doing this course is really worthy. Congratulations to the creators of it.
By Sam W•
Brilliant introduction into some more advanced techniques and perhaps some unfamiliar topics to imperative programmers. Martin's explanations are careful and considered, and each topic follow logically from the last. My favourite section: FRP - such a great alternative to the usual Publisher/Listener pattern. Highly recommended.
By Andrew W•
Another great course. It was a little more disjointed than the first course of the specialisation, the exercises did not allow you to really get to grips with the full range of material discussed in the course but that was largely because the scope of coverage was so large. Maybe the deep dive will come in the later course...
By Hasan K•
perfect course and definitely recommended to everyone who wants to understand and learn not only Scala but also functional programming. Be aware that this course will give you the foundation and requires you to invest significant time to learn bits and pieces of functional programming and how those are implemented in Scala.
By Graham B•
A well-paced and intellectually challenging introduction to the concepts and practice of functional reactive programming, with two AMAZING instructors (Martin Odersky and Erik Meijer)! Builds on Martin's equally excellent introduction to functional programming. (Pass this course and join Professor O and the xs-men!)