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

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!

Filter by:

126 - 150 of 1,466 Reviews for Functional Programming Principles in Scala

By Roberto M

Jun 24, 2016

It is my first course on Coursera and I have to admit that it is brilliant. The provided material is very helpful, lectures are very interesting and theory is interleaved with practice. Assignments are good and sometimes tricky. The lecturer, Martin Odersky, is very clear in conveying his message and, last but not least, is *the* person from whom to learn Scala.

By Mykola S

Jun 8, 2017

Excellent course on Scala from the creator of this beautiful programming language. Very detailed and clear material explanation with many examples and stress on functional programming. I have learned a lot from this course both in terms of Scala language and programming in general. Will definitely continue with other courses in this specialization. Many thanks!

By Rohan J

Dec 25, 2016

This is a great course. I have been using scala for almost a year before starting the course. But still I have learned so much. I now understand so many concepts correctly. And I learned much about Functional Programming itself. It needs completely different thinking, which I didn't have before. Now I will complete other functional programming courses too.

By Ingo v L

Apr 7, 2017

Fantastic course, well-structured and -presented! I liked the presentation style, a combination of prepared slides, live hand-written annotations and live code examples. The exercises are broken down into easily digestible portions, so the Functional Programming apprentice isn't completely overwhelmed with the unfamiliar way of thinking about programming.

By Mike O

Apr 3, 2017

This is a really good course. I was impressed. Some of the problems I hadn't seen before so it made the course interesting, I had read a number of functional language books and thought this would be an easy give me but I wound up leaning a lot more than what I did from the books. The course gave me a far greater understanding of functional programming.

By Dmitrii P

Jun 21, 2016

Great introduction (or refresh) to functional programming paradigm.

The course is special because it is taught by Martin Odersky, the main developer of Scala programming language which is used throughout the course.

By the end, you will be able to use functional principles in your programming projects and you also will have Scala in your toolset, great!

By malhar j

Apr 27, 2019

Fantastic course for beginners to Functional programming. Slightly on the harder side if one is to understand all the details but still doable. Martin has done a fabulous job with the explanation. Very good and concise presentation (I'm quite surprised!) and decent assignments.

I would strongly recommend this course (although Im still not a fan of FP)

By Dmytro S

Feb 9, 2019

I think this is very good course: it does introduce into a lot of details and aspects of programming in scala and the same time it give some task, that are very unique but can be applied to real life project. Explaining source code of "List" construct is also very valuable and shows the power of the language. I am very glad that I took this course.

By Sharif D

Oct 28, 2018

Excellent course for learning to write Scala code that strictly follows the functional programming paradigm and only uses immutable objects and data structures.

If you just want to learn Scala quickly and don't care about functional programming, or need performance more than immutability, then this course might not be the best choice for you.

By James R H

Feb 10, 2017

Very interesting introduction to functional programming and Scala. The assignments are a bit tough/abstract at first with the home-made data structures, but things get more grounded by the end. Odersky's lectures vary between nuts-and-bolts and headier stuff, but they're all delivered in a clear, organized, and subtly enthusiastic fashion.

By Doug C

Jul 29, 2020

Wonderful course. It is a really challenging university level course if you don't cheat and try the homeworks yourself. I would say most programming assignments take 3hr minimum and some can take a few days if you are not awesome at functional principles (assuming you are not if you are taking this course). Loved it, highly recommend.

By Tien N

Jan 6, 2020

This is a very good course with good materials, clear explanation and challenging exercises. This course best fits learners who are already experienced with an imperative programming language (like Java/C++) and have good knowledges in basic/intermediate algorithm concepts (such as back tracking, combinations, complexity analysis, etc).

By Johannes S

Mar 18, 2017

Nice introduction to functional programming and learning how to think about problems in a different way. Learnings are not tied to just Scala - I also think I did not learn that much of the Scala syntax during the course. I enjoyed the exercises and the course material was good which encourages me to continue on to the next course.

By Anurag S

Jul 12, 2016

I had a decent understanding of Scala going into this course but after solving the programming problems and watching the lectures, I think I've improved my understanding of the core principles behind the language and functional paradigm. I'm looking forward to taking my skills to the next level with the next course in this series.

By Razvan V

Jul 26, 2017

The course, except minor things that can be solved in the forums or online, is very well done. It feels like a real university course, you will succeed only if you put your mind at work. Not only the language principles are explained but the reasons behind are sometimes given. What do you expect from the creator of Scala itself?

By Aditya L

Jul 26, 2017

An amazing course. It brought out the elegance of functional programming beautifully (=> step by step at reasonable pace).

And the assignments were extremely well designed that suited the purpose.

I feel more problems on recursion should be made available (not necessarily for assignment) but for brushing up recursive algorithm.

By Philipp W

Jun 2, 2019

Even though i took a version of this course back in 2013 outside the (later introduced) Scala specialization the course material did not loose its relevance and i very much enjoyed solving the assignments with an evolved functional mindset. Another big plus: Martin Odersky's lecturing style is very clean and comprehensive :)

By Accumulator

Aug 28, 2017

Learned concepts of programming that I never knew of before. Really gives you insight into how elegant solutions are supposed to be created.

Would recommend to anyone wanting to expand their perspective on programming as a whole, if they haven't already explored functional and object-oriented programming working hand in hand.

By Fabrice C

Apr 15, 2017

Concise and clear - the concepts were well presented and the assignments really helped drive the point home without being too big in scope (no assignment took me more than 4-5 hours total but I still learned a lot doing them). I feel like this was a solid time investment and look forward to the other courses in the series!

By Vlad N

Feb 11, 2017

Course is very intense. Good knowledge of Scala/Java indeed needed for solving the assignments. But the topics were cool: functional programming combined with oop principles and a hybrid of those turned to pattern matching. Every class can be compressed, every object is a function. Absolutely top drawer of programming!

By Martin O

Nov 27, 2016

This course provides an excellent introduction to Functional Programming and is expressed elegantly via the Scala programming language. The concepts introduced will make you a better programmer in other languages. For example, JavaScript provides many of the same constructs which allow for a functional programming style.

By Glendon K

May 8, 2018

Well taught in nice increments. After going through Functional Programming in Scala twice with some difficulty I tried this and it's clarified a few basic things that are taken for granted in there. Scala isn't the easiest language to read (and I've used some pretty cryptic DSLs) but this makes it easy. Amazing course.

By Vikram B

Sep 28, 2020


The course is really challenging and force you to think in a functional way. It's hard for people who come from imperative programming background, but the effort is worth it. Thanks for the wonderful assignments, I couldn't get it right for the first few times but having gone through the lectures again helped me.

By Matthew V

Sep 28, 2020

This course did a great job of pragmatically demonstrating principles in functional programming. The assignments demonstrated the ways Scala is intelligently designed with these concepts in mind, and the lectures were aptly suited. I particularly liked how well the course incrementally introduced the syntax of Scala.

By Marco M

Nov 28, 2016

I really like this course, a bit hard as I'm working and I have a child, hence I reduced my self doing it late in the evening and my math skills where a bit rusty. But surely interesting and opening the mind on functional programming and its different approach. after many years or pure Java a fresh breath. Thanks