Topics in Artificial Intelligence

SJSU, Department of Computer Science, Fall 2017

Contact Me

About the Course

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:

Suggested Readings

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.

Artificial Intelligence: A Modern Approach

A comprehensive reference of AI topics.

Probabilistic Graphical Models

A comprehensive reference of factor graphs and bayesian networks.

Reinforcement Learning: An Introduction

Covers Markov decision processes and reinforcement learning.

The Elements of Statistical Learning

Covers machine learning.

Introduction to Data Mining

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

Pattern Classification

A defining book for the field of Pattern Recognition.


Homework (50%)

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.

Exams (30%)

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.

Project (20%)

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.


Some of the recommend Python programming resources are listed below.


conversion and manipulation of various color representations


simple, extensible Markov chain generator


Natural Language Processing Toolkit


Python Imaging Library