CS380D: Distributed Computing I. Distributed Computing