Deep background &endash; My preference in using technology in
teaching mathematics is that the software be designed so that it is
generally used by the student for exploration rather than by the
teacher for demonstration. This can be justified by learning theories
that have students constructing their own meaning for concepts or by
a preference that students remain active. Thus it is important that
the software be accompanied by concrete assignments designed to help
the students learn from manipulating examples.
Suggested lessons -
The various approximation methods described loosely as Riemann
sums all converge to the signed area under a curve in the sense
that with enough subdivisions the area covered by the
approximation is visually indistinguishable from the area under
the curve. [Pick your favorite definite integral and have the
students find the number all the methods converge to.]
When the integral exists, the answer reached by the
approximations converge to a single answer in the naive sense of
convergence. Taking more and more subdivisions gets you closer and
closer to fixed answer.
Different methods converge to the answer at different speeds.
[Ask the students how many subintervals are needed to get each
method within 0.01 or 0.001 of the answer everything converges
to.]
For polynomials of low enough degree, some of the methods are
exact with a single subinterval. [With the polynomial
examples, which methods reach the place they will converge to with
a minimal number of subdivisions.]
When the integral fails to exist (e.g., the second singularity
example) the approximations never settle down. [How does the
behavior with singularity 2 differ from the behavior with
singularity 1?]
As the approximation area becomes indistinguishable from the
area under the curve, the curve of the numeric integral becomes
indistinguishable from the curve of a symbolic anti-derivative
shifted to cross the X axis at the left edge of the interval of
integration. [Have the student enter a symbolic
anti-derivative and compare it with the numeric
integral.]
Follow-up lessons -
The visualization provided by the applet is generally very
convincing. It is not however a proof, and it does not generalize.
That is why mathematicians like deltas and epsilons. How do you
translate the intuitive "enough intervals gets close enough" into
a rigorous statement?
The number of subintervals needed for a desired accuracy with
a specified method can be computed algebraically. Do the examples
back up the computations?
When learning various symbolic integration rules, there is a
pedagogical value in verifying that the rules match the pictures.
For a positive sense this could be done with f(x) = sin(x) and
G(x) = -cos(x). For a negative sense we could use your favorite
student mistake, e.g. f(x) = x*cox(x) and G(x) = x^2/2*sin(x), to
show that the naive product rule does not work.
The symbolic rules should be tied to pictures. Students tend
to think of algebraic formulas and graphs as unrelated to each
other.
Numeric integration is very robust. Most students will net be
able to come up with a definite integral over a continuous
function for which this applet can't find the solution with 4 or 5
digits of accuracy. It is easy to produce function for which
closed form anti-derivatives are hard to find.
At the same time, numeric techniques are subject to round off
error. If your students look at the integral of 1 from -5 to 5,
they will see that quadrature has a roundoff error on a problem
easily done by non-calculus methods.
Considerations for effective use - (Your mileage may vary)
It seems best if students are first introduced to using
applets in a setting where the students are at computers and an
instructor is in the room. No matter how user friendly the
software and how clear the instructions, each class will develop a
new way to crash the system.
Experience shows that students should have to make an
evaluation of what they are seeing with the software. The initial
questions do not have to be deep, but they need to get the
students past passive button pushing.
The students should have a follow-up assignment that requires
them to use the applets without the instructor present.
After 3 tries with software (teacher demo, followed by class
work with teacher present, followed by assignment) there is a
reasonable chance that the students will use it even when it is
not assigned.
Design considerations -
Java and a browser - This was chosen so that the students can
use the software without needing proprietary software. In
particular, they can use it from home.
Java 1.1 - As the applet is written, Java 1.2 does not run on
the Macintoshes that my students use. The applets seem to run with
Internet Explorer on all platforms. Netscape uses its own version
of Java, and this seems to cause problems.
Single jar file - I never like to use software in real time
unless it is on my network. A single Jar file makes that
manageable if others want to move the file to their local
server.
Source code available - You may want to customize the applet
for local considerations, You are also welcome to use the code to
help you create new applets.
Help page - This gives useful information and should be
consulted when the applet is behaving badly. The help page
includes a list of functions recognized by the parser.
Exact values and error estimates - (Or lack of these
features.) To include these features I would have had to either
restrict the applet to a list of specified functions with the
anti-derivative hard coded, or develop a symbolic integrator that
would deal with any function a student could type in. Both these
choices seemed impractical.
Example list - This is an addition to the current version of
the applet. The examples were chosen to illustrate lessons I can
see as important. Let me know if you have other good
examples.
Known limitations -
Numerical techniques have troubles with singularities. Java
treats undefined quantities as NaN, or "not a number." Adding NaN
to a number gives NaN.
When you enter a new function the applet tries to produce an
appropriate range. Once again, singularities and undefined points
will cause problems.
Java seems to think undefined variables have value 5.
The most common source of problems for students will be syntax
problems with the function, particularly implicit multiplication.
The parser I used does not recognize the term 2sin(x). Instead it
looks for 2*sin(x).
All values are obtained numerically and are subject to
roundoff error and other problems of numerical methods.
Fair use considerations -
Teachers of mathematics may freely use this software for
teaching their students. They may host the applet form a server at
their institution.
The source code is provided so that instructors may modify the
software to their needs. Politeness dictates that revisions give
appropriate credit to those whose work in built upon.
If you find this applet or others that I have created to be
useful, let me know. Suggestions for improvements are also
welcome.
If you plan to sell this applet alone or in package, you need
to ask permission. This does not include charging for the cost of
media.
The best way to repay the author is to create other applets
that he can use for his class.
The source is well documented,
but all the files have been put into a single text file, so you will
need to rename the file and separate into classes before
compiling.