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"