Sunday, October 22, 2006

A Next Generation

projecting directly to whiteboard
My newest Saturday Academy class got off to a slightly rough start, owing to a motion detector not disarmed, no student logins working, and my trouble finding the room, walking in a tad late.

Fortunately, an Academy pro staffer was already on the scene, addressing all of these problems, plus my login and the computer projector both worked flawlessly. Thirty minutes into it, we were cookin' with gas (means hummin' along nicely).

I talked up the importance of PEPs in Python Nation, i.e. our reliance on Guido's design sense for advancing the language, but with responsibility distributed enough to give lots of strong players a role. Like geeks do have the ability to intelligently self-organize and self-manage.

I was very strong on the Monty Python connection, plus hyped adjacent languages such as Ruby and Perl, decoding the LAMP meme towards the end (see below). Of course now that Ruby on Rails has become a primo web framework, that clever idea of a "P-language" (Perl, Python, or PHP) is somewhat obsolescent.

Some of the time we spent in Sloane's Encyclopedia of Integer Sequences. I started with the story of the young Gauss adding 1 + 2 + 3... + 100 in just seconds, based on a couple insights, which led to triangular (1, 3, 6, 10...) then tetrahedral (1, 4, 10, 20...) numbers. That paved the way for the cuboctas (1, 13, 55, 147...) by way of icosa shell counts (1, 12, 42, 92...) and the jitterbug transformation (mentioned only briefly in passing, using my colorful Vector Flexor).

All of these figurate and polyhedral number sequences make for easy Python functions, importable as firstday.py from ./Lib/site-packages (each student is using a local drive, to avoid some frustrating sys.path issues that hampered us last time).

One technique with the white board (shown above) is to retract the projection screen (a switch on the wall), thereby putting code on a markupable surface. I can circle bugs, scribble comments, using projected Python as my target. I used IDLE -- remarking on the pun -- with Courier, Georgia and/or Comic Sans in a 16 pt. bold. I may switch to a wx.PyCrust down the road.

My students were active and engaged, asking questions, providing input.

decoding LAMP
(click for larger view)