JR
Very good course with some challenging exercises. It served more as a refresher and practice tool for me as I was already deep into Scala before taking this. Nevertheless, very happy I did it.

Discover how to write elegant code that works the first time it is run. This Specialization provides a hands-on introduction to functional programming using the widespread programming language, Scala. It begins from the basic building blocks of the functional paradigm, first showing how to use these blocks to solve small problems, before building up to combining these concepts to architect larger functional programs. You'll see how the functional paradigm facilitates parallel and distributed programming, and through a series of hands on examples and programming assignments, you'll learn how to analyze data sets small to large; from parallel programming on multicore architectures, to distributed programming on a cluster using Apache Spark. A final capstone project will allow you to apply the skills you learned by building a large data-intensive application using real-world data.

JR
Very good course with some challenging exercises. It served more as a refresher and practice tool for me as I was already deep into Scala before taking this. Nevertheless, very happy I did it.
RP
This is a university degree course which takes enormous effort to complete. But still its beond the programming course range giving you whats not possible to google or learn practical way. Thanks!
RC
Superb study material. Learnt a lot during this course. I am not much into mathematical stuff, but got a hang of how to break problems and improve efficiency through parallelism.
NM
Good overview of the subject, covering all important aspects. Assignments were well prepared, with a couple of unclear points that were quickly discovered and explained on the forums.
WH
Outstanding set of courses. Just to counter comments about grader stability and lack of grader feedback - I never encountered this in any of the 5 courses.
RS
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.
HY
Really enjoyed doing the course. Learned a ton of Stuff. Functional programming design is amazing. It's like learning Object Oriented programming (with design patterns) for the first time.
TG
Really good course covering some of the fundamentals of parallel programming, though for me I was hoping it would go into some of the Scala specifics a little more
CC
The sessions where clearly explained and focused. Some of the exercises contained slightly confusing hints and information, but I'm sure those mistakes will be ironed out in future iterations. Thanks!
JW
Thanks to the staff for any help, especially during a busy end of year
PB
I have never worked with Scala before. But this course has not only given me, basic level introduction but also taught me advanced concepts and how to apply those concepts in real world problems.
AL
Definitely challenging. Sometimes there were some tricky gaps between what the lectures covered and what the assignments were looking for information wise.
Showing: 20 of 1,620
I am sorry to give this mark, guys. But I am a little disappointed
To start with I spent more than a week installing the programs. Yep, more than a week. there are several programs to install and it has to be done in a very specific way. The tutorial videos go like these are the steps to install the programs, but we will not follow them, because we have these programs installed.
For example you cannot install programs to Program files folder. Why? You needed to know the difference between system and user variables. Even project submission was tricky. I could only submit the projects from sbt shell. Why?
There was no help and support with these basic steps. That spoiled the whole experience.
The course was well structured, but had too much mathematical and programming theory. Most of the time we saw formulas and code, but I could not learn from this how to write a basic program.
The complexity increased very quickly and I could not focus on the lecture material at all, just found it too distant from the practice.
My last point is about examples. Examples that were included in the course were (i am not exaggerating here): pascals triangle, peano numbers, Queens positioning on chessboard, anagrams, huffman numbers, phone mnemonics.
Really? Could there be any real world examples? Is this what the people in the university of Lauzanne get paid for, to write a code how to decipher anagrams at work?
Cancelled the subscription as a result.
As a Java programmer with some 18 years industry experience I quickly got lost on this course. It might not be the course - it could be me! It might be that I am too long in the tooth as an OO programmer that I cannot cope with the transition to functional programming.
I found the video lectures initially well structured and stepped nicely in to increasing complexity without losing me. But eventually I fell completely behind and by the time I was performing the exercise 2 submission I was in deep water. There are a lot of mathematical theory and programming theory references along the way as well which I did not like.
As a real world programmer I have never really felt compelled to know peano number theory. And I struggle to understand how performing this exercise prepares me for real-world Scala programming either. I just do not see the point of creating code that can add and subtract numbers without using number types!!! I could write a wrapper for Int in Java in 2 minutes. Doing this abstract Scala exercise would take me all day and I still do not understand the code nor the point of doing it! Whatever happened to maintainability principles ?
I have now lost all interest in completing the course because by week 3 I might as well be doing a course in advanced Arabic. I cannot continue this course now because I cannot complete the exercises. I am disheartened and not sure whether this is a reflection of Scala or the course or both. I would be reticent to take a job with Scala.
Not all people of high skill can teach their knowledge well. This is one of those instances. Exercises introduce concepts that have not been covered in the lectures. Lectures and exercises are often disjoint. There constant bombardment with concepts from computer science and mathematics, which I normally not mind, but I want to learn Scala here and only Scala. All this does is increase the complexity and time consumption without helping me learning the language itself. I pushed myself through by learning with resources outside this course. As they could teach me the same concepts in 1/10 the amount of time.
I wouldn't recomand this course to someone who wish to learn scala. Some explanations and exercices are quite hard and not suitable for a beginner. I had sometimes the feeling that what was asked in the exercices was not seen in the videos or very briefly. I'm a little bit disapointed.
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!
Very poorly structured course.
Scala syntax does not explained well in videos, and rely on you reading a book and other resources.
Practice assignment rely on a knowledge outside of previously explained topics, like advanced algorithms, that you simply will not have beforehand (you came here to learn Scala, not algorithms).
Videos are short and useless, i saw more educational videos about wood screws than course video about tail recursion.
And about recursion video: it is explain "what" recursion is, but not explain "why?" you need it.
This is too focused on algos rather than Scala and functional programming.
A lot of time is spent figuring out how to solve a problem, rather than learning functional programming or Scala.
I am a statistician who works primarily with R, with some Python for the things Python is better for. I know how to program, but I explicitly note I am not a computer science student. I have only limited experience with the command prompt. I was very excited when I heard about this course, but the amount of work and frustration just to get started programming in Scala has been obscene. I am very, very glad I decided to check out the course for free before paying for the specialization.
The course has a lot of required software. The tutorials to get this software often involve "You need this, but so save time we're going to skip showing you how to get it. If it doesn't work, you need to install it." There is a lot of variability in OSs. Many errors are often encountered. There is no help.
Among the things the course requires are two (three?) IDEs for Scala (I note the video tutorials says you just need some sort of IDE... but you need IntelliJ, and Eclipse to submit...). The guides show how to get started on a Mac. The software is not the same on Windows, and so 'step by step instructions' become a guessing game, because many options or menus are missing or different.
There are many better and more friendly guides on the internet. I may return to the transcripts of the course content here, but I won't be submitting any coursework. I'm going to warn my colleagues away as well. Forget Coursera - I'll just buy a book and work through it like everyone else I know.
Videos all use old versions of scala/sbt/java/intelliJ. Dependencies only work on some versions of scala. Too much work to just get dev environment setup.
Bad logic.
Class content poorly related to the exams. No exercise for practice. When any, clearly unrelevant. The first 4 weeks, it is hard to impossible to succeed through the exam. Run all videos set first, then consider digging into practice.
I took a book and learned more form it than this video.
Worst course. Even the first step for IDE is not explain properly
The problems are quite complex and focus more on algorithm development than in Scala. I come from a Python background and problems are quite difficult regardless of the language used. I have lost focus in Scala sometimes during the course.
Not the best way to start in Scala. Course content is a bit outdated, and relies heavily on algorithms to teach, which is not something expected when someone is trying to learn a new language. It has some good lectures, but it is definitely not a beginners course. I won't continue the specialisation, as there are better ways to learn. Even Odersky's book is more polished and more up to date.
Setting up the environment may be part of the job but you really need to work on that part because many people won't even be able to compile and submit a single assignment.
Myself and a senior software engineer in my team are unable to get the example assignment to compile, this may be due to the version of sbt being so old that things are falling apart. Asides from that the videos are informative but i am now using a different resource to practice.
The exercises are much more difficult than the content describes. You'll watch several hours of lectures then the exercise will require new syntax and concepts that weren't covered. The course is good if you just look at the lectures and forget about the assignments.
I wish the teachers would go more into how to come up with solutions to the functional problems.
Not very practical.
The course was quite good all in all, and even though I'm already experienced with many of the aspects involved in software engineering in general and in functional programming in particular, I've followed it with much interest and gained some new perspectives. And it's been a great introduction to Scala (a language I had not written code in before).
The teaching is very good! Prof Odersky's explanations are very clear and go into the right level of detail, and the exercises and assignments are interesting and seem to be well thought out.
I personally would have liked the course to be deeper, both in explaining functional programming (e.g. the monad pattern) and in covering more advanced features of Scala (e.g. the less trivial parts of the type system), but I guess the given course is OK as an introduction and I can also go look for the stuff I'm missing in other courses and/or outside Coursera.
Two minor things that damaged the experience to a little extent and which I would recommend to improve for the future: 1. The technical introduction was good enough to get me started, but did not cover some problematic aspects which had me stuck for a long while (it was also very difficult to solve by googling, and a colleague of mine - who's also taking the course - ended up solving it by chance). Specifically I'm talking about worksheets not working properly unless created within a package directory, and for some things unless set to a certain mode of execution (non-REPL). Disclosure: I haven't looked for solutions in the course forums; it's possible that this was asked and answered, or that I could have asked and gotten an answer there. 2. The videos were poorly edited: some bits repeated, some clips were obviously recorded for a specific week number but then given in another week, some parts had obviously been there originally (and other parts referred to them) but then they didn't make the final cut... It's a pity that an otherwise very well made course suffers from such small technical problems, which, while not too grave, cause confusion and increase the mental load the learner has to cope with - which is already laden with challenging stuff - with such non-important and easily avoidable distractions.
Thank you!
The name creates the false impression that the course is about functional programming. This is certainly not the case. It touches the topic during the first and second week, but covers only some basics. Afterwards it is really a Scala course with the regular Scala focus on objects and the later weeks also facilitate imperative programming which is fine, but not good for teaching functional programming.
The Exercises seem to target computer science students and neither beginners nor programmers that want to learn functional programming. This is unfortunate and the course could be better regarding that.