• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Scala Coursera: how was it for you?

 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Now that the first iteration of Coursera's "Functional Programming Principles In Scala" course is coming to an end, what did you all make of it, and what tips would you give other Ranchers who might be considering joining the course next time around?

Here's my tuppence worth to kick things off.

I think this was an excellent course, very challenging but also very rewarding, and I feel like I learned a lot. That might just reflect my starting point, however, as it seemed like there were a lot of people on the course who already knew a lot about FP and Scala. The course web page currently says the recommended background is:

You should have at least one year 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.


I think this is a little misleading, and there were some students with this minimal background who definitely struggled. My own impression was that you probably needed at least some formal computer science background to make the most of this course, and perhaps maths at university entrance level as well. Given that this course was also being followed by CS students at EPFL, this is fair enough, but I think the "real" requirements should have been made clearer on the course web page beforehand.

On the other hand, the challenges presented by this course also encouraged me to dig deeper into the background material e.g. SICP was very helpful, and I think the core aims of the course were achieved successfully, even if it might have been hard work for some of us!

I think the FP side of the course was covered well, at least as far as you can hope for in a 7 week course, and I now feel I have a good foundation for exploring Scala and other FP languages further. On the Scala side, we didn't seem to cover a huge amount of ground, although the stuff that we did look at was covered pretty well, and we got a real insight into how elegant and concise Scala code can be. Lots of people have pointed to topics that would be interesting for a follow-up course e.g. mutability, use of actors, functional "design patterns", etc. The recommended books on Scala - Odersky's "Programing In Scala" and Cay Horstmann's "Scala for the Impatient" are both definitely worth getting hold of for a deeper insight into the language.

Not surprisingly, the workload seemed to vary hugely depending on people's prior experience. The website says the workload is "5-7 hours/week", which was far too low in my case. Most weeks I put in 10-15 hours, with the practical assignments in the last few weeks taking at least a full day's work each. This is not necessarily a bad thing - you learn by doing - but again, I think students should be given a more realistic estimate up front.

As for the online nature of the course, I think this was done very well here. The lectures etc were well presented and the recommended software platform worked fine for me (although some people had problems with Scala IDE). It's inevitable in an online course with up to 40,000 students that assessment has to be automated, which limits the kind of feedback you can get on your work, but the assignment grading system worked pretty well within those limitations.

The online forums (both at Coursera and here at JavaRanch) were very helpful in getting advice from fellow students, many of whom were clearly experts in this stuff, but there were a lot of forums to track if you were interested in keeping up with things, so I tended to focus on just a couple of useful ones. Course staff did contribute to these forums, but for the most part it was just other students. There were some issues with cheating, which was a shame, but most students were happy to abide by the "honour code" and avoid undermining the efforts of their fellow students and the course providers to make this a rewarding and worthwhile learning experience.

Overall, I was very impressed with this course specifically, and pretty impressed with Coursera generally. I'll definitely be looking out for opportunities to learn more about Scala/FP, and to take advantage of other Coursera courses on interesting topics.

Tips for future students:

  • Do some background reading beforehand e.g. look at SICP chapters 1 and 2 (very relevant for some of the assignments), one of the recommended Scala books or tutorials, or even something like "Learn You A Haskell" for an introduction to FP concepts.
  • Brush up a little on some concepts that might be helpful in the assignments e.g. basics of mathematical sets, lists, binary trees, breadth-first search. This is covered in the course anyway (except for set theory), but a little preparation will help.
  • Make sure you get your development environment (SBT, Scala IDE) set up as early as possible, and work through the initial ungraded assignment to make sure everything is working OK.
  • Be realistic about the workload - if you haven't done this stuff before, you'll probably need significantly more than the official estimate of 5-7 hours a week.
  •  
    Java Cowboy
    Posts: 16084
    88
    Android Scala IntelliJ IDE Spring Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I had some previous experience with programming in Scala, but I don't program in a functional style every day.

    I liked the course a lot because it was for a large part about functional programming, fortunately it was not just a simple introduction to Scala syntax. The level of the exercises was also just right - not too simple, some of them took me hours of puzzling, which made the feeling of satisfaction when finding the solution even greater. I really needed to sit down in a quiet room and concentrate on the exercises, they were not things that I could do quickly in between doing other things.

    The organization of the course was great. The presentation with the videos was great, with Martin writing things overlaid on the slides. The development tools worked without any problem for me (I was working on Ubuntu) and the automatic grading also worked well.

    I'm definitely going to keep an eye on other interesting courses on Coursera.

    For future students: If you're brand new to Scala, I'd advise you to get a book and learn the syntax and play with the language a bit yourself before doing the course. If you have to learn Scala from the ground up while also solving the sometimes challenging exercises, I can imagine it would become overwhelming and you'd need a lot of time.

    Unfortunately we're not allowed to share our solutions after the course, I would have liked to see how other people solved the problems.
     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Jesper de Jong wrote:I had some previous experience with programming in Scala, but I don't program in a functional style every day.


    Are you using Scala/FP at work?
     
    author & internet detective
    Posts: 41860
    908
    Eclipse IDE VI Editor Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I posted this at coursetalk as my opinion:

    I haven't used any functional programming since college. Having a course taught by the creator of Scala was definitely a draw. The lectures were clear. A good mix of quizzes (think about how you would approach this, what do you think would happen here) and explanation. I like that the homeworks used Scala's junit extensions and sbt (build tool.) Good practices and automation. It also provided a nice way to test the code. The homeworks varied a lot in difficultly. In particular, homework 6 was a lot harder than homework 5. Yet #5 had an extra week to work on it. There were good conversations in the forums. I took off half a star because I felt like we jumped around a lot. I really enjoyed the course though.



    I agree, it would have been easier had I read more about Scala before the course started.
     
    Jesper de Jong
    Java Cowboy
    Posts: 16084
    88
    Android Scala IntelliJ IDE Spring Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    chris webster wrote:Are you using Scala/FP at work?


    No, but I've played with it for two years now, and I made the DZone Scala Refcard
     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Jesper de Jong wrote:No, but I've played with it for two years now, and I made the DZone Scala Refcard


    Nice work! Incidentally, it sounds like TomTom are using Scala in the Netherlands - they're recruiting right now (on LinkedIn's Scala group). Like the man said:

    William Gibson wrote:"The future is already here - it's just not evenly distributed."

     
    Jesper de Jong
    Java Cowboy
    Posts: 16084
    88
    Android Scala IntelliJ IDE Spring Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I'm a member of DuSE - the Dutch Scala Enthusiasts. TomTom here is indeed using Scala, we've had a few DuSE meetings there. Last month there was a talk at TomTom, where they explained what they did with Scala in one of their projects.

    I'd like to work with Scala on a "real" project, but I'm working as a freelancer and I don't want to work as an employee on a permanent contract.
     
    Jesper de Jong
    Java Cowboy
    Posts: 16084
    88
    Android Scala IntelliJ IDE Spring Java
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Did anybody get his / her certificate yet? I haven't received it yet.
     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Jesper de Jong wrote:Did anybody get his / her certificate yet? I haven't received it yet.


    You can get it via the Coursera Course Records page at https://www.coursera.org/account/records, or log in and then select "Course records" from the drop-down menu under your username (top right). I did this and downloaded mine yesterday, but when I tried it just now I got a "page is under maintenance" message. Don't get too excited though, as it's just a PDF with some blurb about the course and a grading based on your mark. Also, the marks on the Course Records page are given as if they were percentages, even though this course was really marked out of 80 e.g. I got 79/80 but this is presented as "79%". The mark doesn't appear on your certificate.

    There's message from Heather Miller (course staff) on one of the discussion threads:

    The certificates are now available. If you met the requirements for a normal certificate (score >= 60%, or 48pts), or a certificate with distinction (score >= 80%, or 64pts), you should be able to see your certificate listed at: https://www.coursera.org/account/records

    Issues with displayed score: please note that there is currently an issue with how your score is being displayed to you on your records page. What is displayed to you on the records page is the total number of points that you received out of 80 total points, not a percentage. We're working on correcting this display issue. Your score is correctly computed (in points, not percentages), and your certificate is correctly issued.

     
    Master Rancher
    Posts: 4806
    72
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Some people can see their certificates, and some still can't (like me). They're still working on it. Another update from Heather, just a few hours ago (same thread):

    Hi all, the Coursera folks have been working on resolving these issues since yesterday. So the weird changes in state that you see (e.g. certificates available yesterday but point-based score + % symbol, and then today percentage but no certificates) is a bunch of work in progress. Stay tuned-- we're hoping for a final resolution shortly! Thanks for your patience!



     
    Mike Simmons
    Master Rancher
    Posts: 4806
    72
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    As for me, I enjoyed the course. I had previously done some Scala at work, about 3 months' worth, so I was mostly looking for the FP angle. I enjoyed being prompted to think in new ways. The 5-7-hours-per-week estimate was about right for me, so I would certainly expect more for folks who hadn't learned about Scala previously. I got 100% on the assignments with only 1 resubmit, which was nice. Most of the solutions ended up looking fairly short and simple, once you wrapped your brain around the requirements and the FP paradigm. I would like to see a sequel to this course.

    Oh, and Manning now has Functional Programming for Scala in their early access program. I just picked that up (what's available so far, anyway) so that should be interesting.
     
    Mike Simmons
    Master Rancher
    Posts: 4806
    72
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    And my certificate just became available. "With Distinction", whatever exactly that means here.
     
    Bartender
    Posts: 4568
    9
    • Likes 1
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Mike Simmons wrote:And my certificate just became available. "With Distinction", whatever exactly that means here.



    "With distinction" means 80%+ (there's a little "?" on your course record that gives the details).

    Did you see Martin's presentation where he showed some of the survey results? He was surprised that the average amount of time spent was less than the estimate, and the number of people classing the course as "challenging" was less than he expected. But then showed another graph that might explain it - the average educational background was higher than expected. About half the people (who filled in the survey) had a postgraduate degree.

    I think I'm now hooked on Coursera - I'm currently doing two other courses, and have pre-registered for a couple more in the new year!
     
    Mike Simmons
    Master Rancher
    Posts: 4806
    72
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thanks for pointing out the "with distinction" link.

    I'm hooked as well. I've done the original Artificial Intelligence (well, that was from Stanford, before Coursera was formed), Algorithms: Design and Analysis, Part 1, and Algorithms I. I'm now up for the second parts of both Algorithms courses, and signed up for a bunch more. What I actually end up taking will be a small subset of what I'm signed up for, depending on when things actually end up starting. I want to avoid having more than one course at a time, as I don't have that much free time, and have other things to do with it. But it's fun. My wife is also hooked, on Genetics, History, and Argument courses so far.
     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Mike Simmons wrote:My wife is also hooked, on ... Argument courses so far.


    You may live to regret that!
     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Matthew Brown wrote:Did you see Martin's presentation where he showed some of the survey results? He was surprised that the average amount of time spent was less than the estimate, and the number of people classing the course as "challenging" was less than he expected.


    Yeah. I felt like the class duffer!
     
    Ranch Hand
    Posts: 10198
    3
    Mac PPC Eclipse IDE Ubuntu
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Even I got my certificate just now. 100% with distinction.... I'm so excited that I really learned something through this course. This was almost the proper way that I ever learned a programming language. Even I'm now hooked to Coursera.
     
    Mike Simmons
    Master Rancher
    Posts: 4806
    72
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    chris webster wrote:

    Mike Simmons wrote:My wife is also hooked, on ... Argument courses so far.


    You may live to regret that!


    You may very well think that. I couldn't possibly comment.
     
    Ranch Hand
    Posts: 171
    1
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    I signed up for this Coursera course, watched many of the lectures, but did not finish it. The main reason I didn't finish it was because of other demands on my time, from my full-time job etc.

    However, in the future I would like to re-take the course and finish it.

    I think Scala looks like the language of the future. I insist on statically-typed languages for obvious reasons (it's much easier to write correct code in a statically-typed language).

    I'm a Scala fan, but not yet a Scala expert.

    Geoffrey
     
    chris webster
    Bartender
    Posts: 2407
    36
    Scala Python Oracle Postgres Database Linux
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator

    Geoffrey Falk wrote:I signed up for this Coursera course, watched many of the lectures, but did not finish it....However, in the future I would like to re-take the course and finish it.


    Definitely worth re-visiting the course if you can (I think the materials are still accessible but not sure about the grading system) - good luck!
     
    Ranch Hand
    Posts: 58
    2
    • Mark post as helpful
    • send pies
      Number of slices to send:
      Optional 'thank-you' note:
    • Quote
    • Report post to moderator
    Thanks to all above for their feedback on this course. I've just signed up for the next iteration. I haven't done a course "properly" on Coursera before, though the Algorithms course coincided nicely with the assignment for my Algorithmics course on my masters, so I watched the vids. Thought it was very high quality. Very excited to start now.
     
    We can fix it! We just need some baling wire, some WD-40, a bit of duct tape and this tiny ad:
    a bit of art, as a gift, the permaculture playing cards
    https://gardener-gift.com
    reply
      Bookmark Topic Watch Topic
    • New Topic