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,587 ratings
1,528 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!

Sep 23, 2019

As expected Martin is awesome in explaining principle of functional programming. I have started reading the book as well to make sure I keep up with the knowledge which I have gained from this course.

Filter by:

51 - 75 of 1,466 Reviews for Functional Programming Principles in Scala

By Robbie C

Feb 26, 2018

I found it assumed too much knowledge, and found the order/structure of the course to be suboptimal.

By Eric L

Oct 4, 2016

Good material, but the lecture format was very dry and composed primarily of long videos.

By Pavel D

Nov 19, 2017

Very boring. Too much about OPP in FP course. A lot of important FP concept are skipped.

By Héctor P A

Sep 4, 2016

This course was splitted in order to get more money, and we know it

By Cheslyn A

Nov 28, 2017

a bit difficult to grasp if you dont have the background knowledge

By munaf s

Jul 1, 2018

good technical level. Material could have been more engaging.

By Federico A G C

Jun 30, 2018

Not self-contained if you are new to functional programming

By Gustavo S

Dec 16, 2017

Decent Intro - some parts require external research.

By Rain

Dec 1, 2019

It's not easy to learn the whole course.

By Indian E

Jun 28, 2017

Examples are too hard

By Mironescu M

Feb 19, 2018

very hard

By dd3334

Jun 27, 2018


By Joe F

Nov 1, 2020

I think having a graduate degree in electrical engineering, and not in computer science, plus over 30 years of procedural and object-oriented programming were blockers on understanding this course. The videos are nice but there seems to be an unwritten or implicit understanding that one will be go off to somewhere (where?) and go deeply into the theory and take whatever time it takes to understand the concepts at their highest level.

Then comes the end-of-course programming exercises. It is stated that one must "think" in order to do the exercises but after thinking for many hours and not getting anywhere, it is frustrating.

There is no support so you either get it or you are out of luck.

I really want to learn functional programming and use Scala to do that but it is not going to happen with this course. I do not know what path that will be but I will have to find one.

It would really help if this course would be more specific about what a person is expected to know before starting. If a graduate courses in discrete mathematics is assumed, then say so, List books or other materials that explain the deep fundamental that the videos and exercises depend on.

By Rob G

Dec 17, 2018

I found the content to be too theoretical for an introductory course in Scala.

By Guy B

May 3, 2019

The course is not clear at all

By Jeffrey K

Mar 26, 2017

Not very practical.

By Luis S

Feb 28, 2019

Poorly made.

By Samir S

May 25, 2020

I have been programming in Java over the past few years. So, when I first encountered Scala code at work earlier this year, I was under the impression that I could just go through other developer's code in my project codebase and learn the basics of Scala. However, as weeks went by, I realized that I knew only bits and pieces of the language; and often, I was left scratching my head in bewilderment at some of the functional style code that I came across very frequently. This was when I decided to enroll in this course, and I think it was one of the best decisions I made. Professor Martin Odersky covers the concepts of Scala and Functional Programming so well, with all the in-depth examples. However, the real icing on the cake is the assignment every week. I really had fun completing all the course work and I can safely say that I have learnt much more than I could have by just going through bits and pieces of other developer's code in a Scala codebase, in the same amount of time.

By Christopher K

Dec 13, 2016

This is an excellent course and a great introduction to functional programming and Scala. If this is the first time you come across functional programming concepts and practices prepare for some frustrating times ahead … but don’t get discouraged it happens to everybody. This is not the kind of course that you can rush through and get a 100%, it needs your attention and some thoughtful effort. Needless to say, if you persist till the end the rewards are plenty, and by the time you complete the course you ‘ll have a feeling of real accomplishment and satisfaction.

Prof. Odersky is an excellent teacher and the material is well organized and presented (probably because a version of the course is offered at EPFL as well).

If you are interested in programming/programming languages don’t miss this one out!! It’s a course that is well worth your time.

By Jong H S

Aug 21, 2017

It's really a privilege to learn from the master Professor Odersky. This is a wonderful and relevant course. My most sincere appreciation to Professor Oderskey who has gone great length to impart knowledge of Scala to the masses. This course, together with 2 other courses in the series have removed all doubts and skepticism I have on when and how to use Scala in Data Science, what kind of problems that I can solve using this language and so forth. This course is truly effective and of the highest quality in every aspect: delivery, content and assignments. In other words, it is of Rolex quality. I will surely recommend this course to anyone interested to get started with Scala or even seasoned programmers. Kudos to Professor Odersky and team.

By Endre P

Aug 30, 2018

Really good course to learn the basics of Scala (well). I always thought Scala is simply a better Java, and read a book that followed exactly this approach, since I am an experienced Java developer. However, after taking Martin Odersky's course, I realised his approach to teaching Scala, namely considering it as a completely new language rather than an improved Java makes it much easier to master the language for those who are already experienced in Java or C#. Prof. Odersky is really good at explaining, and leaves no loose ends in the material, which is rare in todays MOOCs. The assignments are also complementing the theory well enough, and makes you practice all that you have learned from the videos. All in all, a great online course.

By Mumtaz

Jun 3, 2019

This is my very first course on Coursera and thanks to their scholarship Program which make me enable to learning from world top faculty in the field of Computer Science. It is like a dream comes true and you will surely feel like you are physically taking the lecture at EPCL ( École polytechnique fédérale de Lausanne / Swiss Federal Institute of Technology Lausanne). I would highly recommend this course even if you know nothing about functional programming like me. Keep in mind that the instructor of this course is the designer of the Scala language and who would be the best teacher other than the designer itself. Additionally, EPCL is world's top 22 and 8 in general and computer science subject ranking by QS Top Universities 2019.

By Ian E

Dec 6, 2016

An excellent course but tough! It has to be the number one way to be introduced to Scala. I spent a lot of time absorbing the material given in the lectures; the material is pitched just right to keep you thinking but yet not lose you. And the language is big, so there is a lot to cover, but I expect the greater expressiveness of the language to make developing software ultimately easier. I have an OOP background and had just played with LISP and Racket before, so though recursive programming was not entirely new, I found the assignments very demanding. But with perseverance they are doable and you are rewarded with satisfyingly elegant solutions. Verdict: highly recommended.

By Garth J M

Mar 6, 2018

Very good course. Real brain teaser for one experienced in imperative programming. When I thought their tests were mistaken, a little reflection taught me new principles and I found that it was I who was in error. As one who has taught and loves to teach, I think the design of this course is excellent. I especially liked the pause in the lecture where a problem was presented which I could copy and paste into a worksheet and solve. Sometimes my first efforts were fruitless and I was totally clueless but without a dent from experience, a new concept often has no place to go. When you experience a lack, your mind and heart are ready for the solution. Good way to teach!

By Ty B

Jun 26, 2016

I use a lot of Java in my current job, but recently had a chance to dip my toes into Scala for a recent project. I liked it so much, I decided to take this course to get a little more knowledge of the language.

I have to say, I don't think you can get much better of a teacher for an intro to Scala course than the designer of the language itself. The course was easy to follow, featured relevant assignments, and was quite useful. At one point, Odersky mentions basing the course partially off of SICP and that seemed apropos -- the course was sort of a condensed, Scala-based version of SICP.

I'm definitely looking forward to taking the next course in the series.