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:

1 - 25 of 514 Reviews for Functional Program Design in Scala

By Abhinav P

Dec 15, 2017

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.

For what its worth, the removed lecture videos can be found here: https://www.youtube.com/playlist?list=PLMhMDErmC1TdBMxd3KnRfYiBV2ELvLyxN

But these videos do not contain the removed exercises/programming projects, unfortunately.

By Leon L

Aug 21, 2020

The 3rd and 4th week were clearly improved upon since the last reviews noted a sense of disorganisation: now they are well structured and fit in well with the overall course. The course as a whole is well balanced and interesting!

By Shaul E

Mar 1, 2018

The course starts well and has really good exercises, HOWEVER at weeks 3-4 the lectures lose their logical order, it feels like a collection of random lectures from other course syllabus that have been "reused" here.

Week 3 exercise has very little to do with the lectures, and week 4 lectures are even worse, martin says he'll talk about 1 thing that is later not in the course, then we switch to someone else that talks about "things we've seen before" - which we haven't!

Don't get me wrong, you can still learn a lot from this and understand most of it, but it just feels very unprofessional, glad I've only audited this course and didn't pay for it, if that was the case I would feel very disappointed

By Diego M C

Oct 28, 2017

Very boring and unorganized course. It feels like it is a mix of two older courses that no longer exist.

This almost made me feel like I was back in college, with those unbelievably boring lessons and project subjects from 30 years ago.

By David K

Apr 26, 2017

A sharp decline in quality and cohesion from the Functional Programming Principles in Scala course. It may be worth enrolling just to hear Odersky's elegant lecturing at work once again, but if you're interested in the core concepts, I would highly recommend picking up a highly rated book instead.

By Sergei G

May 4, 2018

Mish-mash of everything. Disconnected lectures and assignments. Week4 is plain horrible - assembled from random lectures that refer to non-existing context. One hour of random lectures does a very bad job of introducing reactive programming.

By Alessandro C

Nov 8, 2020

This module as the one before (for which Coursera doesn't allow me to leave a review) is really "academic" like. That really means a lot of notion with no practical examples. Even the first module wasn't really explaining scala, it already starts like you are supposed to know it already. While in the description it was depicted as a beginers-like course. For instance, the lectures talk about the argument "A" and then the assignment is about "Z^2". One of the worst thing about the lectures is that you spend 20 minutes trying to understand a really complicated notion and then in the next minute he implements the same concept with less line of codes and also more optimised, so you have wasted all that time trying to understand an obsolete technique, why you didn't show me the optimised way immediately?! Lectures of 15 minutes that could be resumed with an internet search of 3 minutes. Definitely a waste of money, I completed the first one hoping to understand more in this one but what I got was just a huge waste of time and money.

By Gabriel G C

Jan 8, 2019

It seems that this course was partially updated, but it was not done in a seamlessly way. I think this course deserve a full remake, if possible with the same instructor all the time.

By Ilya O

Jul 11, 2016

In fact, this is an inconsistent attempt of re-implementing previous FRP course from the same authors. FRP course had many issues about homework/lectures being poorly related, this one is even worse. This is very frustrating, as a topic itself is one of the most interesting ones in today's software engineering.

By Sunheang T

Nov 22, 2017

It is terrible compared to the first one: bad course structure, assignment mismatch, there is no mentioned of RxScala anywhere.

By Jinqiang Z

Jul 3, 2020

Scala is so different from traditional imperative languages, such as C++, sometimes it looks like magic to me from its compact but powerful expression. The hard part is the way of thinking is different. This course is from the father of the language, he explained insights of many ideas well. The homework is hard, but doable, if you put in some efforts, you feel you gain a lot. I love Scala.

By Abhay D

Jul 3, 2021

Wonderful course by Martin Odersky himself. The content is awesome and the way Martin has explained the concepts in Scala 3 syntax and features is great. A course for every Scala developer.

By Martiniano J

Aug 29, 2019

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 Brendan M

Feb 16, 2019

This course is really disjointed. Unlike the first course in Scala Functional Programming specialization, this course is stitched together from bits and pieces of other courses. The lectures make reference to other lessons that no longer appear in the course, and the assignments frequently have nothing to do with the lecture material.

By Federico L

Jul 9, 2017

This course is evidently hacked together from pieces of other courses. Not nearly as well put together as the previous from the specialization which was excellent. The specialization could benefit from having this module reworked from scratch.

By Gabor S

May 2, 2017

The presented material wasn't coherent for me, I didn't walk away with knowledge of functional design principles for larger/complex software. The topics presented seems just a bunch of topics next to each other.

By Giuseppe d

May 20, 2017

Apart from the topics like Future and Stream, I haven't found it very interesting. The part on the Digital Circuits for instance for me was not relevant, given that I studied micro-eletronics and engineering.

By Henrique C

May 6, 2017

There wasn't that much content to this course. I realise it was the result of some restructuring and the previous version might have been more complex, right now it seems very little content for the price.

By Antti A

Jul 5, 2017

Should really have been included in the first part of the specialization. Exercises were also not demanding enough and did not cover enough of the material in the lectures

By Subhojit B

Dec 26, 2017

The 3rd and the 4th Week courses need to be looked at as the Assignments and the video lectures are not in sync and many videos are missing. The 1st 2 weeks are good.

By shakrah y

Jul 31, 2017

The videos referenced lectures that were not included in the course. Homework did not relate to material from the videos. Some of the videos contained little content.

By Alejandro S M

Sep 1, 2016

The course was still useful and with new information but I really found it lacking cohesion with the overall specialization and with its own content.

By Dawid G W

Aug 10, 2016

It's mixed from previous courses on Scala. Not coherent, many unrelated topics with little explanation of their importance and real-world use cases.

By Chris F

May 22, 2018

It seems that this course may have been neglected and gotten stale/out of sync. Some of the did not match the lessons.

By Ricardo R

Sep 5, 2016

The mix of materials from different courses hurts the structure of this course.