Introduction to topics in artificial intelligence such as problem solving methods, game playing, understanding natural languages, pattern recognition, computer vision and the general problem of representing knowledge.

Introduction to topics in artificial intelligence such as problem solving methods, game playing, understanding natural languages, pattern recognition, computer vision and the general problem of representing knowledge.

Prerequisite: CS 156 or instructor consent.

This course is fast-paced and covers a lot of ground, so it is important that you have solid programming skills. To receive instructor's consent, you should have taken the following classes (or their equivalents): Programming (CS 46A, CS 46B, CS151), Data Structures and Algorithms (CS 146), Discrete mathematics (Math 42), Applied Probability and Statistics (Math 161A).

You will be expected to program in Python during the semester. It is also expected that you will be able to find, install and configure Python libraries and troubleshoot programming problems on your own.

If you are new to Python, check out the following two links:

There is no required textbook for this class, and you should be able to learn everything from the lecture notes, assigned and in-class coursework and project. However, here are some recommended books (some of these are available online). Note that these books are quite technical in their content.

A comprehensive reference of AI topics.

A comprehensive reference of factor graphs and bayesian networks.

Covers Markov decision processes and reinforcement learning.

Covers machine learning.

Provides both theoretical and practical coverage of all data mining topics.

A defining book for the field of Pattern Recognition.

There will be five assignments with both written and programming parts. Each homework assignment is focused on working with an algorithm used in AI applications. The written part will consist of evaluation of algorithm validation and testing on specific problem instances. Each assignment will be equally weighted, i.e. contribute 10% toward the final score.

There will be two examinations (midterm and a final) that will test your knowledge and problem-solving skills on all preceding lectures and homework assignments. No external aids will be allowable with the exception of a single double-sided page of notes.

The final project provides an opportunity for students to unleash their creativity and use the tools from class to build something interesting of their choice. Projects will be done in groups of up to three. Students will work on the project throughout the course and complete assigned milestones.