On Fri, 18 Dec 2009 13:00:48 -0500, Alf P. Steinbach <al...@start.no> wrote:


Chapter 2 is about Basic Concepts (of programming). It's the usual: variables, ...

1. Overall suggestion

You have a tendency to include non-pertinent asides [1]. But then, rambling a bit endows a manuscript with the author's distinctive voice. Fortunately, we live in a hypertext-enabled world, where you can have your cake and eat it, too. I suggest that you go over your manuscript with a ruthless eye, and turn your rambles into hypertext-accessible "sidebars". See how much you can reduce the length of Chapter 2, which current runs 98 pages!

2. Comments on Section 2.6.7, "References & automatic garbage collection"

There's a spell-check evader on page 2:49: "trough" s.b. "through". And your spell-checker should have caught "adressable" on page 2:48.

I find your sequence-of-attribute-lookups approach to the topic of "variable assignment" interesting. The directed-graph illustration on page 2:49 even hints at the fact that in the world of Python, names ("turtle", "forward", etc.) and objects (various kinds of yellow boxes) are very different things.

(I suggest getting rid of the callout "Very small fixed size variable". That way, only objects, not names, have the italicized callouts.)

But using the term "references" and the directed-graph metaphor has its drawbacks. Avoiding the term "reference" will make it easier to navigate the turbulent waters of call-by-reference vs. call-by-value vs. call-by-name. (You don't even stick a toe in those waters in Section 2.7.5.) Combining memory addresses with the directed graph metaphor invites the reader to think at way too low a level, IMHO.

Another metaphor just occurred to me: a scavenger hunt. It even fits in with your potentially-infinite-attribute-access approach to the topic. A sequence of attribute accesses:

   turtle.forward.__doc__

... is like a sequence of scavenger-hunt instructions:

   1. Get your next clue at the big oak tree
   2. Get your next clue at the back door of the Valley Bank
   3. Get your next clue under Dad's Oldsmobile

It's clear that the scavenger hunt's clues (short characters strings -- like Python names) are different from the physical objects that you access as the hunt progresses (tree, bank building, automobile -- like Python objects). I haven't lived with this metaphor long enough to form an opinion as to where it might reside on the brain-dead <---> brilliant scale.

As I've said in this forum (and the edu-sig forum) before, I think the best metaphor for understanding Python variable assignment is John Zelle's yellow-sticky-note metaphor. [2]

I hope these comments help.

-John

--------------
[1] Examples:

Section 2, page 2:1

    It's almost impossible, but, as Robert A. Heinlein remarked,
    "A Paradox May Be Paradoctored".

Section 2, page 2:3

    (I believe the original text comes from the "Jargon file")
     about how arbitrary, undesirable and downright dangerous DWIM
     guessing can be: ...

Section 2.5.1, page 2:14

    a natural extension is to make that into a square spiral with
    far more windings; I recall it as a common theme in 1970’s
    pop-art and it can be quite impressive!

Section 2.6.7, page 2:46

    (some flat-Earthers once thought that the flat Earth rested
     on four turtles, which in turn stood on four larger
     turtles, and so on all the way down)

[2] "Python Programming: An Introduction to Computer Science" by John Zelle (Franklin, Biddle & Associates, 2004) See Section 2.5.1, "Simple Assignment"
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to