Projects
CSE 415: Introduction to Artificial Intelligence
The University of Washington, Seattle, Winter 2005
Projects are an opportunity to invent your own artificially intelligent program that performs an activity that you specify.
Due Dates
The project planning form is due in class on Wednesday, March 2. If you didn't pick up a copy on Monday in class, here is an online copy. Demonstrations are scheduled for Friday, March 11. All major features of your program should be working at that time. Reports and source code are due Monday, March 14 at 5:00 PM. Use the project turn-in page.
 
General Design Requirements
Each project must combine a natural language interface and an inference or an AI search technique. There must also be an ``application'' meaning a family of ``problems'' that the program solves.
The natural language interface should either be based on the Stone World parsing approach (with augmented transition networks) or the Linneus parsing approach (with fixed-format sentences in a variety of forms). Or you may use another parsing approach if you get it approved by Steve in advance.
The inference technique or AI search technique can either be one that we have covered in class or some other technique. Here are some examples: genetic search applied to photo-album layout problems; probabilistic inference applied to a type of medical diagnosis problem; alpha-beta search applied to playing a 2-person, zero-sum game such as Othello or chess (not checkers); an image-understanding technique such as the Hough transform applied to the problem of finding the edges of a hallway in indoor photos.
Other Functionality Requirements
The program must support the following capabilities: (1) ability to solve the problems in its application area; (2) ability to accept problems and return solutions via the natural language interface, possibly with the help of data files or displays, if appropriate; (3) ability to accept natural-language commands related to setting parameters of the inference process; (4) ability to handle natural-language queries about the inference process. Note that feature 3 implies that your program must be capable of modifying its parameters in response to the commands, and feature 4 implies that your program must collect statistics, etc., need to answer the queries.
Implementation Requirements
Python must be the primary language used in your implementation. If you use Prolog for the inference part of your project, use Python for the natural language interface.
Teams
You may do this project in teams of 1, 2 or 3 people. Each person's role and contributions must be separated and well-defined.
Reports
The report should be an electronic document (either raw ASCII text, MS Word file, or a PDF file). The key elements of your report include:
  1. title of project;
  2. names and roles of each teammate;
  3. what the program is supposed to do;
  4. technique used and brief description (half a page) of how that technique works. If you use multiple AI techniques then describe each one but with somewhat less detail for each one;
  5. transcript of an interesting sample session;
  6. brief demo instructions;
  7. code excerpt showing some interesting part(s) of your Python code and some explanation of it;
  8. brief description of what each team member learned in this project;
  9. what you would like to add to your program if you had more time;
  10. citations for any references you used in the project.
  11. As an "appendix" to the project, provide full source code for your program.