Projects
|
CSE 415: Introduction to Artificial Intelligence
The University of Washington, Seattle, Winter 2008
|
|
Projects are an opportunity to invent your own
artificially intelligent program that performs an activity
that you specify.
|
Types of Projects
Projects can be of any of the following six types:
Thoughtful reconstructions of classic AI programs.
During the 1950s, 60s, and 70s, many of the foundational
ideas of artificial intelligence were developed and
demonstrated in working programs. Most of these programs can
no longer be run, because they were written in languages
that are no longer supported or for machines that don't
operate any more. A good project would be to select one
of the early systems, and develop a new implementation of
it using Python, adding a graphical interface and
interactive features
that make it easy for a user to quickly understand how the
program works and to explore the effects of changes to
parameter values, input data, and even the algorithm or
set of rules used.
Intelligent tutors. An intelligent tutor is (traditionally) a
conversational program that engages one student in a dialog and/or
problem-solving session in order to teach one or more
concepts and/or skills. A typical tutor, nowadays, is implemented
as a rule-based system in which conditions are tested with regard
to the student's input, the student's past record (using a "student
model"), and in which actions may involve displaying a message or question
to the student, bringing up an HTML page of material, or modifying
an entry in the student model. If you are interested in a project
of this type, you may take advantage of a tutorial operating
environment we have developed at the University of Washington
called iTutor, part of a system called INFACT.
Problem-solving systems based on T-Star.
These systems will help users solve traditional
problems such as scheduling, spatial layout (floor plans), combinatorial arrangement (pentaminoes),
graph coloring, graph isomorphism. Choose a class of
problems and implement state/node representations and
renderings, basic operators, and automatic search
and evaluation functions.
The T-Star software is available at
the T-Star website.
A list of steps for adapting the T-Star software to your own purposes
is this
guide page.
Expert agents written in Python.
Such an agent will reason about problems in
a specific domains such as an area of science
(e.g., chemical reactions), forensics (crime-scene
evidence), mathematics, law, business, etc.
Rule based and probabilistic reasoning are
appropriate mechanisms to employ.
Demonstration and application of a
standard AI technique using Python + TKinter.
For example, the ID3 learning algorithm for
classification rules, concept formation in
mathematics in the spirit of AM or Pythagoras:
"Primes = Natural numbers such that the number of
factors is minimized".
(If you plan to use the Stone World code in your
project, it is here:
StoneWorld.py, and
the helper module
Match2.py.)
Image understanding applications using
PixelMath. Detection or recognition of:
faces, objects, drawings, captchas. Watermark
embedding and extraction. Intelligence test
problem-solving ("A is to B as C is to ...").
|
Teams
Projects may be done in teams of 1 or 2 people.
|
Meetings with Instructor
Each team should discuss their project with the instructor.
Meeting times will be set up early in the quarter.
|
Demonstrations
Project presentations will take place Wednesday, March 12
and Thursday, March 20.
|
Criteria
Each project should address
the following criteria.
(a) Originality. The project must not be an edited version
of something developed elsewhere.
(b) Demonstration of an appropriate artificial intelligence
technique. Most AI topics will be appropriate, but each student
or team should meet with the instructor and get approval for
their topic.
(c) Transparency. The implementation should take specific
steps or incorporate explicit features to help the user understand
how the program works, typically showing in some form, key
intermediate results, status of longer computations, and
relationships among key data structures, rules, states, or
constraints.
(d) Interactivity. The program should allow the user to
control the computation through interaction. There can be
default parameter settings, but it must be possible for the
user to easily override many of the defaults.
|
Due dates
Reports
and source code are
due Wednesday, March 19 at 2:00 PM. Use Catalyst Collect-It to turn them in.
(Note change).
|
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:
-
title of project;
-
names and roles of each teammate;
-
what the program is supposed to do;
-
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;
-
either a screen shot or a transcript of an interesting sample session;
-
brief demo instructions;
-
code excerpt showing some interesting part(s) of your Python code and some explanation of it;
-
brief description of what each team member learned in this project;
-
what you would like to add to your program if you had more time;
-
citations for any references you used in the project.
-
As an "appendix" to the project, provide full source code for your program.
|