           FinITE - Finite automata Interactive Theory Exploration

                           Michael Lepore (leppa@wpi.edu)
                          David Spencer (dspencer@wpi.edu)

### Welcome to FinITE v0.98b ###

FinITE is the result of our MQP: CS Theory Visualization.  It is a program
for Microsoft Windows which is designed to encourage students to explore
Finite Automata and help them to do so.  This program is a beta test
version.  The help files have just been finished, so if there are any
consistencies or spelling errors, please tell us.

### Hardware / Software Requirements ###

Requires Microsoft Windows, a mouse, and 300K of free hard drive space.  A
color monitor is recommended but not required.

### Installing FinITE ###

Insert the FinITE installation disk in your floppy drive, and then from
Windows Program Manager, select the "Run" option in the "File" menu.  
Type in A:INSTALL or B:INSTALL depending on which drive the disk is in.

FinITE's installation program will add a program group to your program
manager, and create an icon for FinITE.

You may immediately run FinITE from this icon by double-clicking on it.

### Running FinITE ###

When you enter FinITE, you will be shown an introductory graphic.  You must
press a key or click the mouse on this graphic to dismiss it.

The first step in using FinITE is to either create a new finite automaton
or to load one from disk.  Supplied with FinITE are two sample finite
automata, named BOTHEVEN.FA and ODDA.FA.  To load either of these files,
choose "Open" under the "File" menu.  To create a new finite automaton, 
select "New" under the "File" menu.

Most of the commands in FinITE should be self-explanatory.  FinITE conforms
to Windows' standards as much as possible.  Help is available, but it is
limited.  Many commands are represented by icons on the toolbar, but every
command on the toolbar also has an equivalent menu entry.  You may add new
states and transitions, as well as manipulate the states and transitions
as you would any Windows object--using cut, copy, delete, and paste.  To
do this, you manipulate the objects in the window with the mouse, clicking
and dragging to select and move, and so on.

### Machine Commands ###

You may convert an NFA into a DFA, minimize a given DFA, or check a string
for acceptance.  All these operations are available from the menu.  Note
that the "step-by-step" mode for string parsing is only available for
deterministic machines.

### Help Files ###

Help is just recently implemented.  The help files are first draft help
files, meaning that they may have errors in them.

If there are errors, or spelling mistakes, or anything wrong with the
help files that you see, please tell us.

### Color in FinITE ###

A state has one of two borders around it--red or blue.  For users without
color, the red border is the thicker border.  A state with a red border
is a non-deterministic state.  This state cannot be in a machine and
have the machine be deterministic.  A blue border means a state is
deterministic.  A machine composed of only blue-bordered states is a
deterministic machine.

### Shortcuts ###

Some shortcuts have been built in.  You may get information on a
state by clicking the right mouse button on it.  You may build a 
transition between two states by holding down the control key,
clicking on the start state, holding down the button and dragging the
mouse to the destination state.

### Making your machine look better ###

Moving states around will generally allow you to get a clear view of your
machine.  If the machine is computer-generated, like the result of a
NFA-DFA conversion, it may be messy and hard to understand.  Moving the
states around until there are fewer intersecting lines is the easiest
way to fix this.  Minimizing a messy machine sometimes helps too.

### Beta Testing ###

What we would like you to do is to try the various operations FinITE
supports on machines of your own devising.  You can manipulate the
machines we give you or create your own.  If you encounter any
problems, please report them to us right away.  We would like you to
give us feedback even if you find no problems.  Tell us what you liked and
didn't like about the program.  Tell us how we could improve FinITE, or
what you would have done differently if you had designed the program.
The information you give us may not lead to any major changes in FinITE; we
only have a few weeks left in the term.  But, it will give us valuable
information which will be used in the project summary as well as in future
follow-up projects to FinITE.  All contributors of feedback will also
be mentioned in a list of testers located in the program.

### Code Freeze ###

FinITE has reached full functionality before the release of version 1.00.
There will be no new features added, versions 0.97b through 0.99b will be
for bug-fixes only.

### Known Bugs ###

The only know bug in FinITE lays in the install program.  If you choose
to install to a directory other than C:\FINITE, the sample FA that are
included do not get the right icons.  Currently there are no other known
bugs.
