Hacker News new | past | comments | ask | show | jobs | submit login
Functional Programming Principles in Scala: Impressions and Statistics (scala-lang.org)
80 points by Kopion on Dec 20, 2012 | hide | past | favorite | 16 comments



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.


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.


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?


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.


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


hey bmj, you say you're taking the course now? My understanding is that this course is over - do you mean all the material is still available, including the corrections/grading and certificate-awarding system even though Odersky & team are no longer working on it behind the scenes?


Yep, all material is still available, but I don't believe you can submit your work for a certificate. I just wanted a structured way to learn Scala, so I wasn't interested in receiving a certificate for my work.


I'm 100% sure one cannot get a certificate. It's not clear whether one can submit homework via sbt to the automated test suites on the server. Have you tried that as an experiment?


No, I haven't.


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.


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


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.


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.


As a fairly experienced programmer, I spent about the same amount of time on assignments for Algorithms, Part 1 and Odersky's Scala class. I think the main difference was the lack of standalone quizzes in the Scala class, but at the same time I'm not sure that having quizzes would've added much in terms of additional understanding.


Compilers had quite a lot of programming - https://www.coursera.org/course/compilers


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: