Exploring Integrated Math Topics + a Programming Language with an Eye towards Developing the Content of a Standard Pre-College Mathematics Curriculum

by Kirby Urner
March 15, 2001


I’ve used the math-teach forum as a scratch pad for evolving some curriculum segments. A curriculum segment is a patch of related topics and activities that might be revisited at different levels of difficulty and sophistication. Another, perhaps better, word for a segment is a "fabric" or a "weave". There’s an emphasis on achieving a kind of seamless blend of themes and patterns, which assists students wanting a sense of the big picture (overview is what seems to be lacking in a lot of current math teaching).[1]

One example of a fabric is the whole patch of topics surrounding sequences and series, figurate numbers, polyhedra and Pascal’s Triangle. Conway & Guy develop this weave in The Book of Numbers (Springer-Verlag, 1996), whereas I’d independently hit on a similar approach in my Numeracy and Computer Literacy series. I add the Buckminster Fuller element, with mention of the jitterbug transformation, geodesic spheres, viral protein sheaths and buckyballs.[2]


Another example of a fabric blends topics from cryptology, probability and group theory. Here we develop the idea of a simple ‘clubhouse code’ based on letter substitution, and use this as a segue to the group theory concept of permutations, and multiplication as the composition of permutations. This framework allows us to discuss the properties of a group, in contrast to those of semi-groups, rings and fields. The next step is to use the new concepts to develop more sophisticated enciphering strategies, wherein the substitution dictionary continues to change throughout the encryption process. This provides a useful segue to historical threads, such as the storylines involving German U-boats, the Enigma code, Alan Turing and Bletchley Park ala Neal Stephenson’s bestseller Cryptonomicon.[3]

Both of these fabrics contain material we could be phasing in as early as first or second grade...

Fabric #1: Number and Geometry

Sphere packing and polyhedra (built with tooth picks and little marshmellows, for example) are a popular topic with smaller kids (I know from experience—and not just because of the marshmellows—modeling clay works too). Euler’s Law (V+F=E+2) makes sense to slightly older kids, as does Descartes’ Deficit (720 degrees). The idea of triangular and square numbers, which may be modeled by packing spheres (as in ‘Pool Hall Math’ -- see math-teach archives), makes sense early too, with ‘flat shaped numbers’ becoming ‘spatial’ (my ‘beyond flatland’ theme) rather early in the game (ala The Book of Numbers). Fuller’s 10 F^2 +2, for the number of spheres in a cuboctahedral shell, identical to the number in an icosahedral shell, fits into this context. That the number of spheres is the same for both shapes is shown by the jitterbug transformation, which hyperlinks to phi (the cuboctahedron’s square cross-sections transform into the icosahedron’s golden rectangles) and provides a segue to virology, buckyball chemistry, crystallography and architecture.[4]

Fabric #2: Permutations and Cryptology

The idea of a ‘clubhouse code’ starts to make sense as soon as children have some mastery of the alphabet, and an understanding of why you might want to keep a message secret and therefore indecipherable by anyone but the intended recipient. Games of chance, ideas about probability, enter the picture here, explorable with polyhedral dice (not just hexahedra) -- note the hyperlink to Fabric #1 here. Using permutations to discuss the composition of functions makes sense at the middle school level, where we also should be developing the idea of modular arithmetic e.g. 240 mod 13.



Aside from ‘beyond flatland’, another major theme promulgated by my Oregon Curriculum Network (a kind of Oriental Rug Factory for curriculum fabrics—math-related especially), is ‘beyond calculators’. Since the 1980s, programming languages have matured considerably, and since the 1990s we’ve had the option of teaching Python as a first language. The synergetic blend of procedural, functional, and object-oriented programming styles available through Python provides a good nucleus of concepts which will serve a student well when branching out to other languages later, whether in the direction of C/C++/Java, LISP/Scheme, or any of several other well-traveled pathways.

Having some knowledge of a generic programming language, developing familiarity with it by coding around interwoven math topics, is going to yield many benefits later on in life. Early exposure (but not too early) lowers the chances of developing debilitating phobias later on, and gives students a vehicle for turning math topics into opportunities for exploration and portfolio-building (programs may be saved, revisited and improved over time). Using programs written in earlier classes to tackle topics in later classes helps provide a sense of continuity and relatedness—something students need, but don’t always get, in the current hodge-podge.

In Numeracy + Computer Literacy, I use Fabric #1 to develop some graphical output capability, by synergizing Python with a ray tracer (I use POV-Ray and VRML plug-ins, but many other graphics applications would be suitable, plus there’s the VPython option, permitting an even more interactive approach based on OpenGL). This link to computer graphics is likewise a segue to what I’ll call Fabric #3, the weave on concepts relating coordinate systems, vectors, and geometric transformations as implemented by matrices or quaternions or some other apparatus (e.g. Clifford Algebra).

Fabric #3 is where we use object-oriented programming to explore the Gibbs-Heaviside vector operations, bringing in trigonometric functions, rotation matrices and so on—all of which makes more sense and is a lot more fun when one is rewarded with colorful, shadowed, perspective renderings, such as POV-Ray (or other software) provides (such colorful renderings might be transferred to T-shirts for those so inclined).



With Fabric #2, students will be able to encipher and decipher text files, using their newfound/maturing computer language skills. Given the opportunity is to encipher random passages, we have more opportunities to jump outside the math domain and capture topical paragraphs from other points in the curriculum. For example, we might choose to encipher Lincoln’s Gettysberg Address, or a speech by Martin Luther King. If students are on a network, they can practice passing ciphertext and secret keys back and forth.

Some educators may object to this focus on cryptography at an early age, suggesting that students will misuse this knowledge. However, my experience is that many in 8th grade and above develop this interest on their own, picking up memes from popular culture, and, since this material is "avoided" in school, they develop the impression that cryptography is something the "establishment" is against, i.e. this knowledge takes on a "subversive" spin. This is unfortunate, and it would be better if the schools worked in a more empowering mode, to help students develop skills and knowledge which is part of the mainstream commercial environment and net-based ecosphere. Cryptography is not inherently "subversive"—unless we craft an environment which makes it seem that way (which, perhaps inadvertently, is where we are today, in many school districts).[5]

The group theory aspect of permutations (as applied to cryptography) segues nicely to other kinds of group, such as sets of positive integers less than and relatively prime to some modulus (this is why modulo arithmetic was important). We can talk about CAIN (closure, associative, inverse, neutral element) and Abel(ian) groups. The notion of coprimes segues to Euler’s totient function, and Euler’s Theorem, of which Fermat’s Little Theorem is a special case—more topics typically covered in group theory with applications to cryptography, in that huge primes are hard to "crack" into factors (what makes RSA and some other public key systems effective).

Thanks to Python, we have access to big numbers (long integers) and don’t have to suffer the trade-offs that plagued earlier "math through programming" forays into this realm (i.e. we don’t trade away access to big numbers just because we choose to use a generic programming language, and not a strictly math-focussed or number theoretic package).[6]

We can loop back to Fabric #1 and talk about symmetry groups and polyhedra, or the group properties of quaternions under multiplication. All of these concepts will have been developed concretely, in a hands-on, interactive context, using a computer language (I prefer Python) by the end of high school. The result will be a more sophistacted and non-math-phobic mindset among students, who have a well-connected set of math-related concepts and a feel for the bigger picture.

I haven’t forgotten the calculus, and will simply point out that we have a good basis for exploring limits starting with Fabric #1, with phi and Fibonacci numbers in particular (with a link between phi and the fractal-like, recursive nature of phi-based five-fold symmetric geometries). Fabric #1 was a lot about Sigma and Pi (summations and products of a sequences respectively), and about differences between successive terms in a sequence, the discrete math analog of the differential.

With Fabric #3 (graphics/vectors), we have the standard graphing calculator topics of (x,f(x)) and might explore the calculus of the catenary for example (suspension bridges and electrical wires have this shape), which will include mention of hyperbolic trig functions. I can talk more about Fabric #4 in another post.[7]



  1. these ‘fabric’ terminology is borrowed from memetics as embodied in Fluidiom, which is also an elastic interval geometry application (http://www.fluidiom.com/)
  2. http://www.inetarena.com/~pdx4d/ocn/numeracy0.html
  3. http://www.inetarena.com/~pdx4d/ocn/clubhouse.html
  4. Jay Kappraff’s, Connections, the geometric bridge between art and science (McGraw-Hill, 1996) is also good on the root(2)-based vs. phi-based aesthetics. For an animated GIF of the jitterbug, see "Getting Inventive with Vectors" http://www.inetarena.com/~pdx4d/ocn/numeracy1.html
  5. Teachers might want to use the relevance/importance of a cryptographic "fabric" as an argument for bringing more powerful computing platforms into math classrooms, vs. "making do" with
  6. less suitable calculators for this purpose. For more along these lines, see my post to k12.math.teach:
  7. http://www.mathforum.com/epigone/k12.ed.math/glaterdphum/
  8. here’s a post to math-learn quoting an earlier curriculum writer who had to contend with this trade-off:
  9. http://groups.yahoo.com/group/math-learn/message/217
  10. or see http://www.inetarena.com/~pdx4d/ocn/catenary.html

Return to CP4E

oregon.gif - 8.3 K
Oregon Curriculum Network