exercises from distributed systems course