CS 4341 Projects
The projects for this class center on the development of an intelligent
system that can make inferences,
represent knowledge, and
answer questions.
The effort is broken into 3 separate
projects. You have roughly 2 weeks to do each. Each project will be described
in a separate handout. The due dates are given in the
class schedule. If you need an extension ask before the due date.
Projects may be performed in groups of 2 or 3 students. You should
assemble your project teams as soon as possible and begin work on the first
project. If a project team is unable to continue working together for any
reason, see the instructor so that alternate arrangements can be made.
Note well that the projects are deliberately open-ended; there is no single
correct approach. Feel free to consult
the instructor, teaching assistant, and student assistant
for advice and suggestions.
Write a program that will take a set of rules and known facts in order to make
valid inferences. This is a simple general-purpose problem-solving system.
Write a set of routines that will build and access frame representations of
knowledge. The rule-based system must be able to interact with the frames.
Write a program that will accept restricted Natural Language input and parse it
according to a grammar expressed as an Augmented Transition Network. Actions
embedded in the network should include actions on frames and the triggering of
rules.
Here are some other things to consider:
- Sentences should be input as Lisp lists with no punctuation, assuming
you use Lisp.
- The system must figure out what kind of sentence it has been given -
statement of fact, question, new rule to remember etc.
- It has to decide how to respond - tell a fact, ask a question, nod its
head, etc.
- You can use a random response generator so that you do not produce
identical dialogs every time the program is run.
- Anything else is up to you.
Grading
All work submitted must be of quality appropriate for an upper-level course.
You must provide a convincing demonstration that your projects work by
- exercising as many features of the program as possible, and
- showing how the program reached its conclusions or other explanatory
trace.
Each project will be graded based on:
- Correctness (40%):
Does the project do what was asked?
Were all the questions in the problem statement answered correctly?
- Documentation (25%):
Is the code understandable?
Is the overall approach described well?
- Examples (25%):
Is every feature exercised?
No bugs?
Lots and lots of examples?
- Style (10%):
Original or unusual features.
Doing more than was asked, or doing it much better than is expected.
For each project you must use the
turnin
program to submit
your programs, documentation, and examples.
You need not resubmit programs that have been previously turned in, only
the new and changed files.
We recommend that you use
Gnu Common Lisp (gcl),
CMU Common Lisp (cmucl),
Scheme (scheme),
or
DrScheme (/usr/local/plt/drscheme)
on the CCC machines. Each
project team should include at least one member who cam program in Lisp,
who understands data structures, and who is familiar with software engineering
concepts. These need not all be the same person.
The text software in /cs/cs4341/
includes code that implements much of the
functionality that you will be asked to develop. While you are encouraged to
look at how they did it, do not copy it! You must write your own code.
Suggestions
Start projects early!
CS 4341 Home Page
WPI CS Home Page
WPI Home Page
CS 4341 Staff
(cs4341_ta@cs.wpi.edu)
©2003 Michael A. Gennert