Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-lcc!unisoft!hoptoad!academ!killer!elg From: elg@killer.UUCP (Eric Green) Newsgroups: comp.unix.questions,comp.edu,comp.lang.misc Subject: Re: Teaching Assembler on VAX (BSD 4.3) Message-ID: <965@killer.UUCP> Date: Sun, 7-Jun-87 15:01:54 EDT Article-I.D.: killer.965 Posted: Sun Jun 7 15:01:54 1987 Date-Received: Fri, 12-Jun-87 01:43:31 EDT References: <2046@a.cs.okstate.edu> Organization: The Unix(tm) Connection, Dallas, Texas Lines: 73 Xref: mnetor comp.unix.questions:2743 comp.edu:440 comp.lang.misc:437 in article <2046@a.cs.okstate.edu>, gregg@a.cs.okstate.edu (Gregg Wonderly) says: > in article <7401@boring.cwi.nl>, jack@cwi.nl (Jack Jansen) says: >> In article <786@edge.UUCP> doug@edge.UUCP (Doug Pardee) writes: >>>What gets my goat is the notion of teaching CS students that nothing exists >>>in the computer world except C programming in *nix. You don't necessarily >> >> The point I (and a lot of others) tried to make is that you should >> *not* use assembler for an introduction course. The original posting >> gave the impression that the author wanted to use assembler to >> teach programming in general. >> > > There are many different opinions on the values of assembly language. I > for one favor having some sort of low level introduction to computers very > early on. [...] > An assembly language class in the early stages can really help to clarify what > a compiler must generate, and how much work goes into moving data around. >> As soon as students know about trees, hashtables and all that stuff, >> *then* you could start teaching assembler. >> > > As I said above, by this time, many folks may have problems seeing the > machine as anything but magic. I don't see what trees, hashtables, and "all that stuff" has to do with assembly language. I, too, have seen the "magic black box" syndrome in action. I've seen juniors in CS who program in PL/1 or "C" (depending on machine used), who don't know the fogiest thing about what goes on at a lower level. Most of them have a VERY hard time figuring out what an operating system is, because while they've READ about computer architecture, they've never EXPERIENCED computer architecture. Experience which programming in assembly language gives you, real quick. The undergrad curriculum at USL doesn't even attempt to have the compiler class generate actual code for a real machine.... too few would be able to do it, I guess. When I first saw a computer in action (a TRS-80 running BASIC), I said "Wow, that's neat, I wonder what's inside it that makes it do that?". It's a shame that most of the people graduating from our college wouldn't be able to answer that question. It's an even bigger shame that most of them don't even CARE what's inside that "black box". My original major was Electrical Engineering precisely BECAUSE I wanted to see what was going on in there. Once I learned a little digital logic and played around with a little Z-80-powered trainer thingy, I switched to CS, but I still think that was a very productive experience and would recommend teaching digital logic and using primitive machines as a co-course with the usual freshman "squashing-semicolons" garbage. As for assembly language being hard... bah. I taught myself 6502 assembly language long before the Z-80 trainer, through the simple expedient of buying a VIC-20 and a monitor/mini-assembler (GAK! My age is showing!). The secret is to teach it on a simple machine where you can play with the hardware directly, rather than try teaching it on something like a Vax where you have to go through 50 levels of operating system just to print "Hello, world!". Alas, I've noticed that most CS professors have "microphobia"... they get nervous jitters when dealing with anything smaller than a Sun, and would probably go into fatal shock at the unpleasant thought of dealing with a simple, crude machine like a Commodore 64 or an Atari 130XE. A whole roomfull of which would cost less than a single Sun, and would be perfect for teaching assembly language and ELEMENTARY machine organization (have to crawl before walking, after all... expecting someone to understand the organization of an IBM 370 without understanding simple things like "what is memory? What is I/O?" is ridiculous). BTW, be great for the EE guys to do hardware experiments without fear of burning up a $5,000 development system, too.... -- Eric Green elg%usl.CSNET CS student, University of SW Louisiana {cbosgd,ihnp4}!killer!elg Apprentice Haquer, Bayou Telecommunications Snail Mail P.O. Box 92191 BBS phone #: 318-984-3854 300/1200 baud Lafayette, LA 70509 I disclaim my existence, and yours, too.