Artificial Intelligence Foundations: Thinking Machines