COMS 4701, Artificial Intelligence

Artificial Intelligence (AI) is a broad and fast-growing subfield of Computer Science concerned with the construction and deployment of intelligent agents. This course provides an overview of methods, history, and impact of AI. It covers heuristic search, game playing, reasoning under uncertainty, reinforcement learning, Bayesian networks, Markov models, machine learning, and applications (natural language processing, vision, robotics, as time permits). Students will solve a variety of AI problems using Python.

Course Objectives

  • Formulate search problems and implement search algorithms using admissible heuristics.
  • Describe games as adversarial search problems and implement optimal and efficient solutions.
  • Formulate nondeterministic search as Markov decision processes and solve the Bellman equations using dynamic programming.
  • Formulate Bayesian networks for stochastic problems and use them to solve inference problems.
  • Solve temporal applications using hidden Markov models and filtering algorithms.
  • Define the machine learning problem and implement simple algorithms including Naive Bayes and perceptrons.


  • Data Structures (COMS W3134 or COMS W3137)
  • Familiarity with basic probability theory (joint/conditional probabilities, random variables)
  • Familiarity with basic linear algebra (vector and matrix operations)
  • Experience with Python or similar programming language

List of Topics

  1. Motivations and history of AI
  2. Environments and agents
  3. Uninformed search
  4. Informed (heuristic) search
  5. CSPs and backtracking search
  6. CSPs and inference
  7. Adversarial search
  8. Imperfect decisions and stochasticity
  9. Markov decision processes
  10. MDPs and dynamic programming
  11. Passive reinforcement learning
  12. Active reinforcement learning
  13. Probability review
  14. Bayesian networks
  15. Inference in BNs
  16. Sampling in BNs
  17. Hidden Markov models
  18. Inference in HMMs
  19. Machine learning fundamentals
  20. Naive Bayes
  21. Perceptrons
  22. Neural networks
  23. Deep learning