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
8,230 ratings

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, Netflix, Zalando, 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 of programming projects as homework assignments. Recommended background: You should have at least one year of 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 background in mathematics (e.g., algebra, logic, proof by induction). Last, you should have some familiarity with 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:

1376 - 1400 of 1,611 Reviews for Functional Programming Principles in Scala

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 Daniel 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)

By Zeb A

Jun 13, 2017

The concepts in this course are essential to understanding scala. However, I feel as though the instructor (Dr.Odersky) doesnt properly prepare students for the assignments present in the course with his materials. FP in scala (red book) is far better at teaching these concepts once you learn the basics from the videos.

By Sean L

May 27, 2017

Very good overall, although it gets too abstract too early with the material in Weeks 3 and 4, before become more concrete again in the final two weeks. I would have reordered that material, placing the Scala Collections API material before the discussions of how Scala's object-oriented and functional aspects interact.

By Deleted A

Feb 5, 2018

It is a good course. However, what I find missing is having real world examples instead of trying to solve something libraries have solved. I understand the effort is to understand the concepts and data structures, but this could be done in a nicer way too. Including some real world examples could be quite helpful.

By Gonzalo R

Nov 16, 2017

The pace of the course is greate anda the excercises are challenging yet affordable. A little more clarity in some aspects of the excercises would be appreciable. Also, I would have liked to get a "best" or "correct" result after I passed each excercise to check my solution against someones with more experience.

By Gerard k

Sep 10, 2016

Good course, learnt quite a lot even as someone with some existing experience of Scala. The exercises were challenging but not too difficult and the estimated completion time is pretty much spot on. Just a shame that the automatic grader and verification systems are less than reliable on some of the exercises.

By Mark M

Oct 28, 2017

Excellent class but feels (and is) cut and pasted from previous incarnations. Sometimes the professor will reference something covered "last time" that was not covered at all. Coursera, it would only take a minimal effort to clean up these inconsistencies!!!

Still an excellent class that I strongly recommend.

By Andrew P

Nov 7, 2016

The course was good exercise, and Martin does a very thorough job of covering the topics of the course. I do wish the course focused a bit more on the assignment problems. There were some interesting problems to work on, and I don't think the discussion forums are a very helpful way of covering those topics.

By lu

May 14, 2017

Good introduction to functional programming using Scala! FP is quite different to imperative programming, it has a higher level of abstraction. I think every programmer should have some knowledge of FP. However, this is just a course to tell you some principles and not a comprehensive Scala course.

By Christopher M P

Jul 19, 2021

It's an interesting course, but it has a tough learning curve and skips the basics. For many of the assignments, I found it was best to go a few lessons ahead to understand how to do them. Also, needed to watch a few Scala videos on youtube to figure out terms they had glossed over or zoomed by.

By Yaroslav R

Apr 5, 2020

Although I adore the use of SICP, gotta say that connections between some parts and lectures were a bit jumpy.

But overall it's a great intro into Scala and FP for those who knows nothing about both of them, and especially the latter: otherwise, this course might be a bit easy and boring to you.

By Gianfranco Y

Jul 4, 2018

Really challenging course that demands a lot of thinking and reasoning. Even though I got to finish it I think there were times the assignments were kind of hard and not need to be it, since applying the learned concepts to slightly simpler problems will get the same result. TLDR Good course

By Pedro P

Dec 8, 2016

In general is very good, but the assignments are sometimes extremely difficult. Also, assignments have questions that are ahead of the current week, they as things that were not included in the lectures, so you need to watch the lectures of the one week ahead to be able to understand them

By Nathan B

Sep 4, 2016

This course is a great way to start learning Scala and functional programming. Would have given five stars, but the coding examples were sometimes boring and difficult to take in. I would suggest using smaller examples to present material and making the full coding examples optional.

By Carl A

Feb 18, 2021

Tip: No need to install Intellij idea. Just use your text editor + command line. Definitely NOT a beginner course on programming or algorithms. You should have taken some other course on algorithms otherwise this course's assignments will just frustrate you. Otherwise it's alright.

By Cazuya M

Apr 18, 2022

This is a great lesson for me to study Scala and encourage its technology. And I find it a bit difficult to learn ...

If possible, I think it would be better to have an annotation "which files need to be selected and worked on" (maybe this is a given in the programming community)

By Deleted A

Jun 19, 2017

Have a background in the subject before you take the class. I had to switch sessions because I had never taken a class in Functional Programming and found myself in over my head a few times. I really enjoyed the class once I had a better foundation in the concepts. Good Luck!

By Michael B

Mar 5, 2017

A word from old time programmer: More basics, fewer complex problems.

More stress onto the language constructs, control structures, functions, control abstraction ... rather than .. figuring out algorithms without having basic understanding how things can be done in Scala.