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

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:

151 - 175 of 1,615 Reviews for Functional Programming Principles in Scala

By Dmitry 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 F

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 Iurii L

Feb 12, 2021

The course could be very interesting for those, who have not been thinking of solving problems in the way Functional Programming approaches problems. You will learn how to implement a solution based on immutability principle and how to compose and work with higher-order functions and practice a lot with Scala, having a lot of fun.

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 27, 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 Patrick B

Feb 26, 2021

This course was very hard, but therefore also really worth it! The OOP aspects (Polymorphism) made the material a bit harder to understand, because sometimes the definitions of operatiosn were spread around different classes. But for practice, one needs to now how to combine OOP with FP, so it was a really good exercise.

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 Allyson D d L

Apr 20, 2022

Amazing course. After this course, Scala is my new favorite programming language.

The assignments are very challenging but it's good to practice.

Functional Programming is so powerful, I want to practice more and more.

The only bad thing in this course is that we can't download the programming demos shown in the videos.

By Vikram W

Sep 28, 2020

Wow!

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

By Arvind B

Jul 9, 2017

Enjoyed taking the courses and solving the assignments. The last one was a bit tough but other than that it was a good intro to scala. Might be challenging to people who've never read any other book on Scala. (I already had read martin's programming in Scala book) and this felt like good supplementary material.

By Korbinian K

Oct 14, 2016

Very well organized course! The material is systematically explained in Lecture videos and the exercises efficiently support the learning. The exercise checking with sbt works perfect and gives useful debugging hints. I recommend to set up Eclipse with Scala plugin since this IDE also gets used during Lecture.

By Sinisa C

Oct 21, 2020

Great course! From the creator of Scala. That is privilege not always possible. The difference with videos from trainers who learn Scala just to record their course is incomparable. I will definitely continue the specialization path after some time of reviewing and practising the knowledge gained in this one

By Peter N

Dec 12, 2016

Good brain trainer. A bit overloaded by math-theory examples, but obviously it's what could be expected for general introduction to any programming learning. This course well introduces basics for Functional Programming and will be good not only for Scala developers. Thank you to Martin and other creators.