Exercises in Distributed Systems