CS 475 Concurrent and Distributed Systems