Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!unix.cis.pitt.edu!pitt!speedy.cs.pitt.edu!reanor From: reanor@speedy.cs.pitt.edu (Jeffrey Getzin) Newsgroups: comp.sys.apple2 Subject: Re: Re- HLLs vs. Assembly Message-ID: <10408@pitt.UUCP> Date: 15 Apr 91 07:20:37 GMT References: <9104060651.AA18946@apple.com> Sender: news@cs.pitt.edu Reply-To: reanor@speedy.cs.pitt.edu.UUCP (Jeffrey Getzin) Organization: Univ. of Pittsburgh Computer Science Lines: 75 In article <9104060651.AA18946@apple.com> MQUINN@UTCVM.BITNET writes: >On Fri, 5 Apr 91 11:39:40 LCL Joe Luzzi said: > > >This is true. I'm taking a VAX assembly course now. It's great, but my >professor prevents us from doing as much as I'd like. His attitude is, "Well, >you'll probably never use assembly (he calls it assemblER) language after you >get out of this class." ^^ > > >This is true too. Knowing assembly, you know the limitations of the machine >your working on ... This is very important when doveleping software. ... >Also, another person I work with just graduated with a degree in computer >science. Computers are his life. He knows all about HLLs but he doesn't >understand why alot of things work or why they don't work, because he doesn't >understand assembly language or the limitations of the hardware.... >It's all because he was 'raised' >on nothing but HLLs, GUIs, and macs. Computer Science courses should begin >with explaining computers from the bit level and working their way up. By >the time the students get to the HLLs, data structures, files, etc..., they >should have virtually no problems undterstanding those concepts and how they >came to be, and what the limitations are. > >Unfortunately, most computer science courses are tought in the opposite >direction... HLL first, then, when you've had enough of it for several years, >they'll give you just a tainted taste of assembly. It makes it very difficult >for students to understand all these intangible concepts without first knowing >how they came about. > > >---------------------------------------- > BITNET-- mquinn@utcvm <------------send files here > pro-line-- mquinn@pro-gsplus.cts.com I strongly disagree. I have been studying Computer Science for over six years now, and I have seen many different approaches to education. (one program I was in actually started with formal language theory, can you believe it?!) Let me explain why I feel that starting with a HLL is vital: First there's the "hook": how to get people interested in computer science? If there is nobody interested in computer science, there are no computer science majors and the field on the whole greatly suffers. So it is vital to get people interested in the field. But most people who sign up for a computer course are only interested in learning a little bit about the subject, and the more useful that is, the better. Very few people will EVER need to program in Assembly(-er) Language during their entire lives. HLL's, however, may prove invaluable in many walks of life. Therefore, the introductory courses MUST be useful in order to attract people to the classes. Second, Assmbly(-er) Languages are machine-specific, and give surprising little understanding about machines in general. Sure, you'll learn about registers and memory, but everything else is different. Would you advise learning 6502 Assembly(-er), with two registers and an accumulator (and correspondingly ugly code), a VAX 9000 with an amazing powerful instruction set, or a RISC machine with its simple instructions, pipelines and zillions of registers? The answer is that you can learn a lot from an Assembler Language, but not enough, since it is all machine-specific, which in Computer Science is next to useless. Instead, I feel that a Computer Architecture course should be a mandatory element in a Computer Science program, and it is here that the understanding of "what is a computer" be investigated. All the rest, I feel, should remain at a higher level where algorithms and data structures are the important considerations and not how to bum another three instructions off of your assembler language program. =*()*()* Jeff *()*()*= Internet: saintdor@vms.cis.pitt.edu