91.420/91.543 Artificial Intelligence, Fall 2010
We will be using the following books:
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!
In this class, we will focus on the practical. The goal will be to illustrate all ideas with code that runs. Examples in class will be worked out in Python and Lisp (probably leaning more towards the Python). Sample code for many of the algorithms discussed in the text is provided in a variety of languages (Python and Lisp, plus Java, C++, and C#). You will be allowed to complete assignments using the language of your choice, and you will be welcome to use the reference code as a basis for your own experiments and extensions,
The textbook, as noted 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, but it is also the best.
The authors just published the third edition of AIMA. I do recommend this new edition, and new copies should be available at the UML bookstore. It would be acceptable to get a used second edition; these are typically available for $25 to $35 plus shipping (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 AIthe idea that AI could ultimately produce truly intelligent synthetic brains, not merely systems that appear to act in intelligent ways. Minsky's book is not ordered at the UML bookstore, so please purchase a used copy (alibris; amazon).
The bulk of our work will focus on more mundane matters, and the content in AIMA could easily fill two semesters and still be considered an introduction. As such, we will not attempt to cover every topic, but rather to learn a good subset of topics well. The agenda for the semester will include:
(The list above is subject to revision; also, please let me know if there is a topic you want included which presently is not.)
There are three major categories of work that will be assessed. These are:
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 interestsmusic, 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.
25% Weekly homeworks
Discussion Group / E-Mail List
We will use Google Groups for class conversation and announcements. Please join this group. I'd advise setting your preferences to immediate, individual delivery of messagesclick the Edit my membership tab.
The group address is email@example.com. You have to be a member to send to the list.
For undergraduates, 91.420 Artificial Intelligence can be grouped with 91.450 Robotics I to form a course pair.
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.
Students who are registered for the honors section of the class are expected to have exemplary work, including classroom participation, written work, and the course project. Additional and more difficult problems will be assigned in most of the weekly problem sets.
The graduate section is 91.543.201. In addition to being treated as honors students, students who are registered in the graduate section will locate, read, and report on current and/or historical research papers associated with each of the topics in the class. Also, you will prepare a paper of your own, based on your implementation project.
Please email me for a permission number if you are interested in taking the graduate version of the class.