One way to think about the problem I learned from a wise and practical friend:
Think about teaching people to hang the holiday lights around one's home and yard/garden. Procedural approach would be to pull lines from a wall socket to the desired places. The OO approach is to think about the design ahead of time and where changes might want to be made and where electrical current can be shared, then design and implement in smaller procedures with a more complex design. Yes, we should teach BOTH procedural AND modular design and implement as needed in the product. I am of the opinion we should teach design independent of discipline. Principles of modularity, abstraction, coupling, least_astonishment, etc, are common to many disciplines. Carl --- Dr Russel Winder <[EMAIL PROTECTED]> wrote: > On Tue, 2003-09-16 at 02:23, Allen Milewski wrote: > > 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. > > Until a couple of years ago I was an academic teaching programming and > software engineering. I personally subscribe to 1 above but am not sure > about 2. I am sure other members of this mail group will have real data > regarding the cognitive issues. My thoughts are more about the > educators and my experience. > > A large number of people who are teaching programming these days grew up > with procedural programming (possibly with ADTs but many not) and many > had a hard time really appreciating OO. They assume that everyone else > will have the same difficulties with OO even though others' histories > will be very different. > > Graham Roberts (UCL) and myself have found that the teaching strategy > makes a very big difference to the ability to learn OO. If you teach > procedural first (particularly if it is done in a completely > constructivist, i.e. bottom-up, way) then OO is hard. If you teach OO > from the outset being open that there are things not explained (but > giving forward references for those who want to find out) then OO is a > lot, lot easier. In this philosophy procedural programming is an aspect > of how to create methods. This then makes the "descent" to procedural > programming for those that need it actually quite easy. > ========snip------------ __________________________________ Do you Yahoo!? Yahoo! SiteBuilder - Free, easy-to-use web site design software http://sitebuilder.yahoo.com ---------------------------------------------------------------------- PPIG Discuss List ([EMAIL PROTECTED]) Discuss admin: http://limitlessmail.net/mailman/listinfo/discuss Announce admin: http://limitlessmail.net/mailman/listinfo/announce PPIG Discuss archive: http://www.mail-archive.com/discuss%40ppig.org/
