# [Edu-sig] Write Programs to Learn Mathematics

Bryan Hann bryan.hann@pobox.com
Wed, 03 May 2000 05:59:38 +0100

```Although I have some interest in introducing students to equations
of lines by means of software that will plot (eg) "y=mx+b" and let
the students observe the line changing as the parameters change, I
have more interest in having them figure out how to program a machine
to draw a straight line between two points on the screen.  I see no
reason why without some programing guidance, a student should not
be able to derive the equations they need to learn.

With prospects of a grade 8 teaching position this Fall, this is
taking on new urgency, so I an unlurking to share my thoughts and
(I hope) find helpful suggestions, or perhaps others who might
wish to do something similar this Fall.  Some of the things I
would be intersted in doing (at different stages) would be:

- to introduce trigonometry through the problem of writing
software to draw circles; have them carefully measure a large
circle and hand-generate a table; introduce a series of
polynomial terms that will generate the numbers; hear the
'oohs' and 'aahs' (I hope!)

- to introduce and develop linear algebra through operations
needed to remap coordinates on the screen via linear trans-
formations (eg moving the origin from the top left corner of
the screen to the middle, and have the y-axis 'positive up';
when used to affine transformations, perhaps some fractal
image compression?

- to introduce different algebraic systems through their
construction from simpler systems (integers as pairs of naturals
with appropriatly defined equivalency and operations; positive
rationals as pairs of integers with *different* equivalency and
operations; Gaussian (complex) integers as pairs of integers with
different operations still, etc). What would otherwise be dryly
abstract can be made very concrete by having students write
functions that will compare two pairs and determine if they are
in the same equivalency class, functions that will perform the
desired operations, and functions that will take an arbitrary
pair and return an equivalent pair in some canonical form.  These
are the kinds of constructions that are commonplace in higher
algebra (eg imbedding a ring in a field).  Making it concrete
enough for them to get it in their blood at an early stage seems
a good thing.

- introduce logarithms by having them play the guessing game (I
am thinking of a number between 0 and 100.  You guess repeatedly,
and I will tell you if your guess is low or high.)  What strategy
do you use?  Both sides of the guessing game are easily programmed.
Have students program both sides and make proceses play each other
over a network.  Compile statistics for games of different sizes.
Plot the results.  How many guesses does it talke to win a game of
a certain size?  When n is not a power of two, ln(n) is not an
outcome but an expectation.  Probability?

These are just some of the avenues I would like to follow.  I
suspect that by making the abstract concrete, programming will
allow many ideas to be introduced (with a kind of clarity and
rigour!) at an earlier age than is otherwise feasable.

Comments?  Criticisms?  Are any of you doping similar things now?
Do any of you have interest in exploring these things with me?

- Bryan Hann

```