Distributed Computing And Artificial Intelligence by