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

  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 networks
  15. Inference and learning in BNs
  16. Statistical learning
  17. Decision trees and random forests
  18. Linear classifiers and perceptrons
  19. Neural networks
  20. Alignment and fairness