Introduction to Artificial Intelligence (CPS 170), Spring 2009

Basics
Lecture: TuTh 4:25-5:40pm, LSRC D106
Instructor: Vincent Conitzer (please call me Vince). Office hour: catch me directly after class (Tuesday and Thursday are both fine) or by appointment. Office: LSRC D207.
Teaching Assistant: Dmytro (Dima) Korzhyk. Office hour: W 4-5pm or by appointment. Office: North Building 05.
Textbook: Artificial Intelligence: A Modern Approach, Stuart Russell and Peter Norvig.

Prerequisites
comfortable programming in language such as C (or C++) or Java
some knowledge of algorithmic concepts such as running times of algorithms
ideally, some familiarity with probability (we will go over this from the beginning but we will cover the basics only briefly)
not scared of mathematics; ideally, some background in discrete mathematics

If you have a nonstandard computer science background, the course may still be appropriate for you, but talk to me first.

Grading
Assignments: 35%
Midterm exams: 30%
Final exam: 30%
Participation: 5%

For the homework assignments, you may discuss them with another person, but you should do your own writeup, programming, etc. This also means that you should not take extremely detailed notes during your meeting with the other person; if you can't remember what you talked about, you probably didn't really understand it...

Schedule
This is the first time I am teaching this course so we will be flexible with the schedule. Each topic will probably take a number of lectures to finish.

Sometimes, a book chapter will include more information than what we cover in class; in those cases, for the purpose of exams, you are only responsible for what we covered in class.

For your convenience there are links to the chapters that are available online (which would be useful if you have an old edition of the book; the chapter correspondence is here).

Date Topic Materials
1/8 Introduction. Chapter 1.
Introduction slides: ppt, pdf.
1/13, 1/15, 1/20, 1/22, 1/27 Search. Chapters 3, 4.
Homework 1, which uses the files CPS170HW1.java, AStar.java, Node.java, FifteensNode.java, and SuperqueensNode.java.
Search slides: ppt, pdf.
More search slides: ppt, pdf
If you would like to learn more about linear and integer programming, you can go to the website of a previous course that I taught; especially the introduction and branch and bound lecture notes might be useful.
1/29, 2/3 Game playing. Chapter 6.
Slides: ppt, pdf.
Homework 2, homework 2 files.
2/5-2/17 Logic. Chapters 7, 8, 9.
Slides:
Propositional logic: ppt, pdf.
First-order logic: ppt, pdf.
Homework 3.
2/19,2/24 Planning. Planning slides: ppt, pdf.
Chapter 11.
2-26 - 4/2 Probabilistic reasoning. Chapters 13-17.
Probability slides: ppt, pdf.
Bayes nets slides: ppt, pdf.
Markov processes and HMMs slides: ppt, pdf.
Homework 4.
4/2 - 4/16 Decision theory. Markov decision processes, POMDPs. Game theory. Chapters 18, 19, 20.
Homework 5.
Decision theory slides: ppt, pdf.
MDP/POMDP slides: ppt, pdf.
Game theory slides: ppt, pdf.
4/21 Machine learning. Chapters 18, 19, 20, 21. (You do not need to know this in great detail since we spent so little time on this in class, the chapters are just in case you're interested.)
Machine learning slides: ppt, pdf.
4/21 Wrapping up. Wrapping up slides: ppt, pdf.