[Edu-sig] more simmering debate...
Iwan Vosloo
iwan at reahl.org
Thu Apr 21 02:00:19 EDT 2016
Hi Kirby,
You may be interested in Dijkstra's take on teaching via metaphor:
https://www.cs.utexas.edu/~EWD/transcriptions/EWD10xx/EWD1036.html
I am not sure exactly how it applies to your case.
It seems to me that OO tends to get taught in terms of the mechanisms
present in OO languages and how that is implemented. Things like the
notion of inheritance, polymorphism and the idea of putting behaviour
and data together.
When I learnt OO we were taught about concepts, how they're defined by
intention/extension and how they can be reasoned about in terms of set
theory. We were taught about how to produce OO analysis models. That
shows you how to think about a problem.
Language features and how they work are—out of necessity—a very limited
shadow of such models. Language features are not even necessary for
implementing an OO model - you can happily reap OO benefits writing C code.
My feeling is teaching OO by language features is like giving people a
physical tool without giving them the mental tool that gives direction
on how to and why and where use it (or not).
One nice book that does explain the fundamentals really well IMHO is
"Object-Oriented Methods: A Foundation" by James Martin/James Odell.
http://www.amazon.com/Object-Oriented-Methods-Foundation-UML-2nd/dp/0139055975
Regards
- Iwan
--
Reahl, the Python only web framework: http://www.reahl.org
More information about the Edu-sig
mailing list