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.
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.
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) :)
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.
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.).
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.
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.