[Edu-sig] Re: Best approach to teaching OOP and graphics

urnerk at qwest.net urnerk at qwest.net
Fri Mar 25 20:46:59 CET 2005

>That's where I am being confused.
>Graphical programming has nothing necessarily to do with a GUI, so
>I am confused why we are discussing them in any way together.

The key word is "necessarily" and I completely agree.  I was mentioning
several kinds of programming.  GUI programming *is* graphical, in the
sense that "G" stands for "graphical".

It so happens the GUI stuff is almost always OO (I talked about that
in terms of the Nokia 60 cell phone).  I have very limited experience
with OpenGL (or PyOpenGL), but yes, the VPython stuff is obviously OO.
POV-Ray isn't so obviously, if at all -- but if we write a Python layer
on top of POV-Ray (what I like to do), then it makes sense to use OO.

> I don't see GUI programming as a necessarily appropriate 
> environment to introudce OOP.

It's certainly the way a lot of people come into contact with it.  But
you may be right.  I think it's possibly useful as an introductory 
environment, but it could lead to that problem of not understanding
OO concepts generically enough, and getting confused about the difference
between GUI programming and OO.  That seemed to be a confusion we were
worried about in this thread.

> But using the metaphor of geometric objects already *is* the
> canonical way of introducing OOP.  

Yes, could be.  Another canonical metaphor is animals.  The mammal class
is subclassed into dogs, cats, humans and so on.  I've also seen telephones
subclassed as fax-phones, cell phones etc. (all types of phone).

> What VPython, for example, allows is pursuit of the canonical 
> methodology, but cutting directly to an actual implementation,
> rather than working on "as-if" basis.  We wee the triangle, derived
> from our more general geometric object, rather than (or in addition to) 
> only seeing a prompt message saying "I am now a triangle".
> Hard for me to see anything but upside in this approach.

I'd have to see you proposal fleshed out in more detail.  What is the
triangle a subclass or superclass of?  What are its methods and properties?
And what is the VPython framework you'd use to introduce OO?


mail2web - Check your email from the web at
http://mail2web.com/ .

More information about the Edu-sig mailing list