EECS 492: Intro to Artificial Intelligence

Fundamental concepts of AI, organized around the task of building computational agents. Core topics include search, logic, representation and reasoning, automated planning, representation and decision making under uncertainty, and machine learning.
I, II (4 credits)

Prerequisite: EECS 281 or graduate standing.



The syllabus describes the sequence of lecture topics, the readings to be done before each lecture, and a simple daily homework assignment. The dates of the classes, and of the final exam, are correct and will not change.

Daily Reading and Homework Assignments

There is a reading assignment to be done before class on each day. Each day also has one or two homework problems. These are intended to be easy if you have done the reading. Make sure to write your name and the date on your homework.

Find another person in the class who can be your "homework buddy". Once you have done the reading and the homework, you and your homework buddy check each others' homework. If there's a problem, explain it to each other until it's correct. Then sign your buddy's homework (and vice versa), and hand it in for a completion grade.

Programming Assignments

There will be four programming assignments due during the semester. Programming assignments will be done in Java. (A grad student or advanced undergrad in CS should already know Java, or should be able to pick it up quickly.)


15% mid-term exam
25% final exam
48% programming assignments (4 x 12%)
12% homework on daily reading

On Working Together

On the one hand, an assignment turned in must be individual work. We will test the code you submit for plagiarism (copying), and we will report cheating. On the other hand, one of the best ways to learn a subject is to work together with your peers to understand the material. I want you to do this. How do we reconcile these two conflicting messages?

You are urged to serve as teachers for each other. There is no better way to learn something than to teach it to someone else, especially someone who is listening carefully and asking intelligent questions when they don't understand your explanation. But a teacher does not do the homework for the student. They show the way. They help untangle the misunderstanding. The student does their own homework. If you are helping someone, work to figure out what their problem is, help them get past it, so they can do their own work in writing the program they need to write. Don't show them your solution. Explain the underlying principles. If you are asking for help, try to formulate a good question that will guide the explainer in clarifying your problem. Don't look at their solution and copy it. Get them to explain the underlying principles, so you can write your own solution.