
         MISCELLANEOUS MATH EDUCATIONAL SOFTWARE: PROGRAM ABSTRACTS


This file contains abstracts for a package of programs that are written and
maintained by John Kennedy in the Mathematics Department at Santa Monica
College.  The programs are for IBM compatible computers and are used by the
students in the Math Lab at SMC.  These programs may also be of interest to
high school students and math teachers at almost any level.

If you wish to print this file so you can read from a paper copy you can try
importing this file into any word processor and then print it.  Failing that,
you can try the DOS command COPY README.TXT PRN.


THE BACKGROUND AND KNOWLEDGE REQUIRED TO USE THE PROGRAMS IN THIS PACKAGE
==============================================================================
The programs described below have been designed to be used by people with
little or no computer background.  All of these programs contain self-
documenting help screens and the more complex programs are accompanied by
tutorial lessons designed specifically for first-time users.  The mathematical
background required to use these programs depends on the nature of each
individual program.  However, each program is designed to be a learning tool
to help motivate an interest in mathematics and computer science, so users may
benefit from trying a program even if they do not fully exploit all of the
program's capabilities.


THE HARDWARE REQUIRED TO USE THE PROGRAMS
==============================================================================
The hardware required to run these programs is fairly simple.  Some programs
use only a text mode, but those that require a graphics capability can be
used with monochrome display screens if a color monitor is not available.
Several programs require an IBM-compatible graphics adapter card which may be
any one of CGA, or EGA, or VGA capability.  Each program automatically selects
the highest resolution available and each program description indicates when
graphics hardware is required to run the program or when the program runs in a
text mode only.

Some of the programs may use multiple windows and take advantage of a mouse,
if one is available.  But any program that uses a mouse can usually be used
without one.  A hard disk is not required to run any of these programs,
although a hard disk may be needed to acquire and unpack the archived files.
A printer is optional for a few programs if you want to produce hard copy
output.  Any version of DOS later than version 3.1 should be compatible.  The
programs have all been tested and run under DOS version 6.0.


UPDATE AND VERSION INFORMATION
==============================================================================
This file:  README.TXT  57687  11-28-93   9:00 PM

These programs are periodically updated to make improvements and add new
features (and sometimes to correct bugs!).  The line before each paragraph
description gives the latest filename information about the most recent
version of the program at the time this README.TXT file was made.  This
information includes the file size in bytes and the date and time of
the most recent update.  If you already have a version of one or more of these
programs you may wish to compare your file dates with the corresponding dates
in the list below.


THIS PACKAGE VERSUS COMMERCIAL PROGRAMS
==============================================================================

The development of the programs in this package began many years ago when
there was little or no other software available.  At present, there are major
commercial packages that have outstanding mathematical capabilities.  The
major names include MATLAB, MAPLE, MATHEMATICA, MACSYMA, THEORIST, and DERIVE.
All of these commercial programs were developed by and for professional
mathematicians and literally millions of dollars of research has been spent
either directly or indirectly in their development.

Except for DERIVE which has a competitive price, the cost of these commercial
programs is not only beyond most student budgets, many teachers and schools
can't afford them either.  Just like the first shirt pocket calculators which
initially cost hundreds of dollars, the price of commercial software will
steadily decline.  In the not-too-distant future everyone will be able to buy
all the capability in MATHEMATICA for less than $20.  But we aren't there yet.
A recently introduced program called X(PLORE) Version 4.0 by David Meredith of
San Francisco State University is being sold at a price students can afford.

In addition to the price obstacle, most commercial software was not designed
for classroom demonstrations nor for student experimentation.  The capability
of most commercial math software goes way beyond the level of student use.  If
you have ever tried to develop instructional demonstrations with any of the
commercial programs you are already aware of and understand the problem.

Students (and teachers) who use commercial programs require a significant
amount of time to develop proficiency in their use.  Such an effort is
worthwhile for those who will continue to use the software outside of school.
It is also worthwhile to learn how to write programs using one of the
commercial scripting languages.  Developing a programming skill in MATHEMATICA
is most rewarding.  But most students do not consider themselves in the
category of mathematical programmers and will never learn to program directly
in the languages used by these packages.

While the user interfaces are continually improving, none of the major
commercial programs are particularly well-suited for first-time beginners who
only need to learn and perform relatively simple tasks.  Unlike most word
processing programs which have standard feature sets and work in similar ways,
commercial math programs vary widely in their syntax and input/output.  Many
programs still have command line interfaces even though they claim to work
with the Windows operating system.  The major commercial programs are truly
amazingly powerful, but in some ways they are still primitive.

The software described below has two advantages over commercial software.

   1. Cost (it is free; however it does have to be copied and distributed)

   2. It is made for teachers and students where the end goal is learning
      and discovering.  It is for first-time beginning users.

These same two advantages are disadvantages if you want state of the art math
software.  Buy the professional stuff when you need state of the art large
capacity high-speed numerical or symbolic algorithms.  Otherwise, kindly
accept some exposure to this educational software as preparation for more
robust software that will be in your future.


FILE TYPES & TUTORIAL & ADDITIONAL HELP & DOCUMENTATION INFORMATION
==============================================================================
Files of the type *.EXE are executable program files.  Files with the same
primary name but of the type *.TXT are ASCII text files which contain
important documentation about the corresponding program.  These files may be
imported into any word processor for reading and/or printing.  It is suggested
that you read any text file associated with a program before you try to run
the program.  Many of the *.TXT files contain tutorial lessons for first-time
users that will take you through the beginning steps of using the program.
These tutorial files also illustrate some of the typical uses of the programs.

Files of the type *.HLP are compiled binary files that must accompany the
*.EXE program with the same primary filename.  These files are NOT intended to
be read or printed because they contain some special binary codes.  For the
most part however, they only contain specially formatted ASCII text that is
part of a context-sensitive hypertext on-line help system.  Files of the type
*.EXE and *.HLP with the same primary filename must normally reside in the
same subdirectory.  Programs that use *.HLP files first search for them in
their own subdirectories, and if not found there, they will search for a
matching *.HLP file in all subdirectories listed in your DOS PATH.

Each program contains some form of Help information which can be accessed by
either pressing key H (or Alt+H for Help) or by pressing function key F1 from
within most menus or dialog boxes.  By reading all the Help information you
may learn about some of the more subtle features of each program.


THE PROGRAM ABSTRACTS
==============================================================================


 1. MATRIX.EXE  217744  11-28-93  7:18 PM
    --------------------------------------------------------------------------
    The MATRIX program is designed to perform and to teach row operation
    algorithms on matrices.  The program can work in a decimal floating-point
    mode in which calculations are carried out to 18 significant digits, or it
    can work in a fraction mode with exact rational arithmetic.  The fraction
    mode is more useful for instructional purposes while the decimal mode is
    more appropriate for scientific or engineering applications.  You can
    easily switch between fractions and decimals at any time.  The program can
    find complete solutions to systems of linear equations, can compute
    determinants and inverses of matrices, and solve standard and non-standard
    Linear Programming problems, and can perform some special algorithms which
    include the Gram-Schmidt Orthogonalization process, and the calculation of
    eigenvalues and eigenvectors.  The program can calculate sets of basis
    vectors for the kernel, range, and row space of a matrix.  The inter-
    matrix operations include addition, subtraction, and multiplication of
    matrices as well as scalar multiplication.  The program provides easy
    entry and editing of matrices which may be up to 20x20 in size.  Matrices
    may be re-dimensioned and rows and columns can easily be inserted or
    deleted.  Matrices may be saved to and/or read from disk files.    A mouse
    is recommended but is also optional.  Each matrix occupies a window and as
    many as 9 overlapping windows may be open on the desktop at once.  This
    program works in a text display mode only and does not require any
    graphics hardware.  There is context sensitive help in the file MATRIX.HLP
    which normally must reside in the same subdirectory as MATRIX.EXE.  There
    is an independent tutorial file, MATRIX.TXT, which is for first-time
    users.  MATRIX.TXT may be imported into any word processor and/or printed
    on any printer.


 2. YFUNX.EXE  210576  11-28-93  7:35 PM
    --------------------------------------------------------------------------
    The YFUNX program is designed to graph and analyze functions which are
    written in the form Y=F(X), in which Y is a function of X; thus the name
    YFUNX.  This program provides a set of 24 basic operators (those found on
    most scientific calculators), but you can compose any or all of these to
    build function expressions of arbitrary complexity.  The program can then
    be used to graph the function.  Any number of function curves may be
    combined in one graph.  There is even a general graph parameter that may
    be used to automatically make multiple series of related graphs.  The user
    can control the spread of values that are automatically associated with
    the graph parameter.  The XY-plane rectangular window may be any size and
    centered anywhere in the plane.  The X- and Y-axes may be scaled
    independent of one another and a local coordinate system may be located
    anywhere in the window.  The user can perform automatic zooming in and out
    to make a smaller or a larger window, or they can explicitly mark the
    contents of a zoom-in window.  After a graph has been made the user can
    enter a Coordinate Trace Mode in which they can move a cursor anywhere
    across the screen and track the world coordinates of the points it traces
    out.  This can be used to find points of intersection of two curves or to
    approximate the X- and Y-intercepts of a function.  There is also a line
    drawing mode in which the user can spin a line around an anchor point,
    usually to manually approximate the tangent or normal line to a graph at a
    particular point on the graph.  The user can also enter a Tangent/Normal/
    Graph trace mode in which they can move a tangent line, normal line or a
    point along the graph to study the variations of these quantities along
    the curve.  At each point on the curve the tangent line equation (or
    normal) and the coordinates of the point of tangency (normality) are
    given.  This program provides seven different kinds of numerical
    integration and for each kind it dynamically displays the resulting areas
    when in in graphics mode.  In addition to the lower, midpoint, and upper
    Riemann sums, and the Trapezoid and Simpson's Rules, the program performs
    Gaussian Quadrature and Romberg integration.  This program also calculates
    the arc length between any two points on the graph of a function.  In
    graphics mode it dynamically displays the arc length elements.  Three
    additional integration techniques are provided for finding volumes and
    surface areas associated with 3-dimensional rotations.  Either the disk
    method or the method of cylindrical shells can be animated.  The program
    simulates the drawing of 3-dimensional disk and shell volume slices.  The
    lateral surface area for the volume of rotation of a plane region over a
    horizontal line can also be performed.  In still another mode the user can
    apply Newton's Method or the method of Successive Bisections to
    dynamically solve for the zeros of the function.  In graphics mode the
    program animates each convergence process.  In text mode the user can
    observe the convergence of a table of values to the zero of the function.
    Another feature is the ability to automatically find the the max/min
    extrema of any function over a closed interval.  This feature can be
    applied in either graphics or text modes.  This program requires some form
    of graphics such as CGA or EGA or VGA hardware.  The program automatically
    adapts to the highest graphics resolution of the hardware it finds.  There
    is an independent tutorial file, YFUNX.TXT, which is for first-time users.
    YFUNX.TXT may be imported into any word processor and/or printed on any
    printer.


 3. POLAR.EXE  175008  11-28-93  8:51 PM
    --------------------------------------------------------------------------
    The POLAR program is designed to graph and analyze relations which are
    written in terms of Polar Coordinates.  This program does for polar graphs
    what the YFUNX program does with graphs of rectangular functions.  Polar
    functions may be of the form R=f(@) or the radius may be squared,
    R^2=f(@).  You can quickly switch between these two forms and you can
    enter arbitrarily complex function expressions.  This program also
    provides a graph parameter for automatically making multiple series of
    related graphs, has an XY-plane window, a Coordinate Trace Mode, a
    Tangent/Normal/Graph trace mode, zooming features, and can perform
    numerical integration for arc length and area.  The coordinate trace mode
    together with the overlapping graph feature makes it easy to find points
    of intersection of two or more polar graphs.  The program is particularly
    useful to observe the shape and dynamic tracing out of the circular
    sectors that are employed with polar graph integrals.  Setting up the
    limits of integration in polar coordinates is more subtle than setting up
    the limits in rectangular coordinates.  Max/min extrema of X and Y
    coordinates can be found automatically for any polar curve.  This program
    requires some form of graphics such as CGA or EGA or VGA hardware.  The
    program automatically adapts to the highest graphics resolution of the
    hardware it finds.  There is an independent tutorial file, POLAR.TXT,
    which is for first-time users.  POLAR.TXT may be imported into any word
    processor and/or printed on any printer.


 4. PARAM.EXE  172864  11-28-93  8:57 PM
    --------------------------------------------------------------------------
    The PARAM program is designed to graph and analyze relations which are
    written in terms of parametric equations.  This program is analogous to
    the POLAR and YFUNX programs, but handles X-Y plane relations of the form
    X=f(t), Y=g(t), where the parameter t may be considered to represent time.
    This program provides a graph parameter for automatically making multiple
    series of related graphs and also has an XY-plane window, a coordinate
    trace mode, a Tangent/Normal/Graph trace mode, zooming features, and
    performs numerical integration for areas and arc length. The program can
    animate the tracings of area and arc length elements whenever numerical
    integration is performed.  Max/min extrema of X and Y coordinates can be
    found automatically for any parametric curve.  This program requires some
    form of graphics such as CGA or EGA or VGA hardware.  The program
    automatically adapts to the highest graphics resolution of the hardware
    it finds.  There is an independent tutorial file, PARAM.TXT, which is for
    first-time users.  PARAM.TXT may be imported into any word processor
    and/or printed on any printer.


 5. POLPM.EXE  174032  09-05-93  2:07 PM
    --------------------------------------------------------------------------
    The POLPM program is designed to graph and analyze relations which are
    written in terms of polar coordinates, where both the radius and angle are
    expressed in terms of a parameter variable.  This program is analogous to
    the YFUNX, POLAR, and PARAM programs.  The polar coordinates R and @ are
    represented by two functions, R=f(t) and @=g(t), where the parameter t may
    be considered to represent time.  This program also provides a graph
    parameter for automatically making multiple series of related graphs and
    has an XY-plane window, a coordinate trace Mode, a Tangent/Normal/Graph
    trace mode, zooming features, and performs numerical integration for areas
    and arc length.  The program can animate the tracings of area and arc
    length elements whenever numerical integration is performed.  Max/min
    extrema of X and Y coordinates can be found automatically for any section
    of a curve.  This program requires some form of graphics such as CGA or
    EGA or VGA hardware.  The program automatically adapts to the highest
    graphics resolution of the hardware it finds.


 6. DIFEQ.EXE  151392  06-28-93  9:45 AM
    --------------------------------------------------------------------------
    The DIFEQ program is designed to graph and solve first order differential
    equations.  The program can make the graph of the direction field that is
    associated with the differential equation.  It also dynamically shows the
    solution graph to an initial value problem which can be overlaid on the
    direction field.  This provides an insightful view of the family of
    solution curves and demonstrates how equations are sensitive to the
    initial conditions.  The graphing features include an XY-plane window,
    scalable axes, a Coordinate Trace Mode, and zooming features similar to
    those found in the YFUNX program.  The numerical methods for solutions to
    initial value problems include the standard Euler and modified Euler
    methods as well as a 4th order Runge-Kutta method.  Solutions to initial
    value problems can be animated using a single-step mode which graphically
    demonstrates the convergence process.  In text mode the same convergence
    processes can be observed with a table of values.  This program requires
    some form of graphics such as CGA or EGA or VGA hardware.  The program
    automatically adapts to the highest graphics resolution of the hardware it
    finds.  There is an independent tutorial file, DIFEQ.TXT, which is for
    first-time users.  DIFEQ.TXT may be imported into any word processor
    and/or printed on any printer.


 7. CURVE3D.EXE  125952  06-28-93  9:57 AM
    --------------------------------------------------------------------------
    The CURVE3D program is designed to graph and analyze a curve given in the
    form X=f(t), Y=g(t), and Z=h(t).  Thus the curve is parametrized in
    3-dimensions.  The 3-dimensional graphing scheme allows the curve to be
    viewed from any point in space.  The program draws a true-perspective 3D
    picture.  This program requires some form of graphics such as CGA or EGA
    or VGA hardware.  The program automatically adapts to the highest graphics
    resolution of the hardware it finds.


 8. SURF3D.EXE  138880  06-28-93  9:49 AM
    --------------------------------------------------------------------------
    The SURF3D program is designed to graph 3-dimensional surfaces of the form
    Z=f(X,Y).  The program allows the resulting surface to be viewed from any
    point in space.  This program draws a true-perspective 3D picture.  The
    surface can be realized in the form of a fishnet, or it can be viewed with
    surface traces with lines of constant X or constant Y.  The program also
    has a hidden line feature that allows for even more realistic pictures.
    The user can move their perspective eye-point to view the surface from any
    direction in 3-dimensions.  This program requires some form of graphics
    such as CGA or EGA or VGA hardware.  The program automatically adapts to
    the highest graphics resolution of the hardware it finds.  There is an
    independent tutorial file, SURF3D.TXT, which is for first-time users.
    SURF3D.TXT may be imported into any word processor and/or printed on any
    printer.


 9. CFIT.EXE  182464  05-10-93  4:50 PM
    --------------------------------------------------------------------------
    The CFIT program is designed to perform curve fits to data.  Thus this
    program is a statistical program that can be used to analyze data and
    discover a functional relationship between two variables.  The program can
    employ any one of four kinds of regression functions which include linear
    functions, exponential functions, logarithmic functions, and power
    functions.  The user can select any particular function or they can let
    the program automatically choose the function of best fit for the given
    data.   Once a curve has been fit to the data the user can predict new
    points along the curve.  The program employs a recursive process for
    accumulating statistical sums which provides more accurate than usual
    statistics.  The program makes easy entry and editing of data.  The
    program can graph a scatter diagram of the data and it can graph the
    fitted function curve that passes through the data.  The graphing features
    include an XY-plane window, scalable axes, a Coordinate Trace Mode, and
    zooming features similar to those found in the YFUNX program.  All of the
    data and/or statistics may be saved to or read from disk files, or printed
    on a printer.  This program requires some form of graphics such as CGA or
    EGA or VGA hardware.  The program automatically adapts to the highest
    graphics resolution of the hardware it finds.  There is an independent
    tutorial file, CFIT.TXT, which is for first-time users.  CFIT.TXT may be
    imported into any word processor and/or printed on any printer.


10. GALTON.EXE  108144  11-28-93  7:11 PM
    --------------------------------------------------------------------------
    The GALTON program was designed to simulate an experiment in mathematical
    probability.  The idea is derived from a board which contains several rows
    of staggered but equally spaced nails, named after its inventor, Francis
    Galton (1822-1911).  Objects are dropped across this board and stack up in
    collection bins at its bottom.  The user can control the left-right
    probabilities and can observe either coins or ping-pong balls in
    conjunction with the board.  Given the correct parameters, you can
    visually see how nature produces the binomial coefficients from Pascal's
    Triangle and their relation to a Gaussian bell-shaped normal curve.  The
    program can also simulate coin tossing experiments with biased coins which
    result in skewed distributions.  This program requires some form of
    graphics such as CGA or EGA or VGA hardware.  The program automatically
    adapts to the highest graphics resolution of the hardware it finds.  There
    is an independent tutorial file, GALTON.TXT, which is for first-time
    users.  GALTON.TXT may be imported into any word processor and/or printed
    on any printer.


11. BUFFON.EXE  87216  08-23-93  9:53 PM
    --------------------------------------------------------------------------
    The BUFFON program was designed to simulate an experiment in mathematical
    probability.  The experiment is performed by randomly dropping needles on
    a grid of equally spaced parallel lines.  The needles are all the same
    length which is exactly 1/2 the spacing between the lines.  After all the
    needles are dropped a count is made of the number of needles which
    intersect any line.  A given needle may intersect at most one line, but
    most needles (about 2/3+) do not intersect any line.  The total number of
    needles divided by the number of intersecting needles approximates the
    number Pi.  This experiment is named after the French naturalist Count
    Buffon (1707-1788) who dropped needles on a floor made of wooden planks.
    The lines correspond to the cracks between the planks.  Buffon was trying
    to estimate the probability that a needle would fall across or into a
    crack.  The mathematically precise answer is surprisingly related to Pi.
    The user can set the number of needles and control various aspects of the
    experiment.  This program requires some form of graphics such as CGA or
    EGA or VGA hardware.  The program automatically adapts to the highest
    graphics resolution of the hardware it finds.


12. PROPC.EXE  87296  11-28-93  7:23 PM
    --------------------------------------------------------------------------
    The PROPC program performs analysis of formulas from the Propositional or
    Sentential Calculus, a branch of symbolic logic.  PROPC can be used to
    perform a complete truth table analysis of propositional formulas of
    arbitrary complexity.  Up to 9 independent variables are allowed which
    implies tables may contain as many as 512 truth value lines.  The program
    can print all lines, print only the true lines, or print only the false
    lines, or it may simply test a formula as a tautology.  The program can
    also display the parse tree structure that corresponds to any formula,
    and it can translate formulas from the common infix notation to Polish
    notation.  This program also generates and displays the Karnaugh Map that
    is associated with a given formula or a given truth table which is
    comprised of 2, 3, or 4 variables.  The program also displays a minimal
    length formula that generates the same truth table as determined by the
    Karnaugh Map.  Truth tables and formulas can be printed on a printer or
    saved in disk files.  This program works in a text display mode only and
    does not require any graphics hardware.  There is an independent tutorial
    file, PROPC.TXT, which is for first-time users.  PROPC.TXT may be imported
    into any word processor and/or printed on any printer.


13. RPNDEMO.EXE  80240  10-31-93  3:34 PM
    --------------------------------------------------------------------------
    The RPNDEMO program was designed to simulate a programmable RPN calculator
    that is very similar to the HP-41 calculator.  This calculator provides an
    integrated programming environment which includes a built-in editor with
    complete syntax checking.  The environment includes an interpreted
    language that provides full run-time error checking.  You can learn to
    program a computer with this program.  Programs you create may be saved to
    or read from disk files.  This program is an excellent tool for learning
    how a Reverse Polish logic calculator works.  It can also be used to
    simulate a type of assembly language that is simple, yet is rich with
    features which include conditional comparisons and flag testing, indirect
    memory addressing, and the ability to make subroutine calls and watch the
    build-up and break-down of the subroutine return stack.  Programs may be
    executed in an Animated Mode which shows the internal workings of the
    machine.  The Fast Mode turns off the animation when speed is desired.
    The user can also set a time delay factor to control the animation speed.
    This program works in a text display mode only and does not require any
    graphics hardware.  Included with this program are 5 demonstration program
    files called RDEMO1.TXT, RDEMO2.TXT, RDEMO3.TXT, RDEMO4.TXT, and
    RDEMO 5.TXT.  There is also a 75-page User's Manual for this program in
    the files named RPNMAN1.TXT, RPNMAN2.TXT, RPNMAN3.TXT, and RPNMAN4.TXT.
    A background paper which discusses some of the history of the Reverse
    Polish Notation (RPN) is provided in the file BKGRND.TXT.  Any of these
    *.TXT files may be imported into any word processor and/or printed on any
    printer.


14. CALC.EXE  191696  11-28-93  7:07 PM
    --------------------------------------------------------------------------
    The program called CALC.EXE is a general purpose calculator that works
    with five basic data types which include real numbers, complex numbers,
    fractions, integers (with binary logic, base b=2, b=8, b=10, or b=16), and
    polynomials.  Thus CALC.EXE is really five calculators combined into one.
    The real numbers have between 19 and 20 significant digits with a dynamic
    range between 3.4 x 10^-4932  and 1.1 x 10^4932.  Real number functions
    include the basic four +, -, *, /, reciprocals, squares and square roots,
    powers, nth roots, trigonometric and inverse trigonometric functions
    (in degrees or radians modes), logarithmic and power functions (base 10
    and base e), hyperbolic and inverse hyperbolic functions, factorials,
    permutations, combinations, prime factorizations of integers, greatest
    common factor, least common multiple, and the group order of one integer
    modulo another.  The complex number functions include all of the real
    number functions for which the analogous operations are well-defined.  Of
    significance are complex values for nth roots, complex powers, complex
    logarithms, complex trigonometric and complex inverse trigonometric and
    complex hyperbolic and complex inverse hyperbolic functions.  In fraction
    mode you can perform basic operations on fractions which may be displayed
    in both improper and mixed number form.  There are special functions for
    working with both simple and general continued fractions.  In the integer
    mode you can specify the word size in terms of the number of bits per
    integer.  The word size may be any multiple of 4 up to a maximum width of
    32 bits.  Integer display options include binary, octal, decimal, or
    hexadecimal formats.  Integers may be signed or unsigned.  If signed,
    integers may be in either 1's or 2's complement format.  In addition to
    normal arithmetic, there are logical operators which include bitwise NOT,
    AND, OR, NAND and XOR.  The polynomial mode operators include +,-,* and /.
    Polynomial division yields both quotient and remainder polynomials.  A
    special function allows any polynomial with integer coefficients to be
    completely factored using exact rational linear factors.  Polynomials may
    be up to degree 25 and are easily entered, edited, and evaluated.  Other
    special functions include the ability to determine the fixed and periodic
    parts of any repeating decimal that represents any fraction.  In addition
    to base 10, repeating decimals may be analyzed and displayed with respect
    to binary, octal, and hexadecimal formats.  Another special function
    converts any decimal to a simple continued fraction and displays all the
    convergent terms as fractions and decimals.  CALC.EXE provides all this
    functionality in a model of a calculator that operates using reverse
    Polish logic.  Each number (data type) occupies its own window.  Use of a
    mouse is recommended, but is optional.  There can be multiple overlapping
    windows.  The program automatically detects the presence of a hardware
    numeric coprocessor.  If not present, a numeric coprocessor will be
    simulated via software.  This program works in a text display mode only
    and does not require any graphics hardware.  This program has context
    sensitive help in the file CALC.HLP.  Normally CALC.EXE and CALC.HLP must
    reside in the same subdirectory.  There is an independent tutorial file,
    CALC.TXT, which is for first-time users.  CALC.TXT may be imported into 
    any word processor and/or printed on any printer.


15. LOAN.EXE  87664  11-28-93  7:15 PM
    --------------------------------------------------------------------------
    The LOAN program was designed to be part of a financial program that
    handles the two standard cases of compound interest.  Either a lump sum
    or a series of periodic constant payments may be considered to earn
    compound interest.  This program works with the 5 standard financial
    variables n, i, PV, FV, PMT and can calculate these in any meaningful
    combination.  n is the number of compounding time periods. i is the
    periodic interest rate.  PV, FV, and PMT represent the Present Value,
    Future Value, and periodic payment amounts in terms of dollars.  When
    working with loans this program can also print out a complete amortization
    schedule for the loan with any specified beginning and ending periods.
    For any series of payments this program will calculate and display the
    payment number, the amount of the payment that goes to interest and the
    amount that is applied to the principle and the new remaining balance.
    The amortization schedules may be saved in disk files or printed on a
    printer.  The program can also make interest earning schedules for one-
    time lump sum deposits that earn compound interest.  A third type of
    interest earning schedule is for a series of periodic payments.  For each
    kind of interest earning schedule the program shows how the interest and
    remaining balance grow as a function of time.  This program works in a
    text display mode only and does not require any graphics hardware.  There
    is an independent tutorial file, LOAN.TXT, which is for first-time users.
    LOAN.TXT may be imported into any word processor and/or printed on any
    printer.


16. FCARD.EXE  52560  05-12-92   5:38 PM
    --------------------------------------------------------------------------
    The FCARD program is a general Flash Card program.  Although initially
    designed to aid the learning of formulas for a 2nd semester calculus
    class, this program can be used to help learn any set of simple facts.
    The user may write their facts in a file using any word processor and
    then bring them into this program which has one of three display modes.
    This program can present the items in a given order, or it can present
    them in a random order, or it can flash them in a timed sequence, where
    the user sets the timing in seconds between each question and answer.
    This program accommodates up to 150 questions and related answers per
    file.  Each question and each answer occupies one line in the file.  This
    program works in a text display mode only and does not require any
    graphics hardware.  Two sample data files included with this program are
    MATH8.FC and SAMPLE.FC which are text files which may be imported into any
    word processor and/or printed on any printer.


17. THANOI.EXE  28208  03-14-93  9:28 PM
    --------------------------------------------------------------------------
    The THANOI program was designed to show a recursive process which is
    known as the Towers of Hanoi game.  The user can direct the game moves,
    or the user can watch the program run in an automatic, or a semi-automatic
    mode.  The game illustrates a process which doubles in both complexity and
    the time required to complete the game by incrementing a single parameter.
    The program demonstrates the validity and simplicity of a recursive
    solution to a complex problem that would otherwise overwhelm a normal
    human being.  The main logic in this program is only three lines long!
    Up to 511 consecutive game moves can be animated.  This program works in
    a text display mode only and does not require any graphics hardware.


18. TRIANGLE.EXE  90432  03-18-93  8:40 PM
    --------------------------------------------------------------------------
    The TRIANGLE program solves triangle problems using applications of the
    Law of Sines and/or the Law of Cosines.  In a typical problem, three known
    parts of a triangle are entered and the program will calculate the other
    three parts.  There are 19 possible cases and this program handles all of
    them, including the ambiguous case of the Law of Sines.  So if two
    triangles match the given input, this program yields both answers.  This
    program also draws the triangle solutions to scale on a graphics screen
    and in addition to calculating all the sides and angles it also calculates
    the area and the perimeter.  This program requires some form of graphics
    such as CGA or EGA or VGA hardware.  The program automatically adapts to
    the highest graphics resolution of the hardware it finds.


19. EXPMCON.EXE  51840  05-12-92   5:30 PM
    --------------------------------------------------------------------------
    The EXPMCON program is a simple utility program that works with files
    saved by the program called MATRIX.EXE.  When a matrix is saved by the
    MATRIX.EXE program, it is saved in an ASCII text file that is both
    displayable and printable on any standard device.  The EXPMCON program
    takes such a file as input and converts it to another file that can be
    read by the commercial scientific word processor called EXP.  Thus EXPMCON
    is only of use to those who use both MATRIX and EXP.  The name of this
    program is suggestive of EXP Matrix Conversion.  The EXP word processor
    requires special formatting codes for matrices, and this program can be
    used to convert an ASCII formatted matrix file into a file that can be
    read into an EXP-formatted document.  This program works in a text display
    mode only and does not require any graphics hardware.


20. BMPLOT.EXE  137952  09-05-93  2:10 PM
    --------------------------------------------------------------------------
    The BMPLOT plot program can be used to make high resolution monochrome
    bitmap function plots.  Thus BMPLOT stands for bitmap plotter.  The kinds
    of graphs made by this program match those made by the programs YFUNX,
    POLAR, PARAM, and POLPM.  But the graphs made by this program are stored
    in files that can be read into other programs such as paint or drawing or
    desktop publishing programs.  This program has a graph parameter for
    automatically making multiple series of related graphs.  For bitmap files,
    the user can specify both the resolution (in terms of dots per inch) and
    the size of the bitmap (in inches).  Virtually any resolution or size
    bitmap may be made.  The default resolution is 300 dots per inch to match
    high quality output on laser printers.  But within the limits of memory,
    even higher resolutions may be used.  The regular DOS version of this
    program can make bitmaps consuming 300-400K of RAM.  A protected mode
    version of this program is available which can employ over 8MB RAM for any
    extremely large bitmap.  The output file formats include PCX, TIFF, and
    BMP files.  TIFF (Tag Image File Format) files may be compressed using a
    pack-bits scheme or the CCITT/3 compression algorithm, or may be left
    uncompressed.  In particular, the TIFF or PCX files made by this program
    may be read directly into any EXP graphics library.  (EXP is a commercial
    scientific word processor.)  Other scientific word processors or desktop
    publishing or paint or drawing programs may be used to read in the bitmap
    files to add labels and titles and/or to print the bitmap.  This program
    can also make graphs using the HP-GL/2 plotter language which is provided
    as part of the PCL 5 printer language on HP LaserJet III and later
    printers.  Plotter graphs may be easily sized and placed anywhere on a
    page with either portrait or landscape orientation.  A PCL 5 class laser
    printer would normally be required if you plan to use the plotter
    functions on a laser printer.  Plotter graphs may also be saved in files
    that contain the HP-GL/2 plotter language commands for later playback on
    actual HP plotters or other compatible devices.  Any bitmap file made by
    this program can be printed on any dot matrix or laser printer that does
    not have the PCL 5 plotting capability.  The variable resolution and size
    features allow you to match any output device.  This program works in a
    text display mode only and does not require any graphics hardware.


21. XPRES.EXE  149776  11-28-93  7:30 PM
    --------------------------------------------------------------------------
    The XPRES program is for performing multiple precision arithmetic with
    large integers.  Thus the name XPRES stands for extended precision.  This
    program is useful whenever you need to work with numbers that would
    overflow the 10-digit capacity of your calculator.  The program works with
    nonnegative integers with a dynamic range between 1 and 20,000 digits.
    The special computational algorithms include unusually large factorials,
    powers, permutations, and combinations.  For example, you can use XPRES to
    compute the exact value of 1000 factorial which is a number 2,568 digits
    long.  Or you can compute the number of combinations of 3000 objects
    chosen 1500 at a time which results in a number 902 digits long.  The
    number 2 raised to the 5,000th power is a number 1,506 digits long.  The
    need for computing exact values of large integers may seldom arise, but
    when it does, XPRES may satisfy the need.  XPRES warns you whenever any
    calculation would overflow the 20,000 digit capacity of any single number.
    The program employs a model of a Reverse Polish Logic calculator.  There
    are multiple overlapping windows.  Each number occupies its own window and
    can be displayed in any one of three formats.  Numbers may be displayed as
    long strings of continuous digits.  Digits may also be grouped three at a
    time separated by commas.  The third format displays a number with 5-digit
    groups separated by spaces.  A clipboard may be used to copy temporary
    results.  Numbers may be saved to or read from disk files.  The program
    will automatically count and display the count of the number of digits in
    each number.  The program can also be used to automatically compare any
    two extended precision numbers; a task that would be extremely tedious if
    done manually.  It also has a built-in timer that automatically computes
    the elapsed time of any calculation.  The speaker may also be used to
    alert you when a long time-consuming calculation finishes.  This program
    works in a text display mode only and does not require any graphics
    hardware.  Use of a mouse is recommended but is also optional.  This
    program has context sensitive help in the file XPRES.HLP.  Normally
    XPRES.EXE and XPRES.HLP must reside in the same subdirectory.  There is an
    independent tutorial file, XPRES.TXT, which is for first-time users.
    XPRES.TXT may be imported into any word processor and/or printed on any
    printer.


22. TURING.EXE  70144  11-28-93  7:26 PM
    --------------------------------------------------------------------------
    The TURING program simulates the operation of a Turing Machine. Turing
    Machines are abstract models of primitive digital computers.  In fact,
    they are the most fundamental models of all logical computations.  Such a
    machine was conceived by the British mathematician Alan Turing in 1935,
    long before digital computers became established.  Turing also worked on
    machines to break the secret codes produced by the German Enigma machine
    in World War II.  TURING provides a tape with 999 elements, all of which
    must be 0 or 1.  These are unary digits, NOT BINARY digits.  In addition,
    the state transition table can hold up to 99 states.  These two capacities
    should be more than adequate for the demonstration nature of this program.
    In addition, TURING has a full-screen editor so that users may write,
    edit, and save their Turing Machine programs.  You can also vary the speed
    of animation and can run programs in either an automatic mode or a
    single-step mode.  Three sample demonstration programs are included in
    the files called TDEMO1.TXT, TDEMO2.TXT, and TDEMO3.TXT.  There is also an
    independent tutorial file, TURING.TXT, which is for first-time users.
    TURING.TXT may be imported into any word processor and/or printed on any
    printer.



AN INDEX OF ALL THE FILES
==============================================================================
The following is an alphabetical listing of all the files.  There are a total
of 22 program files plus an additional 32 files that are the documentation and
help and other supporting files.  The file reference numbers correspond to the
above program abstract numbers.


              Ref.
 Name   .Type  ##  Brief one line description of the file
 ------------  --  -----------------------------------------------------------

 BKGRND  .TXT  13  Historical origins of RPN notation (RPNDEMO.EXE program).
 BMPLOT  .EXE  20  Bitmap File/Plotter program.
 BUFFON  .EXE  11  Buffon Needle simulation program.
 CALC    .EXE  14  General purpose RPN Calculator program.
 CALC    .HLP  14  Help file to accompany CALC.EXE program.
 CALC    .TXT  14  Tutorial text file for the CALC.EXE program.
 CFIT    .EXE   9  Curve Fit program.
 CFIT    .TXT   9  Tutorial text file for the CFIT.EXE program.
 CURVE3D .EXE   7  3-Dimensional parametric curve graphing program.
 DIFEQ   .EXE   6  Differential Equations program.
 DIFEQ   .TXT   6  Tutorial text file for the DIFEQ.EXE program.
 EXPMCON .EXE  19  EXP matrix conversion program.
 FCARD   .EXE  16  Flash Card program.
 GALTON  .EXE  10  Galton Board Simulation program.
 GALTON  .TXT  10  Tutorial text file for the GALTON.EXE program.
 LOAN    .EXE  15  Loan program.
 LOAN    .TXT  15  Tutorial text file for the LOAN.EXE program.
 MATH8   .FC   16  Sample calculus questions for the FCARD.EXE program.
 MATRIX  .EXE   1  Matrix program.
 MATRIX  .HLP   1  Help file to accompany the MATRIX.EXE program.
 MATRIX  .TXT   1  Tutorial text file for the MATRIX.EXE program.
 PARAM   .EXE   4  Parametric Functions (2-dimensional) program.
 PARAM   .TXT   4  Tutorial text file for the PARAM.EXE program.
 POLAR   .EXE   3  Polar Functions program.
 POLAR   .TXT   3  Tutorial text file for the POLAR.EXE program.
 POLPM   .EXE   5  Parametrized Polar Functions program.
 PROPC   .EXE  12  Propositional Calculus program.
 PROPC   .TXT  12  Tutorial text file for the PROPC.EXE program.
 RDEMO1  .TXT  13  1st of 5 demonstration programs for RPNDEMO.EXE program.
 RDEMO2  .TXT  13  2nd of 5 demonstration programs for RPNDEMO.EXE program.
 RDEMO3  .TXT  13  3rd of 5 demonstration programs for RPNDEMO.EXE program.
 RDEMO4  .TXT  13  4th of 5 demonstration programs for RPNDEMO.EXE program.
 RDEMO5  .TXT  13  5th of 5 demonstration programs for RPNDEMO.EXE program.
 README  .TXT      Text file with detailed abstracts of all the programs.
 RPNDEMO .EXE  13  Programmable RPN calculator program.
 RPNMAN1 .TXT  13  1st part of user's manual for RPNDEMO.EXE program.
 RPNMAN2 .TXT  13  2nd part of user's manual for RPNDEMO.EXE program.
 RPNMAN3 .TXT  13  3rd part of user's manual for RPNDEMO.EXE program.
 RPNMAN4 .TXT  13  4th part of user's manual for RPNDEMO.EXE program.
 SAMPLE  .FC   16  Sample file for the FCARD.EXE program.
 SURF3D  .EXE   8  3-Dimensional Surface Graphing program.
 SURF3D  .TXT   8  Tutorial text file for the SURF3D.EXE program.
 TDEMO1  .TXT  22  1st of 3 demonstration programs for TURING.EXE program
 TDEMO2  .TXT  22  2nd of 3 demonstration programs for TURING.EXE program
 TDEMO3  .TXT  22  3rd of 3 demonstration programs for TURING.EXE program
 THANOI  .EXE  17  Towers of Hanoi Game program.
 TRIANGLE.EXE  18  Triangle Solver program.
 TURING  .EXE  22  Turing Machine simulation program.
 TURING  .TXT  22  Tutorial text file for the TURING.EXE program.
 XPRES   .EXE  21  Extended Precision program.
 XPRES   .HLP  21  Help file to accompany XPRES.EXE program.
 XPRES   .TXT  21  Tutorial text file for the XPRES.EXE program.
 YFUNX   .EXE   2  Rectangular Functions Y=F(X) program.
 YFUNX   .TXT   2  Tutorial text file for the YFUNX.EXE program.



AVAILABLE DISK FORMATS
==============================================================================
The programs are made available free to anyone who supplies pre-formatted
floppy disks.  Either 5 1/4 inch or 3 1/2 inch floppy disks of either high or
low density can be used.  The 3 1/2 inch disks are more durable and hold more
information and are thus preferable.  A higher density disk is also preferable
to a lower density one, since the higher the density the fewer the number of
disks that need to be handled.

The programs are normally distributed in self-extracting archive files that
are called packages.  The most significant programs are in the single file
called PACKAGE1.XXX which can be copied or transferred on one high density
(1.44MB)  3 1/2 inch floppy disk.  An accompanying installation program will
automatically install all the files for you.  (You can manually install the
files yourself by copying the file PACKAGE1.XXX to a hard disk, renaming this
file as PACKAGE1.EXE and then executing the file.)  A hard disk is normally
required to unpack the programs if they are received in this archived form.
But once extracted, individual program and documentation files may be copied
to and used with any kind of floppy or hard disk.

Other files in the above list that are not in the first PACKAGE1.XXX file are
in a second file PACKAGE2.XXX which requires a second high density floppy
disk.  Each package is a very large file which by definition fills almost all
the space on a high density disk.  In fact the disk size is the limiting
factor which determines how much can be placed in a single package file.
Thus there is only one package available per disk.


HOW TO ACQUIRE THE PROGRAMS
==============================================================================
To receive a package of programs you can send a high density 3 1/2 inch pre-
formatted disk and a self-addressed stamped envelope or floppy disk mailer to
the author's snailmail address below.  Your disk will be filled with as many
programs as possible and returned in the envelope you provide.  The author
only provides software, not envelopes or disks or postage.


GENERAL INTERNET FTP SITES
------------------------------------------------------------------------------
An alternative is to locate a smaller package which contains only a few sample
programs but which is immediately accessible on some BBS systems as well as
the INTERNET.  If you know how to perform ftp file transfers over the INTERNET
you may find a sample package on one of the more popular MS-DOS archive sites.
Note that on UNIX systems the filename may be in all lower-case letters.  The
subdirectory name should be related to math or education and usually ends in
/math.  The filename to search for is jkmath??.zip.  Sites other than those
listed below may be discovered by using the program ARCHIE to search for a
file like jkmath??.zip.


SITE:       rigel.acs.oakland.edu
DIRECTORY:  /pub/msdos/math
COMMENTS:   The site is also known as oak.oakland.edu and is the SimTel
            Software Repository; Oakland University in Rochester, Michigan.

SITE:       ftp.wustl.edu
DIRECTORY:  /systems/ibmpc/msdos/math
COMMENTS:   The site is also known as wuarchive.wustl.edu and mirrors the
            SimTel Software Repository; Washington University in St. Louis.

SITE:       ftp.wustl.edu
DIRECTORY:  /systems/ibmpc/garbo/math
COMMENTS:   This is a mirror of the garbo site located in Finland.

SITE:       garbo.uwasa.fi
DIRECTORY:  /pc/math
COMMENTS:   Located at the University of Vaasa in Finland; moderated for
            high-quality MS-DOS and Windows programs.


Versions of the sample package are named JKMATH??.ZIP where ?? is the version
number.  For example, JKMATH11.ZIP is version number 1.1 of a sample package.
After trying the programs in the sample package you will be in a better
position to decide if you want to send disks for additional programs.


MATH & EDUCATION-SPECIFIC INTERNET ARCHIVES
------------------------------------------------------------------------------
In addition to general INTERNET archive sites, you may find a few sites that
specialize in mathematics or science education.  These include:

SITE:      archives.math.utk.edu
COMMENTS:  can be accessed using gopher port 70 or using anonymous ftp.

What is available at these sites is usually best documented by index files
or other general listings available at these sites.  This information can
only be provided by these sites, not by the author.  You may wish to exhaust
these possibilities before resigning yourself to sending floppy disks via
snailmail.  Individual files to look for would begin with the letters JK, and
have names like JKBUFON.ZIP, JKCALC.ZIP, JKLOAN.ZIP, JKPOLPM.ZIP, JKPROPC.ZIP,
or JKTURING.ZIP.

The author is sympathetic to those in countries other than the U.S.A. who
find it difficult to obtain U.S.A. postage and otherwise make arrangements to
get additional files through snailmail.  Your mail may be subject to
electronic security checks or there may be import duties or other obstacles.

As a last resort, if your home site provides an anonymous ftp incoming or pub
directory where large files may be uploaded (at least on a temporary basis),
you may be able to make arrangements via E-Mail for the author to PUT files
on your home site.  Of course you should first check with your system
administrator whether this is even feasible at your home site and you should
first exhaust other possibilities including searching archives.math.utk.edu
for individual files.  For some non-U.S.A. country sites it may be easier to
arrange to have files PUT on your ftp site than it is for you to GET files
that don't exist on any system.  The author's home site has extremely limited
disk space and does not provide public access.

IT IS NOT FEASIBLE TO REQUEST THE AUTHOR TO SEND SPECIFIC FILES NOT IN THE
SAMPLE PACKAGES VIA UUENCODED E-MAIL.  SORRY!


THE AUTHOR'S SNAILMAIL ADDRESS
==============================================================================


                           John Kennedy
                           Mathematics Department
                           Santa Monica College
                           1900 Pico Blvd.
                           Santa Monica, CA  90405
                           U.S.A.


FURTHER INFORMATION
==============================================================================
Any technical questions or comments about any of these programs may be
referred to the author by any of several means including E-Mail (Internet or
CompuServe), voice telephone, or snailmail at the above address.


Internet E-Mail Addresses:  jkennedy@smc.edu  or  71514:751@compuserve.com

CompuServe User ID Number:  71514,751

Voice phone messages:       (310) 450-5150 Ext. 9721  (any time day or night)
