Learner Reviews & Feedback for Functional Program Design in Scala by École Polytechnique Fédérale de Lausanne

Filled StarFilled StarFilled StarFilled StarHalf Faded Star

4.5

stars

2,900 ratings

•

495 reviews

About the Course

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

Top reviews

RP

Sep 15, 2016

Filled StarFilled StarFilled StarFilled StarFilled Star

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 18, 2018

Filled StarFilled StarFilled StarFilled StarFilled Star

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

Filled StarFilled StarFilled StarFilled StarFilled Star

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 entireweeks 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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Shaul E

•

Mar 01, 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

Filled StarFilled StarFilled StarFilled StarFilled Star

By Gabriel G C

•

Jan 09, 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.

Filled StarFilled StarFilled StarFilled StarFilled Star

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Federico L

•

Jul 10, 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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Sergei G

•

May 05, 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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Gabor S

•

May 02, 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.

Filled StarFilled StarFilled StarFilled StarFilled Star

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Henrique C

•

May 06, 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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Antti A

•

Jul 05, 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

Filled StarFilled StarFilled StarFilled StarFilled Star

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Alejandro S M

•

Sep 01, 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.

Filled StarFilled StarFilled StarFilled StarFilled Star

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Chris F

•

May 23, 2018

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

Filled StarFilled StarFilled StarFilled StarFilled Star

By Ricardo R

•

Sep 05, 2016

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

Filled StarFilled StarFilled StarFilled StarFilled Star

By Kyungnae L

•

Aug 30, 2016

Several courses have been combined. Content is not updated. Now is 2016.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Damien G

•

Jun 10, 2016

Not very interesting

Filled StarFilled StarFilled StarFilled StarFilled Star

By Roberts P

•

Sep 15, 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!

Filled StarFilled StarFilled StarFilled StarFilled Star

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 entireweeks 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."

Filled StarFilled StarFilled StarFilled StarFilled Star

By Andrés F

•

Jul 16, 2016

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Zilvinas

•

Sep 03, 2016

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

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.

Filled StarFilled StarFilled StarFilled StarFilled Star

By Diego M C

•

Oct 29, 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.