This course is an introduction to the theory of artificial intelligence and a survey of arificial intelligence application areas. It covers the foundational concepts related to knowledge representation and search strategies. An artificial intelligence language is presented to give programming experience in implementing basic artificial intelligence concepts. Some of the applications areas that are discussed include: game playing, expert systems, theorem proving, natural language understanding, machine learning, planning, and robotics. Prerequisites: COMP 285 and MATH (DEMAND)