# [Edu-sig] teaching Python

Daniel Ajoy dajoy at openworldlearning.org
Wed Nov 24 14:18:55 CET 2004

```Kirby wrote:

> I lean towards using mathematics as my place to cut new
> programming teeth. At first glance, that sounds like a real
> turn off.  Doesn't it just take the fun out of programming
> to tie it to a boulder like math, and throw it off a
> bridge.  We just sink to the bottom, right?  But look at it
> this way:  they want you to learn quite a bit of math
> *anyway* (the boulder is a given) and approaching the stuff
> while learning Python makes the math more fun.  In other
> words *given* math is important, Python has way more to
> offer in the fun department than just graphing calculators.

I have prepared a series of "programming challenges" for a
Logo programming environment. They are just geometric pictures
that I suggest students try to mimic. The first ones
are very simple. The first one, for example, is the classic
first Logo "program":

to square
forward 100 right 90
forward 100 right 90
forward 100 right 90
forward 100 right 90
end

or

to square
repeat 4 [forward 100 right 90]
end

But in #14 the student might want to know the relationship
between the diameter of a circle and its perimeter.

In #21 the student might want to know how to make squares
of different sizes, like:

to square :size
repeat 4 [forward :size right 90]
end

square 80 left 90
square 40 left 90
square 20 left 90
square 10 left 90

In #22 the student might want to know the Pitagorean theorem,
and for #33 it would be good to know how to program loops.

For the last few ones, things become easier if the student
understands the concept of derivative.

John writes -

> Some on this list have suggested that Python is "too rich" to be good
> language for young or first-time programmers.

I think I was one. The thought went like this: "why would
I want to program something in Python, if it's probably
already programmed somewhere in the libraries or in the
Internet" It is a little bit discouraging to know that you'll
be either just programming glue code and doing a lot of
digging for the right code, or reinventing the wheel.

Daniel

```