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.
- 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
- Motivations and history of AI
- Environments and agents
- Uninformed search
- Informed (heuristic) search
- CSPs and backtracking search
- CSPs and inference
- Adversarial search
- Imperfect decisions and stochasticity
- Markov decision processes
- MDPs and dynamic programming
- Passive reinforcement learning
- Active reinforcement learning
- Probability review
- Bayesian networks
- Inference in BNs
- Sampling in BNs
- Hidden Markov models
- Inference in HMMs
- Machine learning fundamentals
- Naive Bayes
- Neural networks
- Deep learning