The incorporation of advanced techniques in reasoning and problem solving into modern, complex systems has become pervasive. Often, these techniques fall within the realm of artificial intelligence. This course focuses on artificial intelligence from an agent perspective, and explores issues of knowledge representation and reasoning. Students will participate in lectures and discussions on various topics, including heuristic and stochastic search, logical and probabilistic reasoning, planning, learning, and perception. Advanced topics will be selected from areas such as robotics, vision, natural language processing, and philosophy of mind. Students will complete problem sets and small software projects to gain hands-on experience with the techniques and issues covered.