[Tutor] designing POOP

bhaaluu bhaaluu at gmail.com
Thu Feb 21 13:19:19 CET 2008


On Wed, Feb 20, 2008 at 7:53 PM, Alan Gauld <alan.gauld at btinternet.com> wrote:
> "Michael Langford" <mlangford.cs03 at gtalumni.org> wrote
>
>  > I'm firmly with Kent here: OO programming is not about simulation.
>
>  Wooah!
>  I'm partly on board here and do agree the noun/verb thing is
>  a gross simplification. But it does work and is how probably
>  the majority of OOP programmers started out - in the 80's
>  and 90's at least. Certainly when I started on OOP around 1984
>  it was the de-facto introduction. And it is a still an effective
>  way to identify objects if you aren't sure where to start.
>
>  [snipped for brevity]
>
>  > Often it feels like the "Model objects on real world objects" is how
>  > people are taught so they get the idea of an object. Actually
>  > designing all code that way is a needless proscription that really
>  > really hurts many projects.
>
>  I agree with this too. It has to be emphasised that it's only a
>  starting point to identify object candidates, the final solution
>  may look very different. But in my experience the bigger the
>  project the closer the abstractions get to reality at least at
>  the object identity level - the operations and data are likely
>  to be very different, and underneath that layer will be a wealth
>  of lower level abstractions unguessed at by nouns/verbs.
>
>  But heh, if you get presented with a requirements spec
>  of 400 pages and over 1000 user storiers (as I just have!) it's
>  as good a place to start as any! (IMHO of course! :-)
>  And hopefully no newbies on the tutor list is in any danger
>  of that happening to them!
>
>  --
>  Alan Gauld
>  Author of the Learn to Program web site
>  http://www.freenetpages.co.uk/hp/alan.gauld
>  Which is currently dead awaiting a server repair, sorry! :-(

Somewhere along the line (in the original thread) the idea of
trying to teach a Beginner how to design an OOP in "Python"
got lost in a bunch of java mumbo jumbo (at least, that's
what it seemed like to me).

After looking at a lot of stuff, and reading much more than
I needed to, the technique that works best for me is the
noun/verb technique. I think it is a good STARTING point!

Now, I understand that there are many different levels of
"beginner". Some beginners are higher up the ladder than
others, and they enjoy looking in windows higher up. However,
I'm still on the bottom rung. The technique that I can relate to
is the noun/verb technique. Does this mean that if I get a grasp
of POOP with this technique that I'll be stuck on the bottom
rung forever? I doubt it. No more than someone who is using
whatever technique they are currently using is stuck with that
technique forever.

The universe unfolds perfectly.
Time exists so it doesn't unfold all at once.

I think the noun/verb technique is good for Absolute beginners.
I haven't seen anything else that is so introductory.

Too bad there isn't a graded tutorial that systematically
uses the technique to build several working PYTHON OOPs.

Happy Programming!
-- 
b h a a l u u at g m a i l dot c o m
"You assist an evil system most effectively by obeying its
orders and decrees. An evil system never deserves such
allegiance. Allegiance to it means partaking of the evil.
A good person will resist an evil system with his or her
whole soul." [Mahatma Gandhi]


More information about the Tutor mailing list