COMS 4701, Artificial Intelligence
Artificial intelligence (AI) is a broad, interdisciplinary, and fast-growing subfield of computer science concerned with the construction and deployment of intelligent agents. This course provides an overview of the methods and applications of AI, with a focus on algorithms and computation. Topics include search problems, games, Markov decision processes, reinforcement learning, Bayesian networks, Markov models, machine learning, and applications throughout. Students will develop intuition and algorithmic thinking through written as well as programming problems in Python. By the end of the course, students will be able to build intelligent agents that can solve problems through search, make decisions and reason in the face of uncertainty, and learn simple models from data.
Course Objectives
- Formulate search problems and implement search algorithms using heuristic functions.
- Formulate games as adversarial search problems and implement optimal and efficient solutions.
- Formulate sequential decision problems as Markov decision processes and solve them using dynamic programming and reinforcement learning methods.
- Formulate hidden Markov models for temporal and spatial reasoning problems and implement inference algorithms.
- Formulate Bayesian networks for probabilistic reasoning problems and perform inference using sampling methods.
- Implement simple machine learning algorithms including Naive Bayes, perceptrons, decision trees, and other methods.
Prerequisites
- Data Structures (COMS W3134 or COMS W3137)
- Familiarity with basic probability theory (discrete distributions, conditioning, Bayes’ rule)
- Familiarity with basic linear algebra (vector and matrix operations)
- Experience with Python or similar programming language
List of Topics
- Overview and history of AI
- Intelligent agents
- Uninformed and informed search
- Local search methods
- Constraint satisfaction problems
- Games and adversarial search
- Monte Carlo tree search
- Multi-armed bandits
- Markov decision processes
- Dynamic programming
- Reinforcement learning
- Temporal models
- Inference and learning in HMMs
- Bayesian networks
- Inference and learning in BNs
- Statistical learning
- Decision trees and random forests
- Linear classifiers and perceptrons
- Neural networks
- Alignment and fairness