Allen,
 
The argument for OOD being a more 'natural' way to think stems from different sources.  OOD comes from a history of simulation / modelling languages, where the program is a simulation of the real world, which is where I suspect the 'natural' element comes from (I personally dislike the term 'natural' since it automatically implies that there is a 'natural' way that is automatically easier to use *in all situations*).  I would suggest that different forms of thinking are appropriate to different problem domains, and this has been demonstrated by a number of authors (including Amarel, 1968).  When a programmer is working, they shift between abstracting from the problem domain and generating conceptual structures based on these abstractions to produce a solution - but the selection of the elements of the problem domain is based on their understanding of the problem, which is being refined as they work on the solution and develop a better understanding of the problem. 
 
A major push for OOD has come from the prevalence of GUI's, which Graham has argued have been a major spur for the development of OO, and you'll probably find some useful stuff if you dig around Alan Kay and Smalltalk.  GUI's do not HAVE to be produced using OO techniques, but practically speaking it is easier since the mapping from what is happening on the screen to the way that the code is represented is usually easier than for similar procedural techniques - but this goes back to the idea of OO techniques being appropriate to certain problem domains. 
 
Some other references that may be useful:
  • Amarel, S., 1968, On Representations of Problems of Reasoning about Actions. In: Machine Intelligence, Michie, D. (ed), pp.131-171. Edinburgh University Press.
  • Beck, K. and Cunningham, W., 1989, A Laboratory for Teaching Object-Oriented Thinking. In: OOPSLA'89 Conference Proceedings, October 1-6, 1989, New Orleans, Louisiana.
  • Blackwell, A.F., 1996, Metaphor or analogy: how should we see programming abstractions? In: Vanneste, P., Bertels, K., de Decker, B. and Jaques, J.-M. (eds), Proceedings of the 8th annual workshop of the Psychology of Programming Interest Group, pp.105-113.
  • Corritore, C.L. and Wiedenbeck, S., 1999, Mental representations of expert procedural and object-oriented programmers in a software maintenance task. In: International Journal of Human-Computer Studies, 50, pp.61-83.
  • Davies, S.P., Gilmore, D.J. and Green, T.R.G., 1995, Are objects that important? Effects of expertise and familiarity on classification of object-oriented code. In: Human-Computer Interaction, 10, pp.227-248.
  • Dvorak, J.L. and Moher, T.G.,1991, A feasibility study of early class hierarchy construction in object-oriented development. In Koenemann-Belliveau, J., Moher, T.G. and Robertson, S.P. (Eds.), Empirical studies of programmers: Fourth Workshop, Ablex, Norwood, NJ. pp. 23 - 35.

Pete

Peter Hornsby,
eLearning Manager
QinetiQ Learning Institute
Duke 305
Malvern
Tel: (+44) 01684 543785
Fax: (+44) 01684 895708

-----Original Message-----
From: Allen Milewski [mailto:[EMAIL PROTECTED]
Sent: 16 September 2003 02:23
To: [EMAIL PROTECTED]
Subject: PPIG discuss: OOD and cognition

I've recently had cause to become interested in software/programming educational techniques. In the education literature, there seem to be two kinds of positions: (1) OOD has so many advantages that we should teach it early and (2) OOD is a more natural way to think, as long as it hasn't been tainted by earlier training in procedural thinking- so we should teach it early. 
 
As a result of both positions, teaching Object Oriented Methods is absolute gosple at most institutions.  But, I have heard many educators quietly complain that OOD is very hard for naive students to learn, that it requires an entire different "level" of work (namely, abstract design) and even that for students (even for many experienced programmers) Object-oriented thinking is often a secondary thing wherein. programs are first conceived in procedural terms and then "translated" to object-oriented design because OOD is the "right way".
 
Can anyone help me with the basic literature to support position #2 above?  I'm willing to believe that the cognition literature suggests we can think in terms of objects, but what is the empirical basis for saying it is more natural? What problem solving steps/techniques are facilitated by OOD? What is the mechanism for the alleged interference by procedural thinking on learning OOD? 
 
 Is there a thread in the archives on this?- its seems there must have been many.
 
Any help would be appreciated.
 
_____________________
Allen Milewski
Department of Software Engineering
Monmouth University
[EMAIL PROTECTED]
 
 
The Information contained in this E-Mail and any subsequent correspondence is private and is intended solely for the intended recipient(s).
For those other than the recipient any disclosure, copying, distribution, or any action taken or omitted to be taken in reliance on such information is prohibited and may be unlawful.
Emails and other electronic communication with QinetiQ may be monitored.  Calls to our Customer Contact Centre may be recorded for quality control, regulatory and monitoring purposes.

Reply via email to