General Information / General Information


"Foundations of Artificial Intelligence" teaches artificial intelligence from an intelligent systems and robots perspective. You will learn about algorithms that allow you to build systems/robots that can interact intelligently with their environment, including those that plan, learn, and reason about the world.

If you want to learn more about artificial intelligence, you can start with: "Artificial Intelligence on the Web" ( If you are also curious about "transform" robots and how to use the simulator for your class projects, please visit (Polymorphic Robotics Lab).


CSCI 561 is a graduate introduction to artificial intelligence. It assumes no knowledge of artificial intelligence. It does not make sense to take CSCI 460 (the undergraduate introduction to artificial intelligence) before CSCI 561. In fact, if you have already taken a decent (undergraduate or graduate) introduction to artificial intelligence at any university and do not need a refresher of that material, you likely should not take CSCI 561. You could, for example, use CSCI 573 (Advanced Artificial Intelligence) as a substitute but should discuss this decision with your advisor.

The prerequisites of CSCI 561 include a solid understanding of data structures, algorithms, programming and theoretical computer science (comparable to undergraduate classes at USC) since you will have to be able to understand algorithms and read pseudocode. You should also know the basics of probability theory although we will give a short refresher lesson in class. Finally, you should know how to program in C or C++ since the projects will likely use them (although we expect graduate students to be able to pick up any computer language in a couple of days and thus sometimes use other programming languages in CSCI 561, such as Matlab). Do not take this class if you cannot program well. The most important prerequisite of all, however, is your interest in the class, motivation, and commitment to learning. If you are not sure whether this class is for you, talk to us.


The textbook for the class is "Artificial Intelligence - A Modern Approach" by Russell and Norvig (Prentice Hall). It is important that you read the latest (3rd) edition. We will not cover all of the chapters and, from time to time, cover topics not contained in the book. The secondary and option text work is Autonomous Learning from the Environment by Wei-Min Shen. This book gives your an more indepth view of robots that learn from their environment. The readings of this book are suggested in the schedule to assist your reading plans.

The Importance of Attending Lectures

It is important to attend the class lectures because we are not just repeating the material in the book, we are working out problems in class with a lot of interactions. These problems are important for your projects.

Class Webpage

The class webpage will be at

Lectures and Sessions

We will make the lecture slides available on the class webpage before the lectures. The lectures are meant to summarize the readings and stress the important points. Thus, we expect you to read the corresponding part of the textbook before the lectures. If you miss a class, it is your responsibility to find out what we discussed in class, including which announcements we made in class. If there is something that you don't understand, feel free to interrupt the lecture or session with questions. Your active participation in class is crucial in making the class successful. 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 on the discussion forum. If you need additional help, please feel free to go by the TAs during their office hours. If lots of students are confused, the TAs will give help sessions with additional examples. So, let us know if you get confused!


There will be one midterm and one final. The midterm will be in class, and the final will be during the officially scheduled date. This date is part of the final examinations schedule that USC posts as part of the current schedule of classes on (click on "Schedule of Classes", then on the current semester, and finally on "Final Examinations Schedule"). No makeups will be given. The exams will be based on the textbook ("Artificial Intelligence - A Modern Approach" only) but closed books and notes. There will not be any extra credit problems on the exams. Bring a calculator and your USC ID to the exams. You will not be allowed to write the exam without presenting your USC ID. Laptops, cellphones and any other devices that can potentially be used to communicate with others inside and outside of the classroom are not allowed. Exams written in pencil receive a zero score.


There will be three graded projects. All or at least most of the projects will involve programming. The projects will be run in a robotic simulation environment at (Remod-3D). You have to install this simulator on your laptop computer and learn from examples C++ program how to program and build simulated robots yourself. There are many examples on the website site to assist your use of this simulator.

All projects have to be done individually. The basic objectives of the projects are as follows. Project 1: Design and implement a simple robot Rx to move from point A to point B in an open environment. Project 2: Give Rx intelligence so that it can search and navigate a path from point A to point B in a crowded environment. Project 3: Make Rx learn from its own experience so that it can find a target in its environment quickly. Extra-Credit: Make Rx transform its body in order to solve problems in Project 2 and Project 3. Late Project Penalty: -30% of the project grade for each day that is late. So, please start to work on your projects early and hand them in early.

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 people, web pages, publications and other write ups. You are not allowed to use code or code snippets of others, that is, that you did not write yourself. You are not allowed to discuss with others how to solve the projects..

All students are responsible for reading and following the Student Conduct Code as given in the current SCAMPUS. Note that the 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 of the class and suspension from the university. We will strictly enforce the Student Conduct Code and follow the suggested penalties since dishonesty in any form harms the individual, other students, and the university. This includes filing all suspected violations with the Office of Student Judicial Affairs and Community Standards.


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


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. Projects and exams have the following weights:

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

There will be no possibilities for receiving extra credit.

The intended grading scale is as follows. The instructor reserves the right to adjust the grading scale.

85% and larger: A
80% - 85%: A-
75% - 80%: B+
70% - 75%: B
65% - 70%: B-
60% - 65%: C+
55% - 60%: C
50% - 55%: C-

Scores below 35% result in an F. The instructor will assign grades from A to F, if warranted. There will always be some students who are very close to grade boundaries. There is nothing we will do about that. Grades are based on performance, not need or personal circumstances, and the instructor does not negotiate grades. Thus, do not take CSCI 561 (or take it completely at your own risk) if you need a certain grade, for example, because you are graduating or because you have been conditionally admitted.

The work load for CSCI 561 is very heavy. To receive a good grade, you will therefore need to perform well in both projects and exams. The TAs will announce how we maintain the scores, so that you can check them for correctness. You will need to let us know about any grading issue with an exam, project or similar within 10 days of us posting the score for that exam or project. After that time, we will no longer entertain your requests for changes in your score. If you have a grading issue, you will need to discuss the issue first with the TA in charge of grading. If you cannot reach consensus, you can then appeal the grading issue to the instructor. Both the TA and the instructor might check the exam or project completely for grading issues and adjust your score up or down as appropriate.

During the semester, if you feel that you might get a bad grade and worry about how it might affect your minimum GPA requirement or other requirements, please talk to your advisor immediately and then consider dropping the class. Foreign students might have to take a certain number of classes to satisfy their visa requirements, so it is especially important that you talk to your advisor before you drop the class. If you do not drop the class by the drop date, then you are stuck with it.

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 post the question to the discussion forum and see whether someone can help you. If this approach does not generate the desired result, then the TAs are happy to help you in person. They do answer email but, unfortunately, often will not manage to answer it on the same day. (Sometimes, they will be out of town and it will take them 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 an e-mail to the instructor, call us, or talk to us in person. We will accept anonymous notes (either on paper or via email from any free "on-the-fly" email account) and treat them seriously, as long as they are sincere and constructive. Your comments will have an effect on the class, so do not be hesitate 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 Judicial Affairs and Community Standards in case there is evidence that you violated the standard of academic integrity, 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 accept only true emergencies as excuses, such as your sickness or a death in your immediate family. We are sorry that we cannot make exceptions to these rules. So, please do not ask for them. In particular, CSSI 561 is a "strictly no exceptions" class due to the large class size, meaning that we will not make any individual exceptions to our rules, not even in hardship cases, unless clearly mandated by USC and its rules. It is therefore important that you abide by all rules precisely!

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

Acknowledgement: this webpage style and many content are designed by Sven Koenig, USC