Chevron Left
Back to Functional Programming Principles in Scala

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

7,599 ratings
1,532 reviews

About the Course

Functional programming is becoming increasingly widespread in industry. This trend is driven by the adoption of Scala as the main programming language for many applications. Scala fuses functional and object-oriented programming in a practical package. It interoperates seamlessly with both Java and Javascript. Scala is the implementation language of many important frameworks, including Apache Spark, Kafka, and Akka. It provides the core infrastructure for sites such as Twitter, Tumblr and also Coursera. In this course you will discover the elements of the functional programming style and learn how to apply them usefully in your daily programming tasks. You will also develop a solid foundation for reasoning about functional programs, by touching upon proofs of invariants and the tracing of execution symbolically. The course is hands on; most units introduce short programs that serve as illustrations of important concepts and invite you to play with them, modifying and improving them. The course is complemented by a series programming projects as homework assignments. 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....

Top reviews

Sep 13, 2018

It took me much longer than expected to finish the course and sometimes it made me feel stupid and helpless. Diving into functional programming was a mind bending experience, totally worth time spent!

Oct 8, 2016

Really good explanation by the instructor. Good assignments. The assignments gave a good insights into functional programming. I loved the way the problems were decomposed into neat smaller functions.

Filter by:

1201 - 1225 of 1,470 Reviews for Functional Programming Principles in Scala

By Ram v

Jul 11, 2016


By Deleted A

May 28, 2016


By Gowthamvarma

Aug 23, 2019


By Mohamed E B

Feb 21, 2018


By Yurii K

Oct 28, 2017


By snabel k

Aug 8, 2017


By Igor

Jun 26, 2017


By Andrey M

Nov 20, 2016


By Vladimir Z

Nov 3, 2016


By Jie

Oct 13, 2016


By Mattia Z

Aug 21, 2016


By Oleg M

Feb 5, 2020


By Raghuwanshi, V

Sep 18, 2018


By Deleted A

Jan 1, 2018


By Krasilov D F

Oct 11, 2017


By Yaron D

Nov 9, 2016



Sep 30, 2019


By lzx

May 1, 2017


By Damien F

Aug 14, 2016


By Sushmitha v

Nov 26, 2018


By Michael W

Oct 13, 2017


By Oren Z B M

Aug 9, 2016


By David S

Oct 7, 2016

Excellent intro course, but not without issues.

In general, pro's include reasonable length lectures, provided by _the_ leading expert in the field, and designer of the Scala language. Focus on functional programming techniques versus syntax nuance is a significant benefit - Scala is easy to get bogged down in. Pro's also include the fact that lectures have had at least some amount of post-production work done, and manage to make voiceover/slides/whiteboard consistent and coherent better than most similar online classes/tutorials.

The assignments are reasonable, and the time estimates of ~3 hrs each was about right on the average, at least in my case (senior programmer with deep background in C/C++, and just enough Java to be dangerous and dislike boilerplate).

Some drawbacks - there was no clear segue from "basic syntax" to "collections framework". That's _IMPORTANT_. In 20/20 hindsight, I would have benefitted from a big, bold slide before the first mention of "foreach" that said "stop here, go to the text, and skim the chapters on collections for 'foreach' and other common operations. This is a building block for everything to follow, and NOT unique to just lists."

The major factor keeping this from being a '5' in my mind were that the assignments didn't always make sense as written, and I had to go back and forth between the assignment writeup, the source code and the test cases to really sort out what was required. The assignments could become _much_ more effective if they were provided with more test cases, including expected FAILURE cases and not just bare minimal acceptance cases.

By Ezequiel D D D

Feb 10, 2018

This course is very good and helped me to dive into functional programming and Scala language.

Teacher is very clear and videos are good. The idea of mixing functional style programming with a language like Scala makes it a good challenge to learn and/or strength two skills in one course.

At some points I found some of the assignments more focused on algorithmic problems more than functional programming or Scala itself, which can feel a bit complex.

On the other hand classes do not mention almost anything about the performance issues that can arise when using recursion at this level, which leads to overflow or timeout problems when submitting and grading assignments or if they are used in real work situations. I understand for a first course it could be reasonable.

Finally, many exercises in the assignments depend on the previous ones so if you get blocked at one, you may not be able to continue.

Overall, I recommend and It's a good course which will for sure improve your programming skills, and combined with other courses in the specialization can be an interesting challenge.

Thanks, Ezequiel

By James M

Jun 26, 2016

Good introduction to functional programming and Scala. Although, the lectures and assignments can get rather mathy (pointless proof of refactoring using maths, Pascals Triangle, Huffman Coding, Counting Change, etc) If you don't have a mathematical background, I would suggest getting the basics of programming down before starting this course so you have less to worry about.

I found myself reading up about the maths behind some of the assignments before tackling them, when this could've been avoided with less mathematical assignments. I looked into the first assignment of the next module in the specialization and thought to myself: "Why bother" as it just continues the trend of solving more complex mathematical problems -- something rarely tackled as a professional developer.

I would've liked to see the standard collection functions taught and used more frequently: map, flatmap, fold, etc.