Research Directions in Distributed Computing and Communications