Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!seismo!rutgers!ames!ucbcad!ucbvax!sdcsvax!sdcc6!sdcc18!ee161aba
From: ee161aba@sdcc18.ucsd.EDU (David L. Smith)
Newsgroups: comp.lang.misc
Subject: Re: Teaching object-oriented paradigm to beginners?
Message-ID: <602@sdcc18.ucsd.EDU>
Date: Fri, 9-Jan-87 02:00:29 EST
Article-I.D.: sdcc18.602
Posted: Fri Jan  9 02:00:29 1987
Date-Received: Fri, 9-Jan-87 21:38:46 EST
References: <4000001@nucsrl.UUCP>
Reply-To: ee161aba@sdcc18.ucsd.edu.UUCP (David L. Smith)
Organization: U.C. San Diego, Academic Computer Center
Lines: 42

In article <4000001@nucsrl.UUCP> gore@nucsrl.UUCP (Jacob Gore) writes:
>This is directed to all people who like (or, at least, don't dislike) the
>object-oriented programming/design paradigm.  If you are not one of such
>people, please skip this discussion.
>
>Or, if you are against this idea, and somebody else was introducing it, what
>arguments would you use against it?

I am not necessarily against it, and am learning a couple of object oriented
languages at the moment, but I can think of a couple of arguments to be
used against teaching it exclusively as an intro to programming.

My views are that the more you know about what's going on inside of the machine,
the better.  If you want to teach Joe Freshman how to program, teach him
whatever his brain can absorb easiest.  If you're teaching a budding programmer,
I think they should start off in machine language. This doesn't have to be 
a real machine language, but possibly a very simple one to get them used to 
what's actually happening inside.  I know a lot of students who have very 
little idea of what actually happens when their program executes.  Knowing 
machine language when I started learning Pascal made understanding pointers 
simple for me, but it was a real headache for a lot of other people I know.
Starting from the bottom and then working up in levels of abstraction will
tend (in my opinion) to make a better programmer at each level.  When you
are taught English (formally), first you learn the alphabet, then you learn 
words, etc.  You aren't set up with Shakespeare right away.

Another argument is that the "real world" doesn't use object oriented languages.
I don't support this; if we were only doing "real world" stuff we'd all
be learning COBOL right now.  However, this is an argument you may run
across.

Finally, the jump from a "standard" language to an object oriented one is
not easy.  It takes a lot of re-learning.  The jump from an object oriented
language back may be just as difficult.  If the program is planning to do
a lot of "standard" languages later in the course sequence, it may be
easier to start them with a "standard" language.  

-- 
			Cheers,
			David L. Smith
			{ucbvax, ihnp4}!sdcsvax!sdcc18!ee161aba
			"Consistency is the hobgoblin of little minds"