CSCI 460 : Introduction to Artificial Intelligence
Fall 2007


Home
Syllabus
Schedule
Assignments
Blackboard
Reading Materials
Academic Integrity Policy

CSCI 460: Introduction to Artificial Intelligence

Overview

"Introduction to Artificial Intelligence" teaches artificial intelligence from an intelligent systems perspective. That is, you will learn about methods (tools) that allow you to build systems that can interact intelligently with their environment, including those that plan, learn, and reason about the world. You will also learn to read scientific texts about topics from artificial intelligence, use methods and systems from artificial intelligence to solve problems, and program them.

If you want to learn more about artificial intelligence, you can start with "Artificial Intelligence on the Web":

http://www.cs.berkeley.edu/~russell/ai.html

Prerequisites

The official prerequisite is a course in either data structures or programming systems design. You should know a bit about algorithms and data structures since you will have to be able to read pseudo code and understand algorithms from artificial intelligence. It will also help you if you already know something about probabilities, although we will go over the basics of probability theory in class. Finally, you should know how to program in C or C++, since the projects will use them. The most important prerequisite of all, however, is your interest in the course, motivation, and commitment to learning. If you are not sure whether this class is for you, please talk to us.

Textbook

The textbook for the course is Artificial Intelligence - A Modern Approach by Russell and Norvig (Prentice Hall). It is important that you read the second edition rather than the first one. We will follow the textbook reasonably closely but will not cover all of the chapters and, from time to time, cover topics not contained in the book.

Lectures and Sessions

Lectures are meant to summarize the readings and stress the important points. Thus, it will be extremely helpful to you if you do the readings, ideally before class. If you miss a class, it is your responsibility to find out what we talked about, including the announcements we made in class.

If there is something that you don't understand, please feel free to interrupt the lecture or session with questions. Your active participation in class is crucial in making the course successful. Please also use your colleagues as a resource (they are working towards the same goal as you are), for example, by forming study groups or posting questions to the newsgroup. If you need additional help, please come by during our office hours and talk to us. We are there to help you. If lots of students are confused, William will give a help session with additional examples. So, please let us know if you get confused!

Exams

There will be two midterms and one final. The midterms will be in class, and the final will be on the officially scheduled date. No makeups will be given. Everyone will be able to vote on whether the exams will be open or closed book. Please bring a calculator to the exams.

Projects

There will be three graded projects, most or all of which will involve programming, probably in C or C++. We will not accept late projects and you will get zero credit for them. All solutions have to be the work of only the people listed on it. Do not copy from others or let others copy your work. In particular, you have to cite all of the resources you relied on for coming up with your answers. This includes web pages, publications, people, and so on, other than the textbook, instructor, and teaching assistant.

All students are responsible for reading and following the Student Conduct Code. Note that the USC Student Conduct Code prohibits plagiarism. Some examples of what is not allowed by the conduct code: copying all or part of someone else's work (by hand or by looking at others' files, either secretly or if shown), and submitting it as your own; giving another student in the class a copy of your assignment solution; and consulting with another student during an exam. If you have questions about what is allowed, please discuss it with the instructor.

Students who violate university standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the university. Since dishonesty in any form harms the individual, other students, and the university, policies on academic integrity will be strictly enforced. Violations of the Student Conduct Code will be filed with the Office of Student Conduct.

Homeworks

To help you prepare for the exams, we will post "text-book style" homeworks with short questions. We will not collect or grade your solutions. However, solving these homeworks is important because they ensure that you have understood the material and help you to prepare for the exams. We will post solutions to the homeworks approximately one week after we posted the homeworks.

Grades

We will NOT grade on a curve. If everyone does well, everyone will get a good grade. If everyone does poorly, everyone will get a bad grade.

Project 1: 10%
Project 2: 10%
Project 3: 10%
Midterm 1: 20%
Midterm 2: 20%
Final: 30%

Note that this class is very exam-heavy. To receive a good grade, you will therefore need to perform well in exams.

Questionnaires

We will ask you to fill out two questionnaires: one at the beginning of class because we would like to learn a bit more about you so that we can tailor the course towards your skills and expectations; and one before the final so that we can improve future classes. Filling out the questionnaires is voluntary and anonymous. We hope that you will make use of this opportunity and choose to provide us with feedback.

Problems and Concerns

At some point, you will have questions. For example, you might not be able to get code to run that we provided, there is something in the textbook that you do not understand, and so on. In this case, we encourage you to first post the question to the newsgroup and see whether someone can help you. William will try to monitor the newsgroup as well and provide help. If this approach does not generate the desired result, then we are happy to help you in person. We do answer email but, unfortunately, often will not manage to answer it on the same day. (Sometimes we will be out of town and it will take even longer.)

It is very important to us that you voice your concerns about any aspect of the class as soon as they arise. Please send us e-mail, call us, or talk to us in person. We will accept anonymous notes and treat them seriously, as long as they are sincere and constructive. Your comments will have an effect on the class, so please do not be hesitant to provide them.

There are only a few situations that you will need to avoid because we will not be able to help you. We will not be able to deviate from the grading criteria for you, we will not be able to avoid involving the Office of Student Conduct in case there is evidence that you violated the standard of academic integrity (as specified in the Student Conduct Code), and we will not be able to accept excuses unless you provided us with a note from a doctor (or similar professional) that verifies the problem and you told us about the issue IMMEDIATELY WHEN IT AROSE (not: after it has already affected your performance in class). We are sorry that we cannot make exceptions to these rules. So, please do not ask for them.

Artificial Intelligence is a fun topic, and we hope that all of us will have lots of fun!

Sven and William