CS 440: Intro to Artificial Intelligence
This course is intended to provide a broad practical introduction to the concepts and methods in the field of artificial intelligence. ”AI” represents a very diverse field of problems and techniques – we will focus on topics and ideas with broad application. One thing that you should think about coming into this course is simply this – what is Artificial Intelligence?
The main focus and takeaway from this course should be the systematic representation of knowledge and the manipulation of these representations for general problem solving. If a problem can be represented systematically, any number of algorithmic techniques can be leveraged against it. Many of these algorithms will seem natural if not utterly naive – but applying them to appropriately represented and realized problems lends them power and generalizability.
The course will be divided roughly into three topics:
- Part I: Search – A Systematic Approach to Exploration and Discovery
- Uninformed Search; Informed (Heuristic) Search; Adversarial Search; Local Search; Constraint Satisfaction; Logic and Satisfiability; Classical Planning
- Part II: Uncertainty – Representing and Coping with an Uncertain World
- Probability; Inference; Bayesian Networks and Inference; Inference over Time; Utility and Decision Theory; Markov Decision Processes
- Part III: Learning – Adapting to and Understanding the World
- A Model and Theory for Learning; Decision Trees; Perceptrons; Neural Networks; Non-Parametric Methods; Support Vector Machines; Statistical Learning; Clustering; Ensemble Learning; Deep Learning; CNNs; GANs; Reinforcement Learning
Traditionally, this is done as a project based coursed (four group projects) and an independent final exam, usually done as a take-home. Typical project topics include:
- Planning paths through environments
- Planning paths through dynamical environments that change as you move through them
- Integrating information into a complete knowledge base
- Intelligently designing complex objects
- Making intelligent decisions in the presence of uncertainty
- Building neural networks to solve data problems
Textbook
The textbook is not required but it’s a good resource to have generally – I recommend Artificial Intelligence: A Modern Approach by Russell and Norvig.
Notes
These are constantly under development but I’ll try to keep the latest versions posted here. These parallel the versions available on the 520 page, but are generally aimed more at undergraduates.
- Search Notes (Coming Soon)
- A* Notes (Coming Soon)
- Local Search Notes (Coming Soon)
- Alpha Beta w Chance (Coming Soon)
- Wolf Goat Cabbage (Coming Soon)
- Probabilistic Knowledge (Coming Soon)
- Bayesian Network Practice (Coming Soon)
- Simulation Notes (Coming Soon)
- Temporal Estimation (Coming Soon)
- Kalman Notes (Coming Soon)
- Decisions and Utility Theory (Coming Soon)
- MDPs and Value Iteration (Coming Soon)
- Clustering (k-Means) (Coming Soon)
- Clustering (EM) (Coming Soon)
- PCA Notes (Coming Soon)
- Decision Tree Notes (Coming Soon)
- Supervised Learning and Linear Regression (Coming Soon)
- Linear Models (Coming Soon)
- Perceptrons and SVMs (Coming Soon)
- Deep Learning Notes / DL and NN (Coming Soon)
- Example Network (Coming Soon)
- Word Embeddings (Coming Soon)
- Recurrent Neural Networks (Coming Soon)