I think this course looks like it could be a lot of fun. Erik Meijer is a great teacher with lots of enthusiasm. The introductory video makes it look like we just walked in on a particularly awkward moment, though, like they set the bench they're all sitting on down in a suspiciously bad smelling elevator car.
If you haven't see Erik Meijer's haskell course and are interested in that type of thing, check it out:
I don't think I've ever signed up for something more quickly than when I saw this announcement pop up on Twitter. Really enjoyed the Functional Programming with Scala course when it ran last year, and I'm happy to see the sequel come to fruition.
The Functional Programming class I took last year was pretty much as good as the expensive CS courses I took at Big Name U. Oh, and it happened to be taught by the guy that invented Scala. I'll admit it, I'm turning into a Coursera fanboy.
Note that the Functional course is a recommended prerequisite for the Reactive one and the former runs again at the beginning of September, meaning you can do both in sequence.
Is there a place to download coursera videos like you can with Udacity? I'm really interested in the Scala course, but it just kind of sucks that it can only be taken during a certain time frame. I've been working my way through Programming in Scala, but the course seems like it'd be a great compliment for understanding the "functional" style of programming.
As it is now, I feel I'm simply a compiler which translates my imperative Python background into Scala syntax.
While the course is running (at least for the course I'm currently enrolled in) every video has a download icon at the far right.
At times (for me), the time-based nature of coursera is a very good thing. If I know that I need to complete a homework by 1am Sunday night, which means I need to finish watching this week's videos by Thursday night, that means there's a chance I'll actually do so. Without that deadline (and with no money or grade on the line) HN or Reddit or other timewasters are far too tempting.
You see archives of the two previous iterations of the course. Their material is always available, and you can stream or download the videos from there.
It may just be for people who previously took the class, I haven't taken it and cannot find any of the archives mentioned by modersky, but I can find it on other courses I have taken
It looks like you are right. Only enrolled students can see the material and enrollment is closed for the previous sessions. I'll check whether there's a practical way to make the material available.
I encourage anybody who has to write or maintain more than a few lines of C# or .NET code to check them out (and possibly take this class if it turns out to be good).
If you're into FRP in .NET, please checkout the OLINQ project on github. It lets you define LINQ queries against reactive sources and have them update themselves as the sources change, letting you do things like realtime aggregation in a couple of lines of code.
Fantastic! I've been wanting to learn FRP for quite some time. The fact that this is a follow-up to the awesome Scala course is a bonus.
I can't wait for this to begin. =)
EDIT: The syllabus doesn't mention any FRP libs. I'm surprised, especially as one of the professors is the author of RX. Maybe because there isn't a canonical one in Scala?
They don't mention FRP. RX is a subset of FRP oriented around just event streams without continuous signals; think of it as FRP lite. Their actors and futures unit makes me wonder if this is also about concurrency in addition to reactivity. Nothing about state repair at all.
If Conal Elliott ever decides to teach a coursera on FRP...
Back when Borders was still around I stumbled upon a Functional Reactive Programming book by Paul Hudak. To this day it's still one of my favorites. If you know Haskell and don't want to learn Scala, you might enjoy this as an alternative to the course. The book is called The Haskell School of Expression: Learning Functional Programming through Multimedia.
The book is a really awesome way to learn Haskell. However, very little of it is actually about FRP; there's one section about GUIs using FRP, and it doesn't go very much in depth.
Pretty sure that's just a different book by the same author. "Updating" a book on graphics to make it about music instead doesn't sound like a second edition kind of maneuver.
I haven't taken Odersky's first course, but I'm fluent in Java and Clojure. Do you guys think that would suffice or will Scala knowledge be a prerequisite?
The prerequisite course starts in about 2 weeks [1], so you can still take it if you want before Principles of Reactive Programming starts, you'll be able to see what parts you feel you can skip and which ones are useful. There are other quick introductions to Scala you can take [2],[3],[4] to get a feeling of it.
It starts in two months so could give Martins books a read. And I think that would be enough. Some of the lectures were based on his book and others on SICP.
you won't have trouble. that said, the first Scala course is excellent independent of its use of Scala because of its fun/challenging homework assignments
This is the most awkward introduction video Ive seen so far. I really enjoyed Erik's introductory course on haskell so really looking forward to this course.
Yes, sorry for the video :-) We had just 1 hour in the same place together, and that was in a hotel conference room and we were all tired from our respective conferences. We'll shoot another one when we meet next and will replace the video then.
Can some explain like I'm 5 the tradeoffs between Go/Scala/JS[node.js]? I've been googlin', and there aren't enough articles that compare and contrast the three.
EDIT: Go is intended to be a systems-programming language with an emphasis not only on runtime efficiency and concurrency, but additionally on such things as compilation speed.
Scala is intended to be a hybrid OO-functional language that is approachable by a broad class of mainstream programmers (i.e., Java programmers), with a type system considerably more sophisticated than Java. The emphasis is, I'd say, on a language that has long-term potential, at the cost of a somewhat problematic toolchain.
JavaScript's enormous advantages are that it is universally available, easy to approach, and flexible enough to support functional techniques.
* Go: statically typed, no type parametrization, good support for CSP-like concurrency, deeply imperative language. Proponents site its speed of compilation, simplicity, and growing community.
* Scala: statically typed, modern and sophisticated type system, supports OO and functional programming, runs on the JVM, has good concurrency support.
I really don't know enough about Node.js to say anything about it. It's Javascript, so it's dynamic typing and a mix of OO and functional programming.
If you haven't see Erik Meijer's haskell course and are interested in that type of thing, check it out:
http://lambda-the-ultimate.org/node/3642
It uses this really great book by Graham Hutton called Programming in Haskell.