

Functional Programming Principles in Scala: Impressions and Statistics - Kopion
http://docs.scala-lang.org/news/functional-programming-principles-in-scala-impressions-and-statistics.html

======
pohl
This was a fantastic course, and I do hope they follow it up with an advanced
one. I especially enjoyed how one submitted homework attempts with sbt, and
how their unit tests encouraged one to repeatedly submit until a perfect score
was obtained. I feel that I learned a lot.

I get the impression that this course lowered the threshold to exploring the
functional paradigm for a lot of students who were aware of it but never took
the time to do it on their own. Ten thousand new programmers in one language
is no small achievement.

Who here wouldn't jump at the chance to join a MOOC on Haskell taught by
Simpon Peyton Jones? Or Rich Hickey teaching Clojure?

I hope to see more learning resources like this in the future.

~~~
bmj
I'm in the middle of taking the course, and while I enjoy it, I wish the
prerequisites mentioned the heavy emphasis on math. I don't have a CS degree,
nor do I have a background in advanced maths, so I find myself struggling with
the assignments and in-class exercises.

~~~
kscaldef
I'm a little confused by your comment, but as someone with an advanced math
degree I might just not have noticed what you're referring to. Can you point
out what in the course you felt involved a heavy emphasis on math?

~~~
bmj
The very set of exercises had me working on Pascal's Triangle and binomial co-
efficients. The exercises continued to work through math problems. While I'm
sure this stuff is old hat for many programmers, I often struggled with the
basic algorithms in the problems.

I realize many of these are "basic" problems for CS folks, but I don't have
any CS training and never took a math course higher than high school pre-
calculus (many moons ago), and learned programming on the job. I'm not
criticizing the course, either--I am managing to pick up the language, but I
just wanted to note both my struggles with the course, and the tacit
prerequisite of a reasonable background in math.

~~~
seanmcdirmid
I believe this is because the exercises were ported from the SICP, which is
itself designed for MIT undergraduates.

------
rauljara
I don't want to take anything away from the quality of the teaching (which was
quite high), but having completed a few courses at Coursera, I think a big
reason the completion rate was so high was that it was simply nowhere near as
much work as the other programming courses I have taken.

I'm not sure this is a bad thing at all. I loved the course, myself, and would
jump at a chance to take the next one in the sequence. Given the web format, I
think shorter, easier to master units of learning are probably the way to go,
and this course's high completion rate supports that.

But when comparing it to other course's completion rates, you need to keep in
mind that there simply wasn't that much to complete.

~~~
pohl
Out of curiosity, could you mention some specific Coursera courses that
involved more programming work? I might want to check them out.

~~~
rauljara
Natural Language Processing (Dan Jurafsky, Chris Manning) was the one that
took up the most time. I felt like to get a perfect score (which I got nowhere
near close to) would have easily been 10+ hours per assignment (not to mention
actually watching the lectures / quizzes). This may have been in part due to
my own lack of background knowledge (up until coursera I was almost entirely
self taught). But even Algorithms, Part I (Robert Sedgewick, Kevin Wayne) felt
like it took at least twice as long to get through the quizzes + assignments
as Odersky's class.

~~~
smsm42
I took both and I confirm Scala course was less work than NLP. However that
might be just because NLP course had much bigger and more tweakable tasks - on
some algorithms, you could spend literally days to squeeze one last percent of
accuracy out of it (and then end up overfitting, failing the hidden tests and
having to start over again). NLP tasks weren't actually general programming
tasks but more NLP-specific work - which is great, but it doesn't compare to
generic Scala course. Scala tasks were much smaller and well-defined. I
probably could use a bit more complex tasks, but being complete Scala novice
before the course, I couldn't really - at least yet - do some heavy lifting
with Scala as I could, say, with more familiar to me languages like Python or,
say, C.

------
smsm42
I think this course was excellent. My main problem with most tutorials -
especially on functional programming - is that I was totally unable to
understand how one solves practical common tasks in language like Scala. The
course helped me a lot with that. While I am still not a competent Scala
programmer, I got a reasonable understanding how Scala works and how one
should approach doing things in Scala.

