On 5/28/06, Scott David Daniels <[EMAIL PROTECTED]> wrote:
Andre Roberge wrote:
> ... Let me give a concrete example explaining inheritance for non-computer
> scientists.
> ===
> class Father(object): ...
> class Mother(object): ...
>
> class Child(Mother, Father): ...
> ===
> The computer scientists in the (virtual) room are probably horrified.

Yup.  I am aghast.  You are using the "built-from" relationship.  For
yourself this is fine, but pedagogically it leads to very bad habits.

Agreed ... when it comes to teaching computer science, to future computer scientist.  I was reacting to some comment (including reading from a different thread) about how scientists were not able to grasp Python and OOP (to paraphrase the argument).

Python is being used in bioinformatics - and some biologists are introduced to computer programming for the first time through their interest in molecular biology, dna structure and the like.  I would argue that using an example as the one above would help lowering the barrier to learning, which is something important when people think they can't do it.
 
The reason I am appalled is that I have maintained code that was written
this way, and the mess that results over years of extending from such
a shaky foundation is scary.

> I would claim the above example would be appropriate for the average person.

I claim this is because you are a scientist, not a mathematician.  At
Penn, Mathematics was an Art, not a Science (I have great sympathy for
that classification).  You are in the habit of lying to your students
and, next course, telling them "you know, what you learned in the
previous course was wrong."  

Actually, I'm a theoretical physicist and as such I am closer in my approach to mathematicians than to experimental physicists.  When I was teaching, I tried to be careful to mention every time a simplification was made and pointing out that a "deeper truth" would be learned about later.  I don't mean to sound defensive: I was truly doing this - but without giving it much more thought than this.  However, I think your characterisation of the average physicist's teaching is quite accurate!

This is a reason for people leaving the
sciences.  

Proof?  :-)

Mathematicians tend to try to stick to truths, though they
expand the universe they talk about each time.  In part this distinction
in approaches makes sense because mathematicians who make mistakes are
corrected (and scorned) by other mathematicians, while physicists are
corrected by reality (and refine their models).

Well put.

[snip]
> Words like "inheritance" have been borrowed and adapted by computer
> scientists for use in their own discipline.
While words like "spin" for physicists....  Natural languages seldom
have precise definitions, and Computer Science is not close to the
worst offender in this respect.

And I never meant to imply it was.  In fact, I provided a similar example for physics ("work").
 
To me, the most important thing is to get students (non computer scientists) interested in learning about programming, a bit like you might get someone interested in learning French by taking them to a night club in Montreal: they might pick up some inappropriate sentence constructions (that would appall your average French linguist) which will need to be corrected later ... but chances are they will want to learn French a lot more than if they would have been put in a class taught by your average French linguist.

André
_______________________________________________
Edu-sig mailing list
Edu-sig@python.org
http://mail.python.org/mailman/listinfo/edu-sig

Reply via email to