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

4.8
stars
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

VP
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!

RS
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

superb

By Deleted A

May 28, 2016

Super!

By Gowthamvarma

Aug 23, 2019

Great

By Mohamed E B

Feb 21, 2018

great

By Yurii K

Oct 28, 2017

cool!

By snabel k

Aug 8, 2017

Great

By Igor

Jun 26, 2017

great

By Andrey M

Nov 20, 2016

Super

By Vladimir Z

Nov 3, 2016

Super

By Jie

Oct 13, 2016

cool,

By Mattia Z

Aug 21, 2016

Great

By Oleg M

Feb 5, 2020

Good

By Raghuwanshi, V

Sep 18, 2018

best

By Deleted A

Jan 1, 2018

nice

By Krasilov D F

Oct 11, 2017

cool

By Yaron D

Nov 9, 2016

Top.

By SHAHFAHED

Sep 30, 2019

Nil

By lzx

May 1, 2017

有趣!

By Damien F

Aug 14, 2016

Oui

By Sushmitha v

Nov 26, 2018

T

By Michael W

Oct 13, 2017

A

By Oren Z B M

Aug 9, 2016

T

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.