This course provides a broad technical introduction to the tools, techniques and concepts of artificial intelligence. The course will focus on methods for automating decision making under a variety of conditions, including full and partial information, and dealing with uncertainty. Students will gain practical experience writing programs that use these techniques to solve a variety of problems.
Topics include problem solving (search spaces, uninformed and informed search, games, and constraint satisfaction), principles of knowledge representation and reasoning (propositional and first-‐order logic, logical inference, planning), and representing and reasoning with uncertainty (decision theory, reinforcement learning, Bayesian networks, probabilistic inference, basic discrete-‐time probabilistic models).