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,707 ratings
1,568 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, such as modeling business domains or implementing business logic. 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

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.

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:

1276 - 1300 of 1,505 Reviews for Functional Programming Principles in Scala

By Juan P G E

Jan 19, 2019

The videos are generally good. The interaction with the user is good because it makes you think about the solution of the quiz problems. The assignments are pretty hard compared to the content of the course; I have spent many hours trying to solve them, much more than the 3 hours mentioned. Many of the videos look more focused on mathematical stuff than in programming; also, most of the recursive solutions would be a problem in a company´s software in my opinion.

By Ratskevich N

Oct 19, 2016

Nice course, hometasks are about medium level difficulty (in hackerrank terms). Problems are already half-completed, so you're just filling the gaps following the design. That really shows the power of scala in things like pattern matching (suddenly, it's everywhere!) and functional programming approach (lots of small functions with pretty narrow scopes). So althouth you can program just as if it was java, you're kinda pushed to do scala.

Thanks for the course.

By Artem R

Dec 22, 2020

In general course is good. It gives the basics of functional programming paradigm.

However most of the tasks are incredibly difficult, It takes a lot of time to look for external resources to solve the assignment. So a deep mathematical background is required for the course.

If you wish to get the concepts of functional programming this is a right course. In case you wish to learn how to code in Scala, then it is better to read a book by Martin Odersky.

By Steven T

Jul 23, 2016

The last assignment was definitely a step-up from the other weekly assignments which I found very challenging, this coming from a novice in FP. The lectures were well presented and clearly demonstrated functional techniques as well as the theories behind them. Some may find the lectures a bit tad too academic but thankfully most of such lectures can be skipped without too much detriment to completing the assignment. All in all an excellent course.

By Luigi C

Jan 2, 2019

Great course, smooth and progressive introduction to the features of the language and the functional approach in general. I would recommend the optional parts as well.

What I missed though was a more top-down approach in the decomposition of a problem. Instead the functions are already defined and one is usually asked to fill the gaps. In other words I think it would add value to share the thought process leading to the need of certain functions.

By Tom P

Jul 3, 2017

This class is a reasonably good introduction to Scala, and I feel like I learned a lot, but it wasn't enough to make me feel comfortable writing Scala code. While I feel like I understood the material in the lectures well, every homework assignment (the last couple, especially) made me aware how little I really understood about the language and how to use it. I feel that there must be a better way of introducing the language, to avoid this.

By Alexander K

Sep 27, 2016

Great course. I wish the prereqs would specify graphs, inductive proofs and other prerequsites from the math domain that were required to understand the examples.

Switching to FP and recursive thinking is hard enough as it is - having to combine it with graph algorithms and other concepts, not necessarily familiar for OOP background programmers increases the effort unnecessarily. That being said, good thing the course offered a preview week.

By Deleted A

Jun 23, 2020

This course was a totally challenge, because need to change su mindset, but always to improve your skill set to solve problems, and I think that I gonna see the algorithmic problems with other eyes. I must also say that this course is not for beginners at all, I had to watch some videos several times to be able to follow Mr. Odersky, I don't think it is because the english isn't my native language, but because it's a really hard course.

By Török E

Dec 31, 2016

Introduces Scala syntax elements and concepts systematically and logically (functions, objects,classes, lists, collections, including syntactic sugar).

If you already know another functional language, you will immediately recognize equivalences (e.g. instead of sum types you have subtyping with case classes, the type of recursive functions needs to be defined, etc.), and can complete the course in a matter of days.

By Benjamin S

Sep 12, 2017

Good introduction to Scala and especially to the concepts behind the language and Functional Programming.

The lectures are very clear and consistent. Still you should already have some experience in software development or computer science to keep up.

The exercises are also a good fit to the lectures and help you understanding the matter, while being very theoretical on the other side.

I would do this course again.

By Antoine L

Mar 12, 2019

In-depth course that was just the right level for me (experienced programmer).

I liked the progression and the exercise which were complete enough to have to design solutions applying the learned concepts. That was really the missing piece for to learn Functional Programming.

Towards the ends the exercises get a bit tricky so I recommend planning some free time to go deep rather than a few hours here and here.

By Subhojit B

Nov 27, 2017

The videos are a little too simple for the actual assignments. I felt they lacked information regarding scala syntax related to functional programming. when I was doing the assignments I felt that I have never come across certain constructs in the videos and had to refer to other materials . But from the logical point of view, this course is very good. Clears a lot of concepts about functional programming

By Wenyuan Y

Mar 26, 2017

Great course! This is my first time that I have finished course in coursera. The assignment is intersting and challenging. By studying the course and coding the assignment, I learn a little about functional programming. Howerver, I'm still confused about what the advantage of functional programming is and how to use function programming in project. I hope the next course can figure me out.

By Krishna L

Jul 9, 2019

Some of the lectures get into more detail than a beginner would be able to understand. Coming with 15+ years of traditional OOP in Java, I found myself getting lost in some of the content and had to supplement with other online tutorials. For many lectures, a good companion reading link with an option to try out the corresponding scala syntax (such as scala fiddle) would be beneficial.

By Eugene T

Jan 10, 2017

This i believe is a very good introduction into Functional programming. This course was a lot harder to what I initially expected. If you are used to languages like Java or C# you have to completely rethink the way you are used to approach problems. I had to do a lot more extra work and reading and do extra examples to understand some of the new concepts - but it is worth the effort.

By Tim B

Jun 11, 2020

Really good course. Only point of criticism would be that sometimes the level of detail in the explanation of the assignments is a little low. I would have benefitted from a step-by-step explanation of an ideal solution after submitting, so I could have understood the assignment in depth when I got stuck. This would be more helpful than the generic feedback provided after grading.

By Kyoung-Seop P

Dec 27, 2016

Fascinating course. I've been studying scala with book and internet before I found this course. During that time I felt something not enough to get into scala programming. Because I can't really feel what is functional programming is. Now, after finish it, I think I can say what it is. It's broad my sight in programming world.

It was very helpful course. Thank you!

By Олег П

Apr 14, 2018

The course is very hard and interesting even for programmers with Scala experience thanks to lots of advanced algorithms related assignments.

But the suggestions are sometimes misleading (e.g. in the assignment called objset it says to use tail-recursive helper funciton which you cannot do with trees because you have to recurse in two direcitons, unlike with lists)

By philip g

Feb 26, 2018

very challenging if no former exposure to FP. I came from a Python / Fortran background. Some of the programming assignments ridiculously hard and sometimes feel the lecture material doesn't quite prepare you for it.

That being said, if you persevere you will learn a lot. Really interesting course, and I am fully sold to the principles of FP I have seen so far!

By Andy D

Nov 13, 2016

Excellent introduction to Scala and the principles of functional programming, with lots of challenging and enjoyable exercises. My only minor complaint is the some of the exercises require knowledge that has not yet been covered in the course. However, it could be argued that this encourages active research by the students, which isn't necessarily a bad thing!

By Jakob W

Jan 26, 2017

This course was great for developing new brain connections. It was sometimes frustrating - In particular with the very limited discussion threads available on the forum (I wonder if it would be possible to merge forum threads between some runs...). But it was great introduction to get the brain started with functional programming and related Scala syntax.

By Fred t

Oct 13, 2018

Very interesting and thoughtful course !!

On week 3, most of the tests rely on a single method that really makes the result (all or nothing) as soon the the load all Tweets is called (15 min to get "It's not working"). Kinda discourage you to move forward.

Except that, the content is very good and the Exercises are very useful for learning !!

By S D Z

Aug 5, 2019

I thought this course was really hard. The lectures are 1-2 hours of video every week and the assignments are very challenging. Some of the videos are in the wrong week. Wish case classes were better explained. I learned SO SO SO SO SO much though. This is NOT a course you can zip though. I thought I would do it in just 7 days...NOPE!!!!

By Eric M

Aug 11, 2016

The material was fantastic, but the lectures seemed to be a bit basic in comparison to the actual coding assignments. Even after understanding the martial covered in the lectures it felt at times as if the coding assignments were drafted against an entirely unrelated topic (or at least by someone with a completely different approach).

By Leonhard R

Apr 5, 2018

Great for getting started, all the assignments can be solved in reasonable time and help in really understanding the concepts.

Some parts of the course materials are a bit outdated though (e.g. the project files for the last assignments don't work out of the box, you have to fix the path to the text file containing the words)