[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