Software Philosophy
Over the past few years, with the aid of faculty and students, we
have been creating commercial level educational software for use
in and out of the mathematics classroom. These programs can be used
by instructors for classroom demonstrations as well as by students
for exploration and solving problems. A major consideration in
designing our software was to keep the number of (fumbling) keystrokes
the instructor needs to make in front of the class to a minimum,
particularly as far as entering numbers is concerned.
Rather than create one massive comprehensive package that would take
weeks of class time to learn, we decided to write many small packages.
Each of these packages is designed to do one thing very well, and be
used effectively with no, or minimal, training.
In view of the fact that we teach about 8,500 students each semester,
it is impossible for us to have a computer lab large enough to
accommodate them all. However, there are many departmental and
public labs on campus, and about 15% of our students have access
to computers at home or through friends. To make use of these untapped
resources, we decided that all the software we created could be copied
for free without fear of legal reprisals. We encourage anyone to
take copies of our software. All our packages contain the following
statment:
This program may be freely distributed by any means, including
bulletin boards, provided that there is no fee or charge or
consideration of any kind which is in excess of $8. However,
we retain all rights to this program.
Our software has been designed to have a specific educational impact.
It is inclined for students learning mathematics, not for faculty
doing research. Consequently, wherever possible it is not a blackbox,
but is designed to take the gruntwork out of the calculations.
In general these programs require 640k, a CGA graphics card or better,
and MS-DOS Version 3.00 or above.

Educational Categories
Our software falls into four categories:
- Are You Ready?
- Slide Shows
- Teacher Aids
- Toolkits
Are You Ready: the purpose of this series is to make
available to students computer programs which review those
materials from prerequisite courses that are essential for
success in the present course. In addition, the programs
identify a student's weak areas and recommends appropriate
action (usually references are to Schuam's Outlines because
they are inexpensive and are not revised every few years).
They cover courses from Intermediate Algebra to Ordinary
Differential Equations.
Slide Shows: this is a collection of screen images,
primarily graphical, which anyone can view. They are usually
images of functions which would be difficult, or impossible,
to draw on the board. Some of these are animated and some zoom
in on the function. They cover material from College Algebra
to Partial Differential Equations.
Teacher Aids: these were written primarily as aids
for middle and high school teachers, although many are of
interest at the college level. They are subdivided into
three groups of programs, namely Interactive Demos, Logical
Games and Puzzles, and Simulations.
Toolkits: these are interactive exploratory tools
which are aids to instructors and students, both in and out
of the classroom. All have drop-down menus and are
self-documenting, with on-line, context sensitive help.
They are of use from Beginning Algebra to Fourier Series.

Are You Ready?
The following RUR programs have been released:
- Are You Ready for
Intermediate Algebra?
- Are You Ready for
College Algebra?
- Are You Ready for
Business Calculus?
- Are You Ready for
AP Calculus (AB)?
- Are You Ready for
Calculus I?
- Are You Ready for
Calculus II?
- Are You Ready for
Calculus III?
- Are You Ready for
Ordinary Differential Equations?

Slide Shows
Composition of Functions
- Graphical Construction of f(g(x))
- Graphical Justification of the Chain Rule
Fourier Series
...this slide show consists of graphs of various
functions together with some of their Fourier Series approximation
- Triangular Wave
- Square Wave
- Saw Tooth Wave
- Cosine Expansion of Sine
- Interrupted Square Wave
Functions
...this slide show consists of graphs of various
functions
- sin (1/x)
- x sin (1/x)
- Continuous, but not differentiable
- x and |x|
- sin x and |sin x|
- sin x/x
- (1-cos x)/x
- a^x and its derivative
- sin 2 pi x + sin 2 pi ax
Newton's Method
...this slide show consists of graphs of
various demonstrations of Newton's Method
- Method - Example 1
- Method - Example 2
- Problem - Example 1
- Problem - Example 2
- Problem - Example 3
- Problem - Example 4
- Problem - Example 5
- Problem - Example 6
Numerical Integration
- Left Endpoint Method
- Right Endpoint Method
- Midpoint Method
- Trapezoidal Method
- Numerical Method
- Increasing/Decreasing Functions
- Concave Up/Down Functions
Ordinary Differential Equations
- One parameter family of curves
- The US population and logistic growth
- The cooling of coffee
- Numerical Methods - Euler
- Numerical Methods - Runge Kutta 4
- Damped free vibrations
- Series solutions
- Bessel Function
PDE 1,
PDE 2,
PDE 3
...these slide shows consist of graphs of
numerical solutions of a particular partial differential equation, viz.
the wave equation, with three different initial conditions
Taylor Series
...this slide show consists of graphs of
various functions together with some of their Taylor polynomials about
the origin
- ex
- sin x
- cos x
- 1/(1-x), -1 < x < 1
- 1/(1-x), -2 < x < 2
- arctan x, -1 < x < 1
- arctan x, -2 < x < 2
- (1+x)1/2, -1 < x < 1
- (1+x)1/2, -1 < x < 3
- log (1+x), -2 < x < 2
Trouble
...this slide show consists of various graphs of
the same function as seen over different domains
- [-.1, .1] with about 160 sample points
- [-1., .1002] to [-.1, .0998] in steps of -.00005
- [-.0845, .0845] to [-.082, .082] in steps of -.0005
- [-.0006, .0006] to [-.003, .003] in steps of .0012
Vibrating Strings
...this slide show shows how two traveling
waves generate a stationary wave
Graphing Separable Equations
...this slide show shows the graphical construction of f(x)=g(y).

Teacher Aids
Interactive
Demos 1
- grid: constructs grids to your specification for
projection onto a white-board ... you can select one of the
built-in grids or create your own
- polar grid: constructs polar grids to your specification
for projection onto a white-board ... you can select one of the
built-in grids or create your own
- polygons: draws regular polygons inside a circle ...
after the number of sides is entered by the user, it then computes the
numerical value for the area and for (half) the perimeter for each polygon
- trig 1: designed to help understand the sine and cosine functions
- trig 2: carries on where "trig 1" left off ... as the angle
sweeps through 720 degrees the sine and cosine waves are drawn
- trig 3: shows how the graph of the tangent function is
generated from the unit circle
- xN sin(1/x): deals with the three functions x sin (1/x),
x2 sin (1/x), and x3 sin (1/x) and their behavior
near x=0
Interactive
Demos 2
- galton box: demonstrates the binomial distribution by dropping
100 balls down a triangular peg-board, called a Galton Box
- number line: a demonstration which starts with the number line
marked with integers from 1 to 10, adds the number 0, adds the integers
from -10 to -1, rotates this line, superimposes the two lines -- one
vertical and one horizontal -- to construct a 2D coordinate system,
and puts dots on the plane at the lattice points
- percent - circle: allows you to graphically compare the
angles in a circle to percents of a circle
- percent - square: allows you to graphically compare
fractions and percents of a square region
- shuffle: is useful for dividing a class of n students into
groups in a random way
- temperature: first shows the temperature on a thermometer
taken once an hour over a 24 hour period starting at midnight ...
then shows the same temperatures in a way that introduces the concept
of a bar graph
- venn diagrams: shows the graphical meaning of the union,
intersection, and relative complement of two sets, A and B
Logical Games and Puzzles 1
-
These are games which require logic and mathematics. They are
designed for middle school and above. The rules are contained in
each program.
- blackbox
- the factor game
- the factor game for two players
- flower
- get the point
- get the point - random
- hurkle 1 and 2
- master
- not one
- the rainbow game
- secret number sentence
Logical Games and Puzzles 2
-
These are games which require logic and mathematics. They are
designed for middle school and above. The rules are contained
in each program.
- 3 digits
- add and multiply
- coin piles
- coin swap
- grocery bingo
- lockers
- prime number game
- quadratic bingo
- reverse
- slither 1,2,3, and 4
- word arithmetic
Logical Games and Puzzles 3
-
These are games which require logic and mathematics. They are
designed for middle school and above. The rules are contained in
each program.
- beans
- number puzzle
- tax collector
- think-a-dot
Simulations
- acute triangles: when we are asked to draw a triangle,
we usually draw an acute triangle, i.e. a triangle where all three
angles are less than or equal to 90 degrees ... we seldom draw an
obtuse triangle ... which triangle, acute or obtuse, is really more
likely?
- carnival: at carnivals, a game is played by tossing a coin
onto a large table ruled with squares the diameter of the coin ... you
win a prize if the coin you toss does not cover, or touch, the corner
of any square ... if you randomly throw the coin onto the table, what
are your chances of not winning a prize?
- fair coin 1: attempts to show that the coin we are
flipping is a fair coin
- fair coin 2: attempts to show what happens when we bet
on the flipping of a fair coin
- fair coin 3: attempts to show that the coin we are flipping
is a fair coin, and also shows what happens when we bet on the
flipping of this coin
- last names: imitates the proliferation and extinction of
English last names from 1350 to the present, and beyond ... during
that time about 70 percent of the existing last names disappeared
... the question is whether this is due to chance or some type of
catastrophe
- party: simulates a party
- sea battles: simulates a sea battle in the early 1800's
at the time of the Battle of Trafalgar and Lord Nelson
- triangle: try the following experiment -- draw an equilateral
triangle and randomly select a point on one edge ... randomly select
one of the three vertices of the triangle ... midway between it and
the old point draw a new point ... treat the new point like the old
point, i.e. randomly select a vertex and draw the point midway between
the new point and that vertex ... continue doing this a few
thousand times ... how much of the triangle do you think will
be covered by this construction?
- unfair coin 1: attempts to show that the coin we are
flipping is an unfair coin
- unfair coin 2: attempts to show what happens when we bet
on the flipping of an unfair coin, biased 55 to 45 in head's favor
- unfair coin 3: attempts to show that the coin we are flipping
is an unfair coin, and also shows what happens when we bet on the
flipping of this coin

Toolkits
-
baye's theorem: deals with Probabilities,
Conditional Probabilities, Baye's Theorem, and how they are
used in Search and Rescue to look for a missing subject lost
in a hostile environment.
-
complex numbers: will evaluate complex expressions,
find the nth roots of a complex number, and display
complex numbers graphically.
-
conics: plots conics in standard form, as well as
quadratic curves. The constants that usually occur in these
formula, viz. a, b, c, d, e, f, h, k, and r, can be
changed at will and the curves redrawn. Demonstrations of the
construction of the ellipse, hyperbola, and parabola are
available, as is the reflection property of the parabola.
-
division algorithm: does tasks to help you carry
out several polynomial algorithms, such as Euclid's algorithm,
Sturm's algorithm, and the algorithm to complete Bezout's
identity.
-
findpoly: challenges you to determine the equation
of a polynomial given information about its graph and that of
its first two derivatives.
-
fortune: a program that encourages you to
experiment with changing parameters and fitting curves. It
allows you to enter expressions for up to two functions
f(x) and g(x), containing parameters a,
b, and c, and then plot those functions. The parameters
a, b, and c may be 'tuned' and the new functions can
then be plotted.
-
fourier: graphs the first 20 Fourier
'polynomials' of y = f(x), after you enter
f(x) and the period 2L. You can either
enter the Fourier coefficients yourself (fast, and accurate)
or have the computer perform numerical integration to evaluate
them (slow and approximate).
-
feuerbach's theorem: allows you to experiment with
the size of a triangle and see the resulting incircles,
excircles, circumcircles and nine-point circles. It is
designed to give a pictorial representation of Feuerbach's
Theorem.
-
graph theory: allows you to experiment with
undirected, unweighted graphs. It can also decide whether a
graph is planar, connected, has an Euler Circuit, Euler Path,
or Hamilton Cycle. The graph can have up to 26 vertices.
-
histogram: calculates the mean, median, and standard
deviation of a data set. It will also generate a histogram, a
bar chart, a box and whisker plot, and a stem and leaf plot.
-
identify: challenges you to identify the function
form its graph or from a numerical table of values.
-
implicit: tries to plot implicit functions of the
form f(x,y) = c. Thus it can be used to plot
implicit functions, defined by f(x,y) = 0, or contour
lines (level surfaces) of the function z =
f(x,y).
-
integral: a program that allows you to compute
the numerical value of a definite integral by various
techniques, and also to compare the efficiency of these
techniques. The integrand may contain parameters a, b,
and c.
-
interpol: allows you to enter a data set, and then
you can select how you would like this set interpolated.
-
iterate: allows you to enter a function
f(x) and it will generate various results related to
the iterates f(f(x), f(f(f(x))), ..., of
f(x).
-
limits: tries to find the limit of f(x) as
x goes to x0, where x0 can be
finite or infinite. The function I may contain parameters
a, b, and c.
-
linalg: a comprehensive linear algebra package.
-
lineint: a program that allows you to create
paths in the xy plane and numerically evaluate line integrals
around these paths.
-
linsys: a program that solves linear systems of
equations in two unknowns. Its primary purpose is to
demonstrate the graphical interpretation of row reduction.
-
oldes: plots numerical solutions of 1st and 2nd
order linear differential equations containing parameters
a, b, and c. These parameters can be 'tuned' and the
solution replotted. A user supplied function, as well as a
user supplied power series, can also be plotted.
-
polar: plots polar equations of the form r =
r(t), where t is the angle, as well as two
dimensional parametric equations of the form x = x(t) =
y(t). The functions r, x, and y, may contain
parameters a, b, and c. Up to two equations can be
plotted, and then you can "twiddle" the parameters and replot
the equations.
-
root find: a program that allows you to compute
the real roots of a function f(x) by various
numerical techniques, and also to compare the efficiency of
these techniques. f(x) may contain parameters a,
b, and c.
-
sequence: is a program that allows you to create
sequences a(n), and then shows the values of
successive terms both numerically and graphically. It also
computes the partial sums of sequence. Also included is a
demonstration of Riemann's rearrangement theorem. The
sequence a(n) may contain parameters a, b, and
c.
-
simplex: is a program that performs the Simplex
Method in three different modes, viz. having the computer show
the answer, having the computer show the pivots, or having the
user go through the step by step method.
-
slopes: will graph the slopes (direction field) and
the integral curves of dy/dx = f(x,y), where
f(x,y) = F(x,y)/G(x,y). The functions
F(x,y) and G(x,y) may contain parameters
a, b, and c.
-
spanish dictionary: is an English to Spanish
Dictionary of Mathematical Terms.
-
systems: plots numerical solutions of systems of up
to 6 first order ordinary differential equations containing
parameters. These parameters can then be 'tuned' and the
solution replotted. A user supplied expression and a user
supplied data set can also be plotted.
-
taylor: graphs the first 20 Maclaurin
Polynomials (i.e. Taylor Polynomials about x = 0 of
y = f(x), after you enter f(x) and the
Taylor coefficients.
-
truth tables: displays truth tables. Expressions
are constructed from the statements p, q, and r, and
the four operations, or, and, not, and implies.
-
twiddle: a program that encourages you to
experiment with changing parameters and fitting data. It
allows you to enter a function f(x), containing
parameters a, b, and c, and then plot that function.
The parameters a, b, and c may be 'twiddled' and the
new function can then be plotted. A single data set can also
be plotted, so that fitting a curve to a data set can be
performed 'by eye'. If a data set is plotted, the numerical
value of the least squares fit between f(x) and the
data set can be displayed.
-
twodmaps: allows you to experiment with two
dimensional affine transformations. you can experiment with
fractals, find eigenvectors by eye, show the effects of a map
on a set of points, and show the solution of a set of two
linear equations.
-
units: converts between various types of units.
-
venn: displays Venn diagrams. Expressions are
constructed form the sets A, B, C, S (universal set), and
E (empty set), with the four operations union,
intersection, relative complement, and complement.
-
vote: allows you to experiment with four different
voting methods, the Plurality Method, the Borda Count Method,
the Plurality With Elimination Method, and the Method of
Pairwise Comparisons.