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,244 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

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.

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!

Filter by:

176 - 200 of 1,615 Reviews for Functional Programming Principles in Scala

By Marc K

Dec 11, 2016

Really good course! Well explained, focused on the important concepts and the lessons well chained together. Now, the assignments can take much longer than expected. There is a bit of a gap between the theory of each lesson and the amount of thought that one has to put to pass their respective assignments.

By ROUINEB H

May 20, 2018

I really loved this course, I mean everything, nevertheless, sometimes I felt frustrated the way FP is different than Imperative programming, being used to it, at first it was some how hard, specially with immutable context, but at end, once you grasp the idea, everything falls in place as it should be.

By Timothée P

Jan 21, 2018

A very interesting course. Both functional programming and Scala were new to me. I had a hard time for several programming assignments, as the functional way is difficult when we are used to the imperative way. But this difficulty makes it only more gratifying when everything works. Thank you very much.

By Jiaxing L

Nov 26, 2017

Wonderful course in Scala. The programming assignments are fun and challenging. The course is probably too hard if you haven't programmed in static typing language such as Java, and contains a lot of stuff that seems only useful when you are more experienced, but the overall quality is still excellent.

By William H

Jul 6, 2017

Martin Odersky is an educator of note. But like all Olympians who make their sport look so easy and effortless, this expertise cannot happen without lots of practice. The grading exercises are crafted to give you that practice. An excellent course. Well done to the team that put this together.

By Jacobus H

May 6, 2020

Excellent course to start your journey on mastering functional programming. My review is, however, biased because I have been programming (with imperative languages) for many years. Irrespective of that I have learned new ways of reasoning and thinking that also aid my imperative programming skills.

By Lars G

Jan 14, 2021

A really nice opportunity for gaining a first insight into the principles and motivation aspects of functional programming using Scala.The exercises are well chosen and might bring back some memories of other exercises you had to complete during your previous education.Good job, Martin Odersky!

By Maksym S

Aug 9, 2016

This class is a great introduction to functional programming combined with object oriented programming and the combination of both gives you quite a lot of power. This part is not always taught in functional programming classes. As a great side effect you will get you quite acquainted with Scala.

By Fei G

Nov 5, 2021

A great experience! The lectures are concise while illustrating core concepts very well. Some examples are challenging so it takes time to fully understand. The assignments may only require tens of lines of code but none of them are trivial. Overall, university level course of very good quality!

By Yuan M

May 29, 2017

The course assignment is just brilliant. It guided me and influenced me to follow TDD pattern. The feedback I got after submitting each assignment focused both on the workability as well as syntax, I picked up a lot of best practices to write scala codes in the process. Really a great course!

By Nikola D

Jan 29, 2021

This was truly an amazing course. I am extremely happy to have taken it as it explains the basics of Functional Programming perfectly in a language that is highly popular. The assignments are very good as they are a perfect place to test your knowledge and seem to be very practical as well!

By Fernando T

Aug 16, 2020

Excelente curso. O curso faz um longo desenvolvimento dos aspectos da linguagem e passa a intuição da construção das operações.

Não simplesmente um curso de prática, é um curso de entendimento mais profundo em que em alguns casos você tem pensar com lápis e papel antes de programar a tarefa.

By Brad F

Jul 15, 2017

This course was very well structured and taught the core principles of functional programming very well. I was able to take away many concepts and use them in the real world. I would highly recommend this course for anyone who wants to push themselves to code in a purely functional manner.

By Stefano

Feb 13, 2017

I greatly enjoyed this course. I was already familiar with some FP principles but it was interesting to see scala's take on them. The weekly assignments were challenging and a lot of fun. I think I learned a great deal from this course and I'm looking forward to the specialisation courses.

By Pirooz C

Oct 10, 2016

The course provides a nice overview and introduction to functional programming and Scala. The weight of the material covered in this course is well defined for general programmers who want to learn functional programming and Scala. It will be a bit difficult with no programming background.

By Massimiliano D

Oct 31, 2018

High quality course. It accomplished to describe the basics as well as the most advanced features of the Scala languages, and how these features neatly and naturally mix together to allow the developer to write functional and elegant solutions to complicated tasks.

I highly recommend it.

By Mohan S

Mar 30, 2020

I had been knowing about functional programming since my college days. However, I had to unlearn them all and get the real feel of it in Martin's point of view. It is an excellent course !!

It is a great opportunity to learn the concepts from the professor Martin ! Thanks a lot :-)

By Jose A J C

Jan 4, 2020

This course is really good. The instructor explains very well all the concepts. This course has helped me not only to learn Scala but also to think in a different way of creating programs with the functional paradigm. I find some exercises difficult but they are useful for learning.

By Antonel P

May 7, 2017

I really liked this course, the way Mr. Martin Odersky structured and presented it. Some of the assignments were a bit difficult but in the end I am happy with the acquired level of scala and functional programming. Surely I will continue with the rest of the courses in this series.

By Miklós H

Mar 27, 2018

It was a bit difficult to switch from mutable data structures to immutable ones, and altogether I'm quite concerned with the performance tradeoff (which seems to be significant), but I like the brilliantly designed language syntax (even if it is extremely difficult to get used to).

By José M P

Nov 13, 2019

This course is excellent. Martin Odersky is not only an expert in the matter (dah!, I know; he created the language!) but he is an outstanding teacher (that I didn't know until I started the course). He explains things so well, thoroughly but with simplicity. Extremely good stuff!

By Manoj S

Sep 21, 2016

Very good and interesting course certainly provides a good level of foundation for functional programming. The exercises are challenging and it did take me longer then 3 hour to complete the course work. Further I had to revisit the videos and get the additional reading materials.

By Michael N

Sep 8, 2016

Great Instructor and challenging problems. The exercises help to reinforce the ideas presented in the lessons and the weekly assignments force you to use the skills. I will say that the programming assignments seemed a bit harder than they needed to be to help reinforce the ideas.

By mko

Sep 11, 2016

Really well prepared material. If you think about starting development in Scala, I suggest to take a look at this one. Just make sure you have some basic knowledge related to Computer Science. Without any background in Computer Science it might be hard to follow all the lectures.

By Sandip G

Mar 25, 2019

Course is very helpful to get understand the Scala in functional programming way. I have seen the videos twice as well as read a lot about functional programming paradigm. Concepts are explained in detailed. Exercises are very well designed, are conceptual and challenging.