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:

1576 - 1600 of 1,611 Reviews for Functional Programming Principles in Scala

By Egor K

Nov 25, 2016

The first couple of weeks were awesome - love Scala the language and the whole functional approach, and the detailed description of how the language actually fits together.

Also love how the homework teaches you how to setup IDE, create unit tests, and submit actual code as homework - not just workbooks and multiple-choice quizzes like in some other courses.

But why oh why was it necessary to go in specific detail over how to define natural numbers from first principles using classes, or spend a whole week on lists, etc? All that might be fine for general education in a university context, but as someone who does want to understand Scala, but from a perspective of getting cool things done - that bit was a total waste of time.

Would be a better and shorter course if those 'didactic' bits were trimmed.

By Rodion G

Apr 14, 2019

I completed this course in a single day (about 8 hours) having substantial experience as java programmer. However I feel that if course is to teach Scala, it should not be so heavy on all functional programming tricks (which in the given examples and assignments are often too artificial, inefficient and awkward). Or if the course is to teach functional programming, probably Scala is not the most user-friendly choice. Also as a developer I feel displeased with assignments stub code poorly formatted with indentation bORken both in classes and functions.

By Zebulin M D

Aug 29, 2019

Important questions are left unanswered (for years!), instructions of certain assignments are incomplete and leave the student to guess (esp. when questions go unanswered when asked). Love Odersky, but this course as organized and presented is a real let down.

Update: Great potential to learn very useful concepts if you can push through in spite of the issues. I am going to press on with the follow-up courses in this specialization. Genuinely hope this course is updated and fixed so that others can complete it without unnecessary friction.

By Michael S

Feb 13, 2017

The grading seems to round up to 100%, which makes the assignments that are already generally easy far too easy. I took this course instead of just doing my own thing so that I could get some structure and motivation. While there was some structure, it was quite basic, and the motivation was diminished by "good enough" not being much. I was considering taking the later courses in the specialization, but I'm afraid that without real grading I won't learn as much as if I learn more slowly outside of Coursera.

By Ricardo R O

Sep 19, 2022

Es interesante ver al autor del lenguaje de programación dar el curso, pero es exremadamente dificil se quedan cortos con los requisitos, a pesar de que tengo experiencia en programacion muchos de los conceptos van desde matematicas dicretas a otros conceptos complejos por lo que el curso incluso la espacializacion no esta orientada a datos o big data o curiosos solo para programadores con experiencia en scala

By Shodz

Mar 7, 2020

Great content but the rhythm is a bit fast, I didn't feel fully equipped to manage exams, indeed, each of them took me at least 2 days to solve and I have rage quit for a complete week for the last exam. I'm going to redo some of them before start the second course.

Apart from that, the format is cool and it's pleasant to watch the teacher solving the rare mistakes he did with ease.

By Eli

Sep 6, 2017

I really feel that the assignments were out of sync with the content of the lectures. Occasionally it seems that you needed to watch all the videos in order to go back and complete assignments that should have been done already. It was very confusing without a background in the material. I liked the lecture material a lot, but feel the assignments should have been more connected.

By Alvaro V

Jan 28, 2017

The assignments took me so long. It was supposed to be 3 hours but, got obsessed to have them ended ok, but in 15 hours nearly. I would recommend to build up from very basic stuff, and as the learning advances, going into more difficulty.

The hints for the assignments were valid in the the last lesson, but for another lesson, I think lesson 4, there was no hint.

Thanks

By Deleted A

Mar 17, 2017

If looking only at what is being taught in this course, it's quite good. And I can heartily recommend it.

The lecture videos are extremely monotonic! Which makes it _very_ hard to keep focus and pay attention. It feels like hypnosis sometimes. Several colleagues have the same experience with this course. Which is why I'm only giving it 3 stars.

By Antonio A

Oct 13, 2017

The points covered are interesting and useful, with an insight on Functional Programming. However, for newcomers on functional programming, the assignments are a bit too far from the videos or lack the instructions needed to complete them in 3 hours. Some hints for the toughest parts would be very much appreciated.

By Daniel Z

Jan 10, 2020

1)lecture slides in text format would be a great thing - to review smth you have to scroll through the video every time

2) some of the content is outdated - there are a lot of method demonstration that are currently deprecated

3) It would be great to see Java vs Scala syntax comparison more

By Francis T

Apr 16, 2017

The course is not really about Functional Programming, but more about Scala in general. I've learnt much more about FP by reading Learn You a Haskell for Great Good by Miran Lipovača, and Functional Programming in Scala by Paul Chiusano and Rúnar Bjarnason

By Ilya O

Jul 11, 2016

The only attractive thing in this course is a name of the author. The course itself is poorly designed, homework is hardly connected to the content of lectures. Might be interesting as an introduction for Scala newcomers, though.

By Derian P T

Jul 14, 2019

Instead of teaching Scala syntax, it focuses on teaching functional programming logic and conventions, which makes it a very challenging course. If you are looking for an introduction to Scala, this is not it.

By Diogo M

Aug 31, 2021

Poderia focar mais em funcional e explicar melhor... conteudo esparso e denso com poucos exemplos prtáicos.... senti bastante dificuldade, se noã fossem alguns livros eu noã entenderia bem o scala.

By Yurii M

Nov 4, 2021

after python very difficult. would be good with explaining for IDE using instead of just reading

By José I

Mar 11, 2021

so much focus on recursive programing

By Rishab K B

May 13, 2020

NA

By Andreas R

Apr 25, 2020

I have the feeling that Scala is a language that may have a nice logical consistency, but is far too much overloaded with symbols and possibilities for achieving exactly the same thing in different ways. I think you can appreciate this course if you have a background in theoretical computer science, but for all others who choose the course to learn Scala as a language without academic interest, that is just confusing.

A Scala beginner can also not appreciate how elegant and concise the produced code is and that you can put the meaning of hundreds of lines of imperative code into only a few lines of functional code (without side-effects!). For a beginner, it is more important that you can still read and understand your own code two weeks after finishing this course.

From other coursera courses, I am used to getting the course material (slides, example code) as a download, either linked in every week's curriculum or in the course overview resources section. For this course, I was not able to find it and have manually typed the exercises during the lectures. If it is actually there and I just could not find it, consider this statement pointless.

Concerning the tools setup, I have the impression that the descriptions in the beginning of the course are very detailed, however quite outdated. I ended up following a guide on installing sbt from here https://www.scala-sbt.org/1.x/docs/Installing-sbt-on-Windows.html and have used it with Visual Studio code.

Another thing that I at least did not catch in this course was how to actually create, deploy and run a simple Scala command line application. Do all people ever just use the IntelliJ IDE worksheets? The problem could also be that I do not have a Java background and am missing some knowledge that is obvious to all others.

By S G

May 17, 2021

I've tried to take the course and have already completed 3 assignments. I have to say that I still do not understand how to code basic stuffs on scala. Going to unenroll from the course. The course is too technical, no syntax was explained, given that I do not have any background from scala, this course is poorly presented. Most of the assignments are algorithm based, although it is not too hard to me (3 hours assignment but I am able to finish it within 1 hour), but the course is not enjoyable.

By Marco C

Sep 18, 2020

I expected something different from a "Principles" course. It is expected to have a Computer Science background and the assignments are not easy at all. I mean, they don't need to be stupid, but they can be really frustrating for a novice (since i thought this course was for novice students). Lessons are ok, but i really hate that the teacher doesn't give the examples and you have to write them by your own, slowing down the pace of your learning.

By Elliot

Nov 5, 2023

A real case of theory vs practical applications. The lecturer goes over the theory in immense detail in the lectures but not much practical applications. Assignments have no build up where you can first practice the new topics you learned. Just straight in the deep end with some very tough problems - it results in you not building up any momentum as the student and feeling confident in attacking the problems. Would not recommend

By Cristian l

Jun 6, 2021

It is mentioned that it is only necessary to have at least one year of experience in a programming language, however, it does not mention that you must have a solid base in arithmetic, all the examples are associated in a very general way but with great complexity that is not clarified. The assigned tasks are becoming more complex. All prerequisites to enter the course should be declared.

By Pritesh S

Jun 2, 2020

There is a big disconnect between lectures and assignments. It seems like there is a mix and mash of materials from different sources. Had the instructor and EPFL team put more efforts into the support resources, it could have been much better. I really liked the videos from Weeks 1 and 2, but then the later week videos seemed inconsistent.

By Anastasiia Z

Sep 10, 2021

This course was too theoretical, for my taste. Many lectures looked like an advanced mathematics course. Also, the course tasks were way too hard for someone just starting with the language. My senior colleagues at work said, that if their learning of Scala would have started this way, they would have ran away and never returned back.