[Edu-sig] teaching Python

Kirby Urner urnerk at qwest.net
Sun Nov 28 00:04:16 CET 2004


I agree with John that it's often a good idea to get to graphics quickly.  

My approach has been to use the POV-Ray engine to consume scene description
language generated from Python.  The output is ray tracings.  

The latest 'Linux Journal' features POV-Ray on its cover I notice (just
bought it at the supermarket -- the article is about visualizing atmospheric
physics data; I should send a heads-up to my friend Rick, a professor in
that area).

I've used Python + POV-Ray to take data from sensors strapped to a
ballerina, captured in Excel, and create corresponding stick figure
animations (previous posts):  http://www.4dsolutions.net/oscon2004/

In class, we used a similar to generate colorful polyhedra.  If it's a short
class, I'll supply some of the code.  We'll learn by eyeballing it,
dissecting it, and maybe writing some enhancements.

Regarding statistics and other math-type applications for Python, I like
using it conversationally, like one might use Mathematica.  It's like a
calculator, but calculators don't do list comprehensions.  The motivation to
save functions or classes comes from wanting to save retyping.

For example, when doing stats, it's common to want a list of random numbers.
It'd be useful to have a function with three parameters:  min and max to
specify the range for the random integers, and a howmany.

 >>> from random import randint
 >>> def getrand(min, max, howmany):
 	  return [randint(min,max) for i in range(howmany)]

 >>> mylist = getrand(0,100,10)
 >>> mylist
 [0, 58, 53, 47, 89, 61, 60, 87, 12, 18]

Then we could do stuff like:

 >>> def mean(somelist):
        return sum(somelist)/float(len(somelist))  # or use truedivision

 >>> mean(mylist)
 48.5

Then on to standard deviation, divergence, and so on.  Very short programs.
Lots of command line exploration.  Then save the short programs in a module
for reuse later.

I take the same approach to teaching group theory:
http://tinyurl.com/62eoc


Kirby




More information about the Edu-sig mailing list