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!
As expected Martin is awesome in explaining principle of functional programming. I have started reading the book as well to make sure I keep up with the knowledge which I have gained from this course.
By Rachapong C•
As other reviews have pointed out, this course is insanely difficult. It's very challenging, which makes completion all the more satisfying. Finally completed it after 3 weeks! What kept me going though the course was the promise of the capstone project, which is about using parallel computing to plot global temperature data. Imagine what you would be able to do with the power of parallel computing that is only made possible by the (as others have pointed out) mind-bending functional programming!
By Vishnu P•
This course is really awesome. I tried many tutorials, documents videos etc. But in the end I was not happy. I felt an incompleteness. But this course was really great. It helped me to understand the functional programming and how to use it.To move from a OOP paradigm to Functional it was really difficult for me initially. But by this course now I am able to do it and think about a solution in functional programming way. So I am really thankful to the team who made this course. Thanks a lot.
By Matthew S L•
Fantastic course! Functional programming really warps your brain in the beginning, and that's a great thing for any software engineer. Martin Odersky is a fine teacher who has prepared very concise and expressive lectures and examples... Proof of this is seen in how few questions people seem to ask on the Discussion Forums. I'm strongly considering enrolling in the rest of the "Functional Programming in Scala Specialization" because of how awesome this course was. Highly recommended 10/10!
By Gabriel S•
I would not recommend this course for a beginning programmer, as the concepts Oderski covers are fairly complex and the homework is not simple. However, if you are wanting to learn more about functional programming, love to understand the guts of how programming languages work and process data, and want to diver deeper into recursion, then I would definitely recommend this course. I found it very informative and helpful. I will probably take the course again. And Scala is awesome.
By David D•
This is a great course to learn both Scala and functional programming. I have a few recommendations:
Have a student review the setup instructions twice a year to keep up with changing bugs and software. Add more time to cover some of the details, for instance, how to cast a Nil when using fold. Plan on this taking more that 4-6 hours a week. This is especially true if you are not familiar with functional programming, the JVM environment or mapping/folding functions.
By Jaime R•
I loved this course. It reintroduced me to the core concepts behind functional programming, which i first learned in university, with a great mix of lectures and fun exercises. FP is a good tool to learn to think abstractly about problem solving. The teaching is really high quality, like you'd typically only find in a top world university. Would recommend to anyone curious about beautiful computer science concepts and wanting to make better use of their free time.
By Renee B•
For someone without experience in Java, but with other programming experience (C/Python), I found this course to be interesting and challenging. There's a lot of recursion in the assignments, which made my head spin. .. but I thought the course coverage was quite good. I supplemented with the instructor's book.
the main recommendation I'd have is more information about using the IDEs. A lot of my frustrations ended up being about particulars of those.
By Luiz C F R•
Amazing course. New concepts are built on previously presented content, making everything easier to understand. Besides teaching the programming language, the instructor also presents some of the language inner workings in optional lessons, allowing one to go as deep as they want. Assignments are well designed, but challenging, specially for newcomers to the functional paradigm, however they show how FP can be used in practice, making them rewarding.
By Mike D•
The course is logical and thorough, flawlessly delivered (well, except maybe the audio quality at times), and challenging just enough to make a seasoned imperative programmer scream in frustration, but not quit. 😀 The only thing standing between this course and perfection are the pop quiz bugs. But even they contribute to the message of the course in a way: if Coursera's platform were written in Scala, there probably would be fewer of them. 🕷
By Tim B•
Very good course! I noticed some of the instructions are out of date (e.g. there are examples of where to go on the website, but the website format has changed). I wish I understood more of what sbt and the IDE were doing behind the scenes. It seems like there is a lot of structure built into making the assignments function properly and I would like to better understand how to make my own project with similar level of complexity / capabilities.
By Krzysztof P•
Great introduction to different way of thinking through examples in quite powerful language (for programmers who used to imperative way of thinking) . This course is useful not only for people who program is Scala, but also for Java (8+) developers to get familiar with streams, lambdas, higher-order functions, and maybe some concepts, as I observed, not-so-often used by many programmers: like variance in parametric polymorphism with generics.
By Robert J F•
I love learning about Scala and the rudiments of functional programming from the author of the Scala language. It's been a real pleasure to approach learning this from the ground up, and to get all kinds of little tips and subtleties along the way. Martin Odersky does an excellent job of building piece by piece and with many language-agnostic theories, and presenting classic challenges which have haunted coders for generations. Thank you!
This course is a little bit difficult to get started with if you do not have any code experience. However, it is a really great course because the content is sufficient but not too much and the course is clear enough. The last two assignments are tough for me and they took me a long time to figure out, also I read a number of materials about Scala functions on Internet. This is the first course that I finished and I really like this course.
By Roman A•
Easily one of the best courses I've ever encountered. It is difficult for someone who is not familiar with FP but in a good way. You learn a great deal as you work on exercises, which are, by the way, very thoroughly prepared.
I must say, however, that setting up a different IDE than the suggested Eclipse was a pain and course does not cover the environment or its troubleshooting. Discussion forums thrive with such discussions, though.
By Vinay N R C•
The best course for learning Scala and Functional Programming!
Taught by the creator himself, this course is for everyone who wants to learn Scala and understand prinicples of FP which makes up Scala's elegance. The course is curated such that there is no requirement of prior expertise of other programming paradigms and data structures, however, knowledge of any OO-language would surely help you relate/compare and learn faster.
By Hessam S M•
Excellent course taught by the creator of Scala. This is by far the best way to dive into the world of functional programming and along the way learn a cool JVM based programming language. The main focus of this course and as a whole specialization is learning to think functional not learning Scala so I'd recommend reading Programming in Scala by Martin Odersky as the companion book to learn more about Scala language itself.
By Alex L•
A great start. Challenging while informative. The last assignment in the last week really made me think about my approach from a functional programming perspective rather than a procedural approach. It also really made me focus on how to ensure that the types of responses going into a list are of the most compatible narrowest type needed for the task i'm performing. I'm excited to sink my teeth into the next class.
By Bruno F•
Extremely good introduction to functional programming.
I like the fact that theory was included but the lecturer was careful to point out the boundaries of the course.
Consider having an alternative version of the course which has more theory of functional programming. I understand though that there might not be demand for this and that this sort of material cannot be successfully examined by any submitted exercises.
By STANISLAU B•
That's was a great journey. My head was almost blasted on anagrams task. Did everything by myself without any cheating (google, git etc.), havnt look for possible decission on how to build algorythm, no read course forum. Prof Odersky give enough information to solve the issues in tasks. The only thing you need is to put it in right order in yur head. Thats why I'm twice happier today when I ended with 100% grade.
By Niklaas B v G•
One of the best courses on Coursera. For me, only having background in programming in R and doing a bit of system administration and the like, it was quite challenging. I liked that!
It's a pity that solutions to the exams aren't discussed. I don't know how to organise the course to do so but I am sure I could have learned even more if someone had discussed the "optimal" or most elegant solution to the assignments.
By Lucian S•
I like the course because it does teach the basics of Scala and FP and then one can work through the projects to apply the concepts. I have underestimated this course a little bit thus it toke me more effort than I anticipated but it worth finishing it. Now I appreciate more the people who managed to develop fluency in Scala or any FP language and it is a skill that I will continue to work on for myself, for sure.
By Jose F O•
Although I have some experience with Scala and I been reading about the course it is challenging. It forces you to think functional. There is no other way to solve the assignments but doing them with a functional approach. Before you attempt this class you should have some knowledge about the language. The lectures are interesting. I never saw a better explanation of variant and co-variant than here is this class.
By Robyn K•
Great course! Thank you professor Ordersky for designing and putting your course online for us. It was a great introduction to Scala but challenging when it needed to be, the lecture questions and homeworks captured the essential thought process behind functional programming really well. I would maybe move week 4's homework to week 5 since the material from week 5 covered some useful concepts for the homework.
By sanga l•
What can I say, it is really great courses. it though you from basic even though not step by step but still can be followed by java programmer. I had difficult time to change the way of thinking at first and to to refresh my algorithm knowledge. Spend long night on the weekend :) will miss this course.
it is better you study in a group of people then it will motivates you more and do assignment faster.
By Alexander F•
an exceptional course, taught by a master of both the theory and the practice. as an engineer with most of an undergrad computer science degree and a few years' industry experience, I found this paper consistently challenging but fair throughout. theoretical proofs and practical considerations are presented side by side, which helps to rationalize the choices in language design and programming model.