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, constraint satisfaction, and games; sequential decision problems and reinforcement learning; hidden Markov models, Bayesian networks, and probabilistic inference; supervised machine learning, decision trees, linear classification, and neural networks. 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 and constraint satisfaction problems and implement uninformed and informed search algorithms.
  • Model games as adversarial search problems and implement efficient search algorithms to solve them.
  • Model sequential decision problems as Markov decision processes and solve them using dynamic programming and reinforcement learning methods.
  • Model temporal and spatial reasoning problems using hidden Markov models and implement inference and learning algorithms.
  • Model probabilistic reasoning problems using Bayesian networks and implement inference, sampling, and learning methods.
  • Implement and effectively use common supervised learning algorithms, including linear classification, logistic regression, and neural networks.


  • 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

  1. Overview and history of AI
  2. Intelligent agents
  3. Uninformed and informed search
  4. Local search methods
  5. Constraint satisfaction problems
  6. Games and adversarial search
  7. Monte Carlo tree search
  8. Multi-armed bandits
  9. Markov decision processes
  10. Dynamic programming
  11. Reinforcement learning
  12. Temporal models
  13. Inference and learning in HMMs
  14. Bayesian and decision networks
  15. Inference and learning in BNs
  16. Probabilistic learning
  17. Decision trees and random forests
  18. Linear classifiers and perceptrons
  19. Neural networks and deep learning
  20. Bias and fairness