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 _______________________________________________ Edu-sig mailing list [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/edu-sig
