Course Purpose
This course aims to introduce students to some of the basic theory and practical techniques in artificial intelligence.

Learning Outcomes
Upon successful completion of this course, the student should be able to:
i. Discuss both the achievements of AI and the theory underlying those achievements
ii. Discuss the engineering issues underlying the design of AI systems.
iii. Demonstrate a basic proficiency in a traditional AI language including an ability to write simple to intermediate programs and an ability to understand code written in that language.
iv. Contrast basic issues of knowledge representation and blind and heuristic search, as well as of other topics such as minimax, resolution, etc. that play an important role in AI programs.
v. Discuss and evaluate some of the more advanced topics of AI such as Learning, natural language processing, agents and robotics, expert systems, and planning.