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 and planning problems and game-playing, sequential decision problems and reinforcement learning, probabilistic models and inference, and supervised and deep learning. 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 planning problems and implement uninformed, informed, and local 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 probabilistic reasoning problems using hidden Markov models and Bayesian networks.
  • Implement inference, sampling, and learning methods for probabilistic models.
  • Implement and effectively use common machine learning algorithms, including decision trees, linear classification, and neural networks.

Prerequisites

  • Data structures
  • 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

General 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. Hidden Markov 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