This course provides an introduction to Artificial Intelligence research. In structure, this is a survey course: we will rarely spend more than three lectures or so on any given topic (even though many of these topics could easily support an entire semester's or career's worth of work). The unfortunate side of this arrangement is that we will not cover anything in great depth (though you are encouraged to follow up on any topics of interest to you); the fortunate side of this arrangement is that, if you find that you don't care for some topic, all you have to do is wait a week or so until we move on to something else! An (approximate) schedule of topics to be covered in this course can be found in the syllabus on the following page.
It is strongly suggested that you have taken a comparative programming language course, or that you are at least taking such a course concurrently with this one.
There will be four problem sets in this course; there will also be midterm and final exams. The grading in the course will be based upon the following weighting of the assignments and exams: 15% for each of the four problem sets, 20% for each exam. Late assignments will not be accepted.
The programming assignments and examples in this course will be given in Scheme, a dialect of Lisp. I do not assume that you have any prior experience programming in Lisp or Scheme; but I do assume that you have enough sophistication in computer science so that you can learn the language quickly and (relatively) independently for this course. We will spend the first several lectures introducing Scheme/Lisp programming, and this should provide enough background for you to develop further expertise on your own. The book Programming in MacScheme should be a sufficient reference for any of the assigned work in this class.