TEACHING DISTRIBUTED SYSTEMS

I no longer lecture from my book to later test whether students can reproduce parts of it through a written or oral exam (tests that most will fail a few months later). Instead, I am experimenting with a setup that stimulates more and better critical thinking. With so much opinionated information published in blogs and such, it is becoming increasingly important for students to make up their own minds on what actually makes sense and nonsense:

  • Why are people claiming that centralized solutions are something we don’t want?
  • What is all this fuss about blockchains being so good, bad, or what not?
  • Are containers indeed so much better than virtual machines?

The key word is critical thinking. The current course is based on having students dig into a number of controversial topics in Distributed Systems. They need to form substantiated opinions on those topics by studying material from the book, as well as digging into the literature. I use explaining problems and solutions as an instrument to (1) test how well a student understands the problem at hand, and (2) to train students to be critical about what is being explained. The reasoning is that if you don’t understand the problem, you won’t be able to explain it, and if you don’t understand what is being explained, it’s probably not your fault.

There is a design document available for the entire course, as well as a set of slides that I use to present a number of controversial topics: