[Edu-sig] Brainstorming about January

Kirby Urner urnerk at qwest.net
Sat Dec 11 08:20:49 CET 2004


OK, so I'm supposedly on stage at OGI come January, doing a gig for Saturday
Academy.  I need to brainstorm content.  What better place than edu-sig.
Because it's a Python course.  Math through programming.

Here's the blurb:

===
Math & Programming: From Chaos to Python

Explore topics in mathematics by writing and modifying programs in a
contemporary computer language.

A goal of this class is to help you gain proficiency as a programmer, while
delving into number theory, group theory, chaos and fractals, cryptography,
3D graphics and more. A primary tool will be Python, an object oriented,
uncluttered, general purpose language.  For contrast and mind expansion, the
J language will also be introduced.

Instructor: Kirby Urner, with a BA in philosophy from Princeton University ,
is a computer programmer and educator. He has developed computer literacy
products for McGraw-Hill and is a former high school mathematics teacher.

Context: http://tinyurl.com/62mlb
===

Currently, my intention is to start out with Euclid's Algorithm for the GCD.
I have the following reasons in mind:

(1) Knuth hypes it in 'Art of Computer Programming' as basic basic, and core
to the whole idea of "algorithm"

(2) Guido gave us a very simple version of it:

        def gcd(a,b):
            while b:
              a,b = b,a%b
            return a

That's almost the "hello world" of Python, one could say (does something
more meaningful too).

(3) The GCD is a core concept in number theory, as it creates a basis for
"relatively prime," in turn the basis for totient and totatives.  We need
these later concepts to play with tiny groups, easy to grasp and appreciate
(the "microbes" of group theory).

However, I think the best way to understand the GCD is using visual or
tactile metaphors:  we have two lengths of wall and want to find the biggest
brick that will tile both seamlessly.  If one brick tiles the other, we're
done.  If not, there's a remainder, which, broken off, becomes a smaller
brick relative to the second largest to begin with -- and so on in a
recursive convergence to 1 or some bigger number.

My eventual goal is to explain RSA.  A message has a finite orbit in a
finite group, where powering is the operation.  Power it a few times, and
it's encrypted.  Power it a secret number more times, and you're back to
square one.  To get the secret, you need the prime factors of N, which is
public. But huge composites with only two prime factors are hard to crack.
We don't have an algorithm that's very successful or efficient against
those.  So RSA is strong, very strong.

The course is not all group and number theory though.  I plan to get really
into polyhedra with Povray, as per my usual.  This is where I get to use the
Bucky stuff, which is secure and complete at this level -- just some models
with easy relationships, great background and training if your future career
plans include anything like graphic design.

Feedback welcome.  I may take it off list to an opt-in newsletter, later,
when it comes time to report back on how these plans are actually
field-testing.  Given the PSF grant fell through, the actual course
materials will likely stay closed source and proprietary for awhile, to give
Saturday Academy something to run with on a more exclusive basis.  If
enrollment builds, we'll know it's camera-ready, and release it more widely.

Kirby




More information about the Edu-sig mailing list