Python for Wanderers

First posted: May 24, 2007
Last Modified: May 28, 2007

We begin in the world of warm and fuzzy, or at least in the animal kingdom, spending time with its denizens, their attributes. Software ecosystems are fun, simple models and simulations. Then it's time to eyeball source code, and maybe write some of our own. Python, conveniently, is another animal, a snake, with lots of __ribs__.

A sheet strung between two trees symbolizes a spectrum of screen based technologies, from shadow puppets to programs projected from a satellite TV or the Internet. CP4E or Computer Programming for Everybody, shows up all across this spectrum. OLPC, or One Laptop Per Child, is a conceptually distinct, yet related initiative. On screen: a primitive shadow puppet. Let's take a closer look.

Whereas we're promising (and delivering) lots of graphical content, with Python a controller between model and views, we must face the hard core lexical nature of programming. Plus there're so many traditional math topics that remain useful to this day. Like fractions, or Rational Numbers. With the need to see these in code, we move from warm fuzzy animals to more abstract "math objects," while stressing the concepts of OO. Here: a template, boilerplate. There: the objects that spring from it, as many as we like, each with a 'self' or home base in memory.

Deeper we go into abstract algebra concepts. Given Python's __ribs__, we're able to see __add__ and __mul__ operating across several families of object: rational numbers, integers modulo whatever, complex numbers perhaps, Vectors... Students have a sense of these commonalities but we shouldn't leave them guessing. Let's share some of the formalisms of group theory, mentioning rings and fields as we go. CAIN = Closed, Associative, Inverse and Neutral elements; C2IN = Closed, Commutative (Abelian), etc. Pythonic math helps make these ideas concrete, crystal clear. Plus we have a final real world application to share in this curriculum, that will build on some of these ideas...

That's right: public key cryptography -- our final frontier in this Pythonic math course, wherein we also dove into Polyhedra and Polynomials, Pascal's Triangle and Phi -- just to dwell on the P words we covered. Fractals and Fibonacci numbers were also focal points. Hexapents, buckyballs. I didn't show all that here. Explore then, and find the content you care about, find your peers, already hard at work, looking at screens in the jungle, chattering monkey noises all around, laptops aglow.

For further reading:

oregon.gif - 8.3 K
Oregon Curriculum Network