Artificial intelligence (AI) is often used to describe machines (or computers) that mimic cognitive functions that humans associate with the human mind, such as learning and problem solving. In the twenty-first century, AI techniques have experienced a resurgence following concurrent advances in computer power, large amounts of data, and theoretical understanding; and AI techniques have become an essential part of the technology industry, helping to solve many challenging problems in computer science, software engineering and operations research. This course gives a fundamental introduction to the concepts, techniques, and applications of AI. Topics include problem solving, search, knowledge and reasoning, logical agents, first-order logic and inference, uncertain knowledge and reasoning, machine learning, natural language understanding and robotics.