- Lectures: Tue/Thu 1:30-2:50 PM in STLC114
- Sections: Fri 11:30-12:20 AM in 200-203
- Office hours: See the calendar for times and locations
- Zhi Bie
- Bryan He
- Andrey Kurenkov
- Anna Wang
- Feiran Wang
How to contact us:
Please use Piazza for all questions related to lectures, homeworks, and projects. We will also use Piazza for announcements. There is no access code required to join.
Look here for times of all lectures, sections, office hours, and due dates.
Office Hour Logistics:
We are using QueueStatus to manage office hours. When you wish to join the queue, click "Sign Up" at the CS221 queue. Be sure to enter your email when you "Sign Up"; this is a way for the CA to contact you. Look for announcements on the left panel for more information.
We are using Gradescope for grades and assignments.
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 of 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:
- Russell and Norvig. Artificial Intelligence: A Modern Approach. A comprehensive reference for all the AI topics that we will cover.
- Koller and Friedman. Probabilistic Graphical Models. Covers factor graphs and Bayesian networks (this is the textbook for CS228).
- Sutton and Barto. Reinforcement Learning: An Introduction. Covers Markov decision processes and reinforcement learning. Available free online.
- Hastie, Tibshirani, and Friedman. The elements of statistical learning. Covers machine learning. Available free online.
- Tsang. Foundations of constraint satisfaction. Covers constraint satisfaction problems. Available free online.
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 is centered around an application and will also deepen your understanding of the theoretical concepts. Some homeworks will have a competition component; winners will receive extra credit. Here are all the homework deadlines:
Exam (20%): The exam 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 conflict or have an OAE exception,
submit a request on Piazza to take it at another (earlier) time.
Your request must be submitted by Tue May 01.
Date: Tue May 29 from 6 PM to 9 PM
- 2017 exam [solutions]
- 2016 exam [solutions]
- 2015 exam [solutions]
- 2014 exam [solutions]
- 2013 exam [solutions]
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 up to three.
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:
The poster session will be held on Tue Jun 5 from 9 AM to 12 PM on the AT&T patio outside Gates.
See the project page for more details.
Regardless of the group size, all groups must submit the same basic amount of work as detailed in each milestone. Of course, the experiments may not always be successful, so we will cut the smaller groups more slack, while larger groups are expected to be more thorough in their experiments.
For inspiration, we have made previous CS221 projects available for viewing.
- Piazza: You will be awarded with up to 2% extra credit if you answer other students' questions in a substantial and helpful way.
Although we recommend that you use a UNIX environment (e.g., Linux or OS X),
the sanity check script
grader.py should work on Windows as well.
We encourage you to use
rice.stanford.edu if you need a UNIX environment.
The final grading will be run on the Gradescope server.
Let us know if your code runs on
rice.stanford.edu but not Gradescope.
- Looking at the writeup or code of another student.
- Showing your writeup or code to another student.
- Discussing homework problems in such detail that your solution (writeup or code) is almost identical to another student's answer.
- Uploading your writeup or code to a public repository (e.g. github, bitbucket, pastebin) so that it can be accessed by other students.
- Looking at solutions from previous years' homeworks - either official or written up by another student.
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. Important: just because you pass the basic test cases, you are by no means guaranteed to get full credit on the other test cases, so you should test the program more thoroughly yourself!
Unless the assignment instructs otherwise, all of your code modifications
should be in
submission.py and all of your written answers