[comp.sys.apple2] HLL v ASSEMBLY

acmfiu@serss0.fiu.edu (ACMFIU) (04/18/91)

in reponse to article by saintdor@vms.cis.pitt.edu re "HLL v. assembly":

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.
.
. if you're only interested in learning a little bit about the subject, then
. i suggest you read a book on your time. i want to learn everything. after
. all, i'm paying for it. the thought that HLL will prove more valuable
. than assembler is wrong. you may see this directly in terms of which jobs
. you get and what programs you write. but assembly will change you
. thinking, which will get you _better_ jobs and _more interesting_ programs
. to write. so if you want to be an "average" programmer, please sign up
. for some business administration course and leave us alone.
.
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?
.
. maybe _you_ write ugly code. if you do, then you're not an assembly language
. programmer. you just haven't made it there yet. talk to a hacker.
.
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.
.
. i never planned on getting in on this discussion but here goes.
.
. _most_ computer science students at FIU here, in my opinion, are in it
. for the money. the teachers certainly are not. all the CS teachers i've
. mean are darn good. i took an intermediate programming class last year and
. was shocked to find out that these people didn't know squat about
. programming, algorithms, data structures, etc. it's like they just up
. and decided to become a computer science major or 'programmer' without
. any foresight as to what they were getting in to. i have a friend who
. goes to michigan state university and has seen the same thing. this
. is unbelievably sad. i don't know where these people are coming from.
.
. even more shocking is a story i heard from a friend who took a data
. structures class this term. the teacher asked the students if _anyone_
. knew who Donald Knuth was. no one in the class ever heard of the man.
. i was in deep shock when i heard this. i still can't believe it. i don't
. know what these students want to become but i sure wish they would get
. out of computer science. these are the kinda people who program in COBOL,
. the kinda people who deserve to be shot. no person who knows COBOL should
. ever call himself a programmer. it's a disgrace.
.
. now, if you propose to 'entice' these students into becoming programmers
. by teaching them high level languages, well you're wrong. i'd give them
. a double dose of assembly to darn sure they knew what they were doing.
. and, if you don't think that assembly on the VAX (which we have here) and
. a 6502 is "similar", i can prove you wrong. i don't even know VAX
. assembly language (not yet) but just by looking at the instruction set
. and reading a brief description of the opcodes i was able to help a friend
. out with a program. and i never saw VAX assembly before. but, because of
. my experience with 6502 programming, i knew what was going on. there is
. not "that much" difference in the understanding between VAX assembly and
. 6502 assembly. i'll be taking the class this summer and don't anticipate
. any problems. just because you have a bigger set of instructions (note, this
. doesn't necessarily translate to more powerful) and more registers, doesn't
. mean you can conquer the world. take a look at the graphics demos on the
. GS (you know, that computer that uses that super-awesome 65816 chip). now
. where can you find comparable demos? the fact is the "bigger set" of
. instructions the vax provides you with probably run in more clock cycles
. than a comparable set of instructions on the 6502. i can't verify this but
. someone probably will :)
.
. the fact is if you want to be a "programmer" (and i use the definition
. of a programmer from 10 years ago - not today's brain-dead programmers),
. you _will_ want to know how to get into the machine. i'd like to buy a
. NeXT. and, if i do, the first question i will ask comp.sys.next is how
. to break into the machine. i don't care about what happens. i'll find out
. eventually :) what about other computer science students out there. what
. are the CS students in your classes like.
.
. i personally feel sorry for this and coming generations of computer
. programmers, or those who call themselves such. i sure don't want to adopt
. that name if it means being associated with the current trend of who
. is a programmer (and ADA folks i _don't_ consider programmers). i'm very
. biased when it comes to this topic and also very critical. all this talk
. about portability is fine when you're in the business world and have to
. make a living, but if you ever want to fully understand what's going on,
. you will have to learn assembly. and, if you don't, well then programmer x
. who does know assembly will always be better than you are, always.
.
. albert chin