Hacker News new | past | comments | ask | show | jobs | submit login
15-440: Distributed Systems Syllabus (cmu.edu)
126 points by krat0sprakhar on Dec 24, 2014 | hide | past | favorite | 20 comments

MIT's distributed systems class is also taught in Go - http://css.csail.mit.edu/6.824/2014/schedule.html

Guest lecturer Russ Cox... nice!

I just stumbled on this set of lectures, slides, and notes, from ETH Zurich, which seems like it would be useful supplementary material: http://dcg.ethz.ch/lectures/podc_allstars/

Also relevant is the "Distributed Algorithms" course at Royal Institute of Technology in Sweden. Seems to be a little bit more theoretical, but might be an interesting complement to a more practical course.

YouTube playlist: https://www.youtube.com/playlist?list=PL700757A5D4B3F368

Course page: http://www.ict.kth.se/courses/ID2203 (appears to be down at the moment though)

Given Prof. Stefan Nilssons "Fundamentals of concurrent programming", which is taught in Go [1], it would be interesting to see whether not the distributed systems course will adopt Go as well, in the near future.

[1] http://www.nada.kth.se/~snilsson/concurrency

I guess using Erlang would be cheating...

I would love to see a course that explains all the DS theory alongside its implementation in Erlang.

Yes, I also had similar feel while using Erlang - "hardcore" part was just gone and I thought I was just writing config scripts to some underlying system (which it is) :)

I don't know much about Erlang. Can you explain why it's so easy?

Erlang VM's does most of of the distribution for you combine that with Erlang's primitive for distribute coding and it's just cheating. The language it self have many construct and primitive for distributed programming that it make it seems like cheating, the code itself is very nice to read once you get the hang of it and you don't have messy code like Node.JS with the nested call back. You first class citizen distributed stuff. Messaging passing and pattern matching for PID for example made stuff easy. Actor model is also easy to mentally solve compare to Node.JS non blocking stuff.

I'm only picking on Node.JS because Node.JS and Erlang is what I've used. Mostly Node.js and a little bit of Erlang.

Thanks. I just learned Node.js so it made your comment more helpful.

Message passing paradigm and no shared state on one hand, on the other the Open Telecom Platform (OTP) framework that implements many DS behaviours (server, supervisor and supervisor trees, etc.).

Generally, there is huge gap in Distributed Systems courses (I've encountered) between the theory/books they follow and the practical lab projects...

Can anyone recommend some good DS course oriented for working engineers with hands-on projects which the course (theory/book) itself follows closely?

There's a cloud computing class[0] launching on Coursera taught by Prof. Indranil Gupta which will cover all concepts such as fault tolerance, consensus etc. I'd suggest you can give that a shot. If you can't wait, you can checkout the course page[1] and get started right away.

You can take a look at other DS courses here - https://github.com/prakhar1989/awesome-courses/#systems

Lastly, you also have the option of working on assignments in MIT's DS class[2] (git clone git://g.csail.mit.edu/6.824-golabs-2014 6.824)

[0] - https://www.coursera.org/course/cloudcomputing

[1] - https://courses.engr.illinois.edu/cs425/

[2] - http://css.csail.mit.edu/6.824/2014/index.html

Coursera Cloud computing class is a great news! I guess I'll wait for this. As an added bonus, programming is done in C++ (compared to plain C/Glib as in original course). I hope that author means modern (or at least real) C++ and not just C with classes.

Have you looked at the linked material? I went through all of it myself and I found that although there are a lot of slides with code in them, you are given a good balance between Go code and theory.

You can just brush through the slides that have code in them. The comments are good enough.

Well, otherwise, I tried to get some help collecting nice Distributed system links and news in the relevant Google+ group: http://bit.ly/distsys

I'm taking this course next semester! However, it mostly likely will be taught in C/Java.

so sad, that course have no video lectures.

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