http://www.distributedsystemscourse.com/
This is an introductory course in Distributed Systems. Distributed systems is the study of how to build a computer system where the state of the program is divided over more than one machine (or "node").
This course is in active development. At the moment, it consists of a series of short videos. The intention is to create a complete set of video lectures and then add additional content (such as more projects). Sadly progress is slow due to my other commitments getting in the way...
Because I love teaching and I know a lot about distributed systems. So why not? Also, I want to learn more about the art of teaching online. Designing and building a short course seemed like a reasonable way of learning this.
Watch the videos and enjoy. You will learn more effectively if you are actively working on designing/building/maintaining a distributed system while you study -- so start making something! (Examples of what you could work on: build a multi-user chat system, build a data analysis using Hadoop, attempt to understand Paxos and build your own implementation (note that Paxos is known for being hard to understand...).) If you are already taking a college-level class on distributed systems then watch these videos before or after your lectures to review the material.
Check out the class project chat servers, and try them out. If folks start using them, they may become a great way to get questions anwered. (Or, they will become spam honeypots. We'll see.)
If you are an instructor and want to use these videos as a part of your class -- feel free to link to this site and send your students here to watch. Please do not make your own copies of the videos or slides, or change them; I like knowing how many people are using and enjoying the videos, and being able to fix and improve them at will. If you want to do something that involves copying this content, send me an email -- I'm happy to listen to your ideas.
This course covers the following topics:
Potential future topics include: