Foundations of AI: Multi-Agent Systems