[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