Tue/Thu 9:30 AM - 10:45 AM, Gates B01
Fri 1:15 PM - 2:05 PM, Terman auditorium (The first section, on 9/25, will be in Building 200, room 034.)
Andrew Ng
Office: Gates 156.
Office hours: Fridays 9-10am, except 11/6. Extra office hours on 11/9, 1.30-2.30pm
Fax: (650) 725-1449
|
Chris Archibald |
Paul Baumstarck |
|
Ian Goodfellow |
Olga Russakovsky (head TA) |
In addition to the individual office hours above, there will be extra office hours in weeks when problem sets are due.
SCPD students ONLY:
There is no phone available which you can call, but there are two ways
for you to contact us during the extra office hours.
We strongly encourage students to come to office hours. We also strongly encourage the use of the newsgroup (su.class.cs221) for discussing questions with other students and forming project groups. Clarifications to the homeworks will also be posted on the FAQ. It is each student's responsibility to check the FAQ on a regular basis. Major changes (e.g., bugs in the homework) will also be posted to the class mailing list. If a homework clarification is posted after a student has completed an assignment, the student should contact us as soon as possible to check if the assumptions s/he made are going to be accepted. In addition, questions about the class, including questions about homeworks, can also be addressed to the course staff list, cs221qa@cs.stanford.edu, which is read by the TAs and the professor. Please do not mail questions to the instructor or to the individual TAs. By having questions available to all of the staff, you will get answers much more quickly. Of course, more personal questions can still be sent directly to Prof. Ng or the relevant TA.
Do not email assignments to the cs221qa address. Off-campus (SCPD) students should submit assignments by faxing it to the fax number given above, and write "ATTN: CS221" on the cover page. Regular, non-SCPD students should submit all assignments only in hardcopy.
Please do not e-mail us with grading questions. If you want us to explain why we took points off, you can talk to us after class or during office hours. If you want a regrade, please write an explanation and drop the homework and the explanation into the submission box located at the bottom of the stairwell in Gates A wing, or hand them to the TAs during office hours.
For specific questions regarding a particular programming assignment within the homework, please try to attend the office hours of the TA listed as being responsible for that assignment, since they will be the most able to assist you efficiently.
This course provides a broad technical introduction and a survey of core concepts of artificial intelligence (AI). Topics include: history of AI, agents (environments, reactive agents), search (search space, uninformed and informed search, constraint satisfaction), probabilistic models (uncertainty, Bayesian networks, MRFs), machine learning (inductive learning, linear separators, decision trees, reinforcement learning), and perception and cognition (natural language processing, computer vision, robotics).
Students are expected to have the following background:
The prerequisites for the class are important, but only up to a point. The real prerequisite for this course is the ability to solve abstract problems, to understand nontrivial algorithms, and to think in mathematical terms. To some people these skills come by more easily, whereas others get them by taking the corresponding classes. If you feel that you have these skills, you can easily make up for the prerequisites on your own.
Required Text:
S. Russell and P. Norvig, Artificial Intelligence: A Modern Approach,
Second Edition,
Prentice Hall 2003, ISBN: 0-13-790395-2.
Course handouts and other materials may be downloaded from http://cs221.stanford.edu/handouts.html
There will be four homeworks. Each homework will contain written questions and a programming assignment that will require limited programming or running pre-existing code to analyze its behavior. We will provide some of the necessary software infrastructure for the programming assignment.
Students will be allowed to work together on written homeworks. Students may discuss the homework to understand the problem and reach a solution. However, each student must write down the solution independently, and without referring to written notes from the joint session. In other words, each student must understand the solution well enough in order to reconstruct it by him/herself. In addition, each student must write on the problem the set of people with whom s/he collaborated.
For the programming assignment portion of each homework and for the final project competition, you can work in groups of up to three students. For these, each group should submit one solution set.
We try very hard to make questions unambiguous, but some ambiguities may remain. Ask if confused or state your assumptions explicitly. Reasonable assumptions will be accepted in case of ambiguous questions.
Important note on the honor code: As we occasionally reuse problem set questions from previous years, we expect the students NOT to copy, refer to, or look at any materials from previous years, including any published solutions or graded homework assignments. It is an honor code violation to use or refer to solutions from previous years. Additionally, you are free to use online resources for learning more about the material covered in class; however, you should not look online for solutions to questions in the problem sets.
For additional information about programming in UNIX we recommend the following sources:
Students are required to complete a significant project. Students will be given a choice of two open-ended challenge problems, which will be difficult AI problems, set up as competitions. Details on the challenge problems will be announced in class. Students will pick one of the two problems and try to solve it as well as possible. Your solution will be judged both in terms of its performance (at the final project competition held at the end of the quarter), and in terms of the quality and novelty of your ideas (as described in your writeup).
For each of the two challenge problems, at the final project competition we will declare a winning and a runner-up team. Each member of the winning team will receive 3% extra credit; each member of the runner-up team will receive 1.5% extra credit. You will also submit a final writeup describing your solution to the challenge problem.
Most students are expected to choose and work on one of the two challenge problems. However, students wishing to instead propose a different AI research project for their team are welcome to do so (subject to your proposal being approved). We expect that only a small minority of students will do this, and that projects of this type will all be significant AI research projects, with a significant chance of leading to a publication. If you'd like to do this, please feel free to talk with the instructor about project ideas.
Attendance at the Friday discussion sections is optional. The sections will be used to review material from the prerequisites, provide background information for the material covered in lectures, give details of the algorithms and concepts ("walking through" algorithms to give you a better understanding of them), and discuss advanced concepts that further extend the ones covered in the main lectures. An announcement will be made in class whenever one of these discussion sections is held. Note that sections are also recorded and televised.
The course will have an open-book, open notes midterm exam, which will encompass material covered in the lectures/sections and assigned in the readings. The midterm will be on 11/12, and it will cover material up to and including the 11/5 lecture.
Late homeworks: Recognizing that students may face unusual
circumstances and require some flexibility in the course of the quarter,
each student will have a total of seven free late (calendar) days
to use as s/he sees fit. Once these late days are exhausted, any homework
turned in late will be penalized 20% per late day. However, no
homework will be accepted more than four days after its due date.
Each 24 hours or part thereof that a homework is late uses up one full
late day. If the homework has a programming assignment part and a written
part, the submission date will be the date of latest submission of either
part (no double penalization if both the homework and the programming
assignment are late). Late days are
Course grades will be based 40% on homeworks (10% each), 20% on the midterm, and 40% on the project.
Extra credit will be given to the top performers in the project challenge problems. It may also be given to some projects that go substantially above and beyond the requirements in finding creative solutions to the task. A small amount of extra credit may also be awarded for class participation. Note that extra credit is always added to the grade after the grading curve is set.
The midterm will be open book, open-notes and cover the material of the first part of the course. It will be held on Thursday, 11/12, at 6-9pm.
The final project competition will be on Friday, 12/11, 12:15-3:15pm.
Although the course is listed as 4 units, it is possible for graduate students only to enroll for 3 units. This is allowed because of the limit graduate students often have on units per quarter, but has no effect on the requirements or workload for the course.
CS221 is also cross-listed as SYMSYS 221, and cross-listed as EE294A.