[Edu-sig] Another loop around

Kirby Urner urnerk at qwest.net
Thu Jun 2 17:21:40 CEST 2005


Arthur:
> For the largest majority of students - it seems clear to me - asking them
> to learn to program, in Python or any other language for that matter, 
> would be the single *hardest* thing they have been asked to do in their 
> academic careers.

Remember our little distinction between learning to program and programming
to learn.  You could think of Python mastery along the lines of a martial
art, with white, yellow, brown and black belts (is that how it goes?).  If
our goal is to offer a math track that includes use of a computer language
(that's my goal anyway), then there's already a lot we might do with yellow
belts.

> Many students will have graduated from the finest of universities, with
> impressive degrees, and have never undertaken anything as challenging.
> 

Think of the start of Guido's tutorial:  using Python as a calculator.  None
of this should seem difficult, even if we start using complex numbers and
big precision integers and decimals.  Our functions may be no more than 5-8
lines long.  

A lot of it is *translation* e.g. Gregor and I were just coding an age-old
algorithm for finding square roots to any precision that was very well
described on a web page, without any invocation of a programming language.  
All that remained was to get it into code.  I'd say that was a yellow belt
activity, one we wouldn't start out with (too hard).  We were getting up to
20-30 lines.

> I have no problem with asking them, nonetheless, to do so.
> 
> But I just can't, for the life of me, understand how we can do so without
> due emphasis on the effort expected, and the challenges involved.
> 

In CS and IT and maybe some MBA tracks, plus along various private industry
tracks, it'll be important to know SQL, and we might use mxODBC to send
queries to backend MySQL on a Windows box or something.  A thick book on
Python programming is going to mention these capabilities, maybe give some
examples.

But if we're in Urner's math class, studying the group and number theory
behind RSA, this isn't something we need to touch on.  And we might spend no
time whatsoever on GUI programming (not counting invocation of a VPython
scene and wiring up some mouse click interactivity).
 
> If we are concerned more about the preparation of students for the task,
> than our zeal for the advocacy of Python, we would take the word "Easy"
> absolutely off the table.
> 
> Art

def f(x):
    return x*x

points = [(x, f(x)) for x in range(-10,11)]

print points

plot(points)

Is that much harder than ordinary math?  Using Python as an interactive
workspace.  

Programming to learn.

Kirby




More information about the Edu-sig mailing list