ProjectsCS 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.

Project 1: A Rule-Based Expert System

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.

Project 2: A Frame 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.

Project 3: A Natural Language Interpreter

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:

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
  1. exercising as many features of the program as possible, and
  2. showing how the program reached its conclusions or other explanatory trace.

Each project will be graded based on:

  1. Correctness (40%): Does the project do what was asked? Were all the questions in the problem statement answered correctly?
  2. Documentation (25%): Is the code understandable? Is the overall approach described well?
  3. Examples (25%): Is every feature exercised? No bugs? Lots and lots of examples?
  4. 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 turninprogram 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]CS 4341 Home Page

[CS] WPI CS Home Page

[WPI] WPI Home Page 


CS 4341 Staff (cs4341_ta@cs.wpi.edu)
©2003 Michael A. Gennert