[Edu-sig] Teaching OOP: Lending your "I"
Thu, 06 Jul 2000 00:44:18 -0700
One effective way to impart the OOP viewpoint is to
have students learn to "empathize" with objects,
meaning you look at some instantiation of class X
and say "I am an X". This helps synch with the
grammar of "self", the first parameter in all
When you come across syntax like:
obj2 = module.objX()
learn to think "I am an objX, my name is obj2.
I know how to [method]. I inherit additional
know-how from my parent, objY."
You can learn "empathy" independently of any
coding. For example: "I am a valve. I open
and close. When I'm open for a long time, I
know how to send a reminder to ControlPanel
that I'm still open." Or: "I am a weather
pattern. I have a beginning, middle, and end,
in relation to a time line. I have a lot of
parameters and methods."
The goal of such lingo is to instill a sense
of encapsulation, as well as a sense of
responsibility in the logical sense, i.e.
a well-designed object has a definite role to
play in some ensemble of objects. Learning to
"empathize" with each object in turn helps you
conceptualize about these roles.