math through programming

Kirby Urner urner at
Tue Feb 13 22:04:51 CET 2001


below is my most recent post to math-learn, clearly a 
response to something earlier -- but with enough standalone
content to give the idea.  

Earlier posts in the same thread include Python source 
code for computing Pascal's Triangle and comparing the 
results with balls randomly falling, pachinko-style, 
through a triangulated grid of pins (some of you may have 
seen the well-known science museum demo showing the bell 
curved result).

Thanks again to Tim Peters for cluing me re 'Concrete 
Mathematics' which I went out and grabbed some months ago
(if edu-sig had a search feature, I'd go find where he 
first posted about it, as an easier intro than Knuth's 
"telegraphic" 'Art of Computer Programming' -- and indeed, 
that's how this text evolved, from notes around the 
mathematical preliminaries leading into Knuth's magnum 

I'm cross-posting this here as a snap-shot of my ongoing
effort to combine the math learning process with a 
strong programming element, to create a hybrid more 
adapted to life in the 21st century.  The mass-education
juggernaut has too much inertia to steer in this new 
direction any time soon, but there's always the hope 
that more alert passengers will jump overboard and swim 
for their lives :-D (good to have this alternative more
seaworthy craft in the vicinity, given the more 
conventional curriculum simply isn't).

complete thread: 



Subject:      [math-learn] Re: Intro to Probability
Author:       pdx4d at
Date:         Tue, 13 Feb 2001 16:33:03 -0000

> So the short way to write (n-k+1)! is just n!/(n-k)! as

> that cancels all terms except n(n-1)(n-2)..(n-k+1).

Right, a typo, thanks to a close reader for catching that.  What I 
wanted to express with (n-k+1)! were the k terms in n(n-1)...(n-k+1), 
but of course these aren't equivalent. What I need is notation to 
expressing a "falling factorial" running for k terms, and, indeed, 
such notation is offered in 'Concrete Mathematics' by Graham Knuth 
and Patashnik (Addison-Wesley, 1994), pp 47-48.

The notation can't easily be written in ascii unfortunately, but
"n to the m falling" is written [n to the m-underbar].  With "n to
the m rising" = [n to the m_overbar].  "These functions are also
called 'falling factorial powers' and 'rising factorial powers',
since they are closely related to the factorial function n! =
n(n-1)...(1).  In fact n! = [n to the n-underbar] = [1 to the n-

So anyway, what I should have written was [n to the k-underbar].

This book 'Concrete Mathematics' I've mentioned before on math-teach,
as exemplary of what I'm aiming for at the college level with my 
K-12 curriculum writing.  It's used for computer science students 
a lot, but it's also just a fine introduction to a lot of concrete 
(not too abstract) mathematics, including discrete probability, 
binomial coefficients and elementary number theory.

I'm also trying to boost geometry content, by moving 'Beyond 
Flatland' (off the plane) -- which links to a 'Beyond Calculators'
push as well (as I haven't seen many rotating polyhedra on 
calculator screens -- though maybe these have appeared in Japan
by this time, a market typically ahead of the USA's in the 
calculator department).

As I wrote to a math educator recently by email:

   You may remember from emails past that I'm one of those 
   looking for ways to incorporate more of Bucky Fuller's 
   contributions into early math ed.  I also push a "math
   through programming" approach, and converge it with the
   Fuller-informed spatial geometry.  "Beyond Flatland" and 
   "Beyond Calculators" summarize my two pronged strategy 
   to revamp math ed pedagogy.

   I've just put up a new essay, well-illustrated, which 
   looks at the "Beyond Flatland" approach:

   And here's a review of my "Beyond Calculators" initiative:


More information about the Python-list mailing list