I've recently found myself tasked with teaching a few dozen IBM
mainframe COBOL programmers the concepts of object oriented programming.
No specific language syntax, just the concepts. These lucky few dinos
will find themselves mixing their COBOL back-ends with standard Java
apps, J2EE apps, C# apps, or Ruby apps.
My specific goal is not to teach any language specific thing (though I
might use Java for the examples and kill the J2SE, J2EE and C# syntax
with a single invocation of the stone.throw() method). My purpose is to
teach the simple "what is an object", "what is inheritance", "what is an
interface", "what is encapsulation", et al, so that they have the proper
frame of mind to accept the language specific training that will be
offered.
I was hoping that some of you that have COBOL experience AND Object
Oriented experience might share your thoughts on what was helpful in the
learning process. Of course, that includes what was not helpful as
well. We often learn more from our mistakes than our successes.
For example: I've ruled out the traditional "shape" example to explain
polymorphism -- you know, the one where you have a "shape" base class
with a virtual "draw()" method -- and a "square", "triangle" and
"circle" subclass. I ruled it out because some practicing COBOL
programmers (for decades even) have never put a graphic onto a screen,
only text.
(So my simple example went from "shapes" to the "animal" class with the
speak() method -- you know the dog subclass says "bark" and the pig
subclass says "oink" and the sheep subclass says "baa means no".)
But I would really appreciate hearing about your experiences going from
COBOL to any OO style of programming. What were your pitfalls, what was
helpful, etc.
One thing I would really love is if you have good textbook
recommendations. If "The Idiots Guide to OO for Cobol Dummies" was the
best thing since sliced bread, please let me know, I might go buy a few
cases and make the author a slightly happier person.
Thanks in advance to all who respond. Either via newsgroup or to
zberger at knology.net. I really appreciate your thoughts.
Regards,
Joe Zitzelberger


|