Home Assignments Lecture Blog Resources Project Discussion Group

91.420/91.543 Artificial Intelligence, Fall 2012
Prof. Fred Martin, ⚠ (:html:)<a href="" onclick="'', '', 'toolbar=0,scrollbars=0,location=0,statusbar=0, menubar=0,resizable=0,width=500,height=300'); return false;" title="Reveal this e-mail address">click for fred's email</a>(:htmlend:)
Grader: Simone Hill
Tue/Thu, 12:30p–1:45p, OS403

We will be using the following books:

Artificial Intelligence: A Modern Approach (3rd edition – 2009)
Stuart Russell and Peter Norvig
The Society of Mind (1987)
Marvin Minsky
By far the best AI text.“The mind is what the brain does.”—Steven Pinker

What is AI?

There are few areas in computer science as broad as artificial intelligence. AI encompasses algorithm design, agents and robots, natural language understanding, expert systems, music and sound, as well as philosophical questions about the nature of consciousness!

One organizing principle across the field is the formalization of real-world problems based on utility functions, and then the use of various techniques to maximize expected utility. Based on this unifying theme, we will study:

  • search
  • game-playing, including adversarial and stochastic search
  • probabilistic reasoning, including Markov Decision Processes (MDPs) and Hidden Markov Models (HMMs)
  • reinforcement learning, including value iteration and q-learning

Ideas will be developed theoretically and with practical programming challenges using the U.C. Berkeley “Pac-Man projects,” in which you program a progressive series of challenges inspired by the original Pac-Man arcade game.

These problem sets “teach foundational AI concepts, such as informed state-space search, probabilistic inference, and reinforcement learning. These concepts underlie real-world application areas such as natural language processing, computer vision, and robotics” (see

Coding will be done in Python (which you can learn during the class if you don't know it yet).

A big part of AI is not just knowing a collection of approaches, but understanding which approach is right for which problem. To encourage the development of these skills, there will be a significant semester project where you will apply ideas from the course to a problem of your own choosing.


The textbook, as shown above, is Artificial Intelligence: A Modern Approach, by Russell and Norvig. The book is comprehensive, is well-written in the most exemplary manner, and has detailed bibliographies for each chapter. It is by far the most popular book used to teach AI, and it is also the best.

The authors have recently published the third edition of AIMA. I do recommend this new edition. New and used copies are available at the UML bookstore, or online (3rd edition: alibris; amazon; bookfinder).

It would be acceptable to get a used second edition; these are typically available for $25 to $35 plus shipping (2nd edition: alibris; amazon; bookfinder).

Please do not use the first edition.

We will also have readings and discussions based on Marvin Minsky's seminal The Society of Mind. Minsky is often considered the “father of AI,” and this work lays the foundation for “strong AI”—the idea that AI could ultimately produce truly intelligent synthetic brains, not merely systems that appear to act in intelligent ways. Minsky’s book is also available at the UML bookstore, or you may purchase a used copy (alibris; amazon).''


There are five categories of work that will be assessed. These are:

  • Programming assignments, 25%. It is my opinion that the primary way to really learn new material is by working through assignments. Assignments will be accepted up to one week late with a 25% reduction in that assignment's value. If you fall behind on your homework, it is much better to cut your losses and work on the current assignment, instead of running behind trying to catch up.
  • Literature review assignments, 10%. You will read three papers related to an area of AI in which you are interested, and prepare conference-style reviews of the papers. (One of the papers will be selected from a set that I specify, and you will select two other papers.) Also, you will review each others' project proposal documents. This work be practice for literature searches for your final project, and help you think about how to build on and cite previous work.
  • Daily reading reports and brief presentations, 10%. We will be reading the Minsky book at the rate of approx. 10 sections/chapters per class meeting. (Each section is exactly one page in length.) Each of you will prepare 140-character synopses of each section, assigned at each class and due on the next one. Each day, I will randomly call on one or more persons to lead a short discussion the assigned material. Please have your synopses at hand for each class meeting; you may start the discussion by reading them. You can expect to lead three or four times over the course of the semester. Please be prepared.
  • Midterm and final exam, 25%. There will a midterm and final, together worth 25% of your overall grade.
  • Term project, 25%. A significant part of the class will be an independent implementation project, which you will specify and carry out, primarily over the last month of the semester. We'll start conceptual work on the project earlier than that. I will expect the project to represent a significant work effort, and I will assist you in organizing your time so that this happens.
In the final project, you will apply the ideas developed in the class in an original software implementation. You may thus connect the ideas of the class with your own interests—music, robotics, art, databases, the web, networking, gaming, etc. The learning goal of the project is to have you find some real-world relevance of the ideas in the class.

Classroom participation is worth 5% of your overall grade. In practice, if your other grades put you on a marking boundary, this will push it one way or the other.

To summarize:

25% Programming assignments
10% Literature review assignments
10% Minsky reports
25% Midterm and final
25% Project
5% Classroom participation
100% Total

Undergraduate Project Sequence

For undergraduates, 91.420 Artificial Intelligence can be grouped with 91.421 Machine Learning or 91.450 Robotics I to form a course pair.

Graduate Group

For graduate students, 91.543 is in Group IV, “Information Management and Analysis.”

Collaboration and Academic Integrity Policy

You are welcome to discuss ideas in the class with your peers. However, pair programming or other side-by-side work that involves sharing of code is not allowed. By turning in an assignment, you attest that you have written the new code that it includes.

Please be familiar with the university's academic integrity policy for undergraduates or for graduate students.

Discussion Group / E-Mail List

We will use Google Groups for announcements and discussion of material outside of class.

Please join the group by entering your email address in the box below, and following the subsequent confirmation instructions.

I strongly advise that you set your email delivery preferences to immediate, individual delivery of messages—click the “Edit my membership” tab to do this.

⚠ (:html:) <table style="border:1px solid #aa0033; font-size:small" align=center> <tr> <td rowspan=3> <img src="" height=58 width=150 alt="Google Groups"> </td> <td colspan=2 align=center><b>Subscribe to uml-ai-fall12</b></td> </tr> <form action=""> <tr> <td>Email: <input type=text name=email></td> <td> <table style="background-color:#ffcc33;padding:2px;border:2px outset #ffcc33;"> <tr> <td> <input type=submit name="sub" value="Request"> </td> </tr> </table> </td> </tr> </form> <tr><td colspan=2 align=center> <a href="" target="new">Browse Archives</a> </td></tr> </table> (:htmlend:)

The group address is You have to be a member to send to the list.