|Location:||Macdonald Engineering (ENGMD), room 280|
|Time:||Monday and Wednesday, 2:35-3:55pm|
|Instructor:||Doina Precup, School of Computer Science.|
|Office:||McConnell Engineering building, room 111N (left from the elevators).|
Monday and Wenesday, 9:00-10:00am
Meetings at other times by appointment only!
IMPORTANT: E-mail to the TAs should be sent to this address
|Class web page:||http://www.cs.mcgill.ca/~dprecup/courses/ai.html
IMPORTANT: This is where class notes, announcements and homeworks are posted!
We will cover selected topics in Artificial Intelligence (AI). We will study modern techniques for computers to make good (in some cases optimal) decisions that are applicable throughout an enormous range of industrial, civil, medical, financial, robotic and information systems. We will not attempt to cover the entire range of AI sub-areas in detail, but will survey several key themes.
Prerequisites(COMP-206 or ECSE-321) and COMP-251. You should be comfortable with programming as well as mathematical notation and simple proof techniques. If you have doubts regarding your background, contact Doina ASAP.
Reference MaterialsThe recommended references are:
- Artificial Intelligence: A Modern Approach (Third Edition) by Stuart Russell and Peter Norvig; Prentice Hall, 2009.
- Reinforcement learning: An introduction by Richard S. Sutton and Andrew G. Barto; MIT Press, 1998.
Class RequirementsThe class grade will be based on the following components:
Four individual assignments - 30%.
The assignments will include both written work and implementations. The implementation problems will involve programming algorithms that we discuss in class and reporting results produced by these algorithms. The ability to program in C/C++ or Java under the UNIX operating system is assumed but the use of these languages is not mandatory. You may use any programming language, as long as you can demonstrate that your implementation is correct. The written work will involve solving problems related to the theoretical part of the course, explaining the results of your implementations, and expressing your opinions regarding the assigned reading.
- One in-class written midterm examination - 15%.
Sample questions will be posted on the web page ahead of time.
- A final project - 25%.
The final project will be composed of a programming part and a written paper. In the programming part, you will implement a game-playing program that will play against your colleagues' programs over the network. The project will code will be written in Java. You will be provided with a complete program for a player that chooses moves legally but randomly. Your mission will be to enhance the player, using AI techniques of your choice. In the paper, you will describe your approach, and justify your choice of algorithms. Both the paper and the implementation are required for a passing grade. A working program and a typed paper with good style are prerequisites for a passing grade.
- A written final examination - 30%.
Homework PolicyAssignments should be submitted electronically on the day when they are due. Instructions on what and how to submit will be provided with each assignment. For late assignments, 10 points will be deducted from the grade for every late day, for the first 5 days. No credit is given for assignments submitted more than 5 days late, unless you have a medical problem.
All assignments are INDIVIDUAL! You may discuss the problems with your colleagues, but you must submit individual homeworks. Please acknowledge all sources you use in the homeworks (papers, code or ideas from someone else).
McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures (see www.mcgill.ca/students/srr/honest for more information).
In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.
In the event of extraordinary circumstances beyond the University's control, the content and/or evaluation scheme in this course is subject to change.
- Introduction to AI. Brief history. (1 lecture)
- Search: heuristic search, A*, local search and optimization (3 lectures)
- Constraint satisfaction probelms (1 lecture)
- Game playing and adversarial search (2 lectures)
- Logic and planning (2 lectures)
- Reasoning under uncertainty. Probabilities, Bayes rule, Bayes nets (4 lectures)
- Decision making. Utility theory, bandit problems, reinforcement learning (5 lectures)
- Function approximation, other learning methods (4 lectures)
- Special topics (2 lectures)
- Wrap-up (1 lecture)