Distributed Systems course assignments, labs, and course projects