[Edu-sig] My experience teaching Python

Martijn Faassen faassen@vet.uu.nl
Wed, 23 Feb 2000 12:18:22 +0100

Kirby Urner wrote:

> >I've taken a look at Learning Python and it doesn't seem to have the right
> >structure if you're completely new to programming. My friend bought it 
> >and hasn't been too much use to her so far, though I expect it probably
> >will be later on.
> I like your approach Michael.

That's Martijn -- Michael is the guy whose thread I hijacked; my 
apologies to Michael!

> Play in the interactive mode, show how
> this can be used to test your understanding of the various operators
> (sometimes I call them "toys" -- not in a deprecatory sense at all),
> then go right into combining statements into function defs (programs).
> This is a great segue from Logo (which many kids learn), which likewise
> has the interactive command line, plus the short, atomic procedures.
> A few comments:  
> *  Those who can use IDLE will probably find it a lot easier than Emacs.  
>    The newest IDLE even prompts for correct syntax, plus the stepwise 
>    debugger (still rudimentary) gives beginners a fun way to watch simple 
>    programs in action.

Probably true -- I myself am pretty unfamiliar with IDLE so far, though
(was just toying with it again yesterday), so I went with Emacs. For basic
editing both are fine, and I wasn't beyond that yet.

> *  You can do a lot in interactive mode.  I like to show students that
>    it's more fun to calculate at the command line than on a TI.  In 
>    part because calculators don't have any savvy about alpha operations,
>    like 3*"CAT" = "CATCATCAT".  Yet modern mathematics is a lot about
>    symbolic manipulation beyond what we do with numbers.

Yes, I showed things like this. You can do some amusing things there, which
will keep the students happy.

> *  Keep in mind that you, as a teacher, can pre-write simple modules 
>    which, when loaded, do interesting things at the command line.  

That's a good idea -- I'll try that approach.

>    Then invite students to look at your code.
[learning by studying other programs]
I did some of this, but it's probably good to put some more emphasis on this.

> If you haven't taken a peak, I invite you to check out my 3 part essay 
> integrating learning Python within in a math class context.
>    http://www.inetarena.com/~pdx4d/ocn/numerarcy0.html
>    http://www.inetarena.com/~pdx4d/ocn/numerarcy1.html
>    http://www.inetarena.com/~pdx4d/ocn/numerarcy2.html

These links don't seem to work, unfortunately!

> My approach dovetails with yours, in that I'm focussing on the 
> interactive command line at the start.  What's not explicit in these
> pages is a lot of nuts and bolts about "types" (int, float, string),
> which you get into, nor even data structures (list, tuple, dictionary).
> This isn't because I'd want to skip any of this.  But first I want
> to get students to "buy in" by seeing Python do a lot of relevant
> work.  Then we start dissecting the code, and phasing in the nuts 
> and bolts stuff using a more "and by the way" approach.  Start by
> showing relevance, then get into the guts of programming.

The problem in my case is that there's no 'relevance' as such yet; your
students are in a math class, mine are in a 'what's programming all about'
class and don't have clear goals yet.

[recursion versus procedural]

I hadn't gotten far enough yet to introduce those concepts. :)

Thanks for the feedback!