CS221: Artificial Intelligence: Principles and Techniques
Stanford / Autumn 2013-2014
- Lectures: Mon/Wed 2:15-3:30pm in NVIDIA Auditorium (watch online)
- Sections: Fri at 3pm (tentative); will happen based on need; see calendar
- Office hours: CA office hours are in the Gates basement offices (Gates B24, B26, B28); see calendar for times.
: look here
for dates/times of all lectures, sections, office hours, due dates.
What is this course about?
What do web search, speech recognition, face recognition, machine translation,
autonomous driving, and automatic scheduling have in common?
These are all complex real-world problems,
and the goal of Artificial intelligence (AI) is to tackle these
with rigorous mathematical tools.
In this course, you will learn the foundational principles that drive these
applications and practice implementing some of these systems. Specific
topics include machine learning, search, game playing, Markov decision
processes, constraint satisfaction, graphical models, and logic.
The main goal of the course is to equip you with the tools to tackle new
AI problems you might encounter in life.
This course is fast-paced and covers a lot ground,
so it is important that you have a solid foundation on both the theoretical and empirical fronts.
You should have taken the following classes (or their equivalents):
There is no required textbook for this class, and you should be able to
learn everything from the lecture notes and homeworks.
However, if you would like to pursue more advanced topics or get another
perspective on the same material, here are some books:
Bear in mind that some of these books can be quite dense and use different
notation terminology, so it might take some effort to connect up with the
material from class.
- Homeworks (60%):
There will be weekly homeworks with both written and programming parts.
Each homework problem is centered around building a real system (e.g., a
spam filter), and also will deepen your understanding of the the theoretical concepts.
Some homework problems will have a competition component; winners will receive extra credit.
Homeworks should be written up clearly and succinctly; you will earn points based on this.
You are encouraged to use LaTeX to writeup your homeworks (here's a template), but this is not a requirement.
Here are all the homework deadlines:
- Midterm (20%): The midterm is a three-hour written exam that will
test your knowledge and problem-solving skills on all preceding lectures and homeworks.
You cannot use any external aids
except one double-sided page of notes.
If you have a major conflict (e.g., an academic conference), submit a request to take it at another time
(do this by Oct. 28).
Date: Tue Nov. 19 from 6pm to 9pm
- Project (20%): The final project provides an opportunity for you to
use the tools from class to build something interesting of your choice.
Projects should be done in groups of two.
The project will be something that you work on throughout the course and we have set up some milestones
to help you along the way:
See the project page for more details.
All assignments (homework problems and project milestones) are to be submitted using the submit script by 11pm
To submit, (i) copy your submission files
and (ii) type:
python /usr/class/cs221/WWW/submit.py <assignment ID (e.g., warmup)> <directory with your submission files>
You will receive an email confirmation about your submission. For
assignments with a programming component, we will automatically
sanity check your code in some basic test cases, but we will grade
your code on additional test cases. Unless the assignment
instructs otherwise, all of your code modifications should be
and all of your written answers
. You are allowed to submit an
assignment up to nine (9)
times in total; each submission
will replace the previous.
An assignment is $n$ days late if it was not turned in within
$24(n-1)$ hours of the deadline. You have nine (9) late days
that you can use across any assignments (except the final project
report) without penalty.
You may use at most two (2) of these late days per
If you submit an assignment late but have insufficient late days
remaining to account for the late submission, you will
receive zero (0) points on that assignment.
Collaboration policy and honor code:
You are free to form study groups and
discuss homeworks and projects. However, you must write up homeworks and
code from scratch independently without referring to any notes from the joint session.
You should not copy, refer to, or look at the solutions in
preparing their answers from previous years' homeworks.
It is an honor code violation to intentionally refer
to a previous year's solutions, either official or written up by another
student. Anybody violating the honor code
will be referred to the Office of Judical Affairs.