Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!utgpu!water!watnot!ccplumb From: ccplumb@watnot.UUCP Newsgroups: comp.edu Subject: software engineering Message-ID: <12881@watnot.UUCP> Date: Wed, 15-Apr-87 02:06:43 EST Article-I.D.: watnot.12881 Posted: Wed Apr 15 02:06:43 1987 Date-Received: Wed, 15-Apr-87 23:40:34 EST References: <340@ndsuvax.UUCP> <1986@cwruecmp.UUCP> Reply-To: watmath!watnot!ccplumb (Colin Plumb) Organization: U of Waterloo, Ontario Lines: 112 Confusion: U. of Waterloo, Ontario shebs@cs.utah.edu.UUCP (Stanley Shebs) says (in <4480@utah-cs.UUCP>): >In article <12788@watnot.UUCP> ccplumb@watnot.UUCP (Colin Plumb) writes: > >>Is 100 pages large enough? I wrote 54 pages of assembler in >>2 months' spare time. This was for a VAX, running Unix, neither >>of which I had used more than a month and a half when I started. >>(I really ought to finish the thing... it works, but there are >>some bits which are ungodly ugly. That should bring it up to >>*at least* a hundred pages.) Speaking as a first-year CS student, >>I could conceive of writing a Unix kernel. > >Careful, you'll find yourself a job before the month is out! Hey, I'm *looking* for a job! Give me a buzz if you want a junior systems type. I'm interested in everything down to the silicon level. > There >are always going to be a few people capable of handling any programming >job. Most of the arguments about engineering practice are pretty weak >in such cases. While I'm glad you think so highly of my skill, I haven't noticed it being *that* uncommon. (Then again, perhaps it's just the types I hang around with, and the fact they're mostly 4th year.) > All the instructor can or should do in those cases is >to demand that amazing feats of programming be understandable to >normal people, give the students free access to extra computing >power, and let 'em rip. Hey, I like that! So far, my quest for more computing resources has only earned me the ire of a hunk of the local systems people. There is still the problem (that a job might fix) that hacking is to be done in intense bursts, and classes gum those up rather badly. They stubbornly refuse to be resheduled for 4:00 am two days hence. > For better or worse, it's the "super-programmers" >that produce the bulk of systems software that we use... Going on the theory that having no systems software would be worse, I can argue that it's for the better. Also, no amount of preplanning can supply the unity of approach achieved by having one mind do everything. > BTW, is your >54 pages of code readable? Well, I just put in about an hour and a half documenting and commenting the thing, and doubling that should produce a comprehensible program. I'll send a copy to anyone who's interested. I could probably use some *intelligent* comments on my commenting style. > And did you really say that you *wrote* >assembler code? I can and have written plenty of assembly language, >but it's not a skill I'm proud of... What do you mean, `did I really *write* assembler code'? Is there another way to produce it? (Snarfing cc -S doesn't count!) >>There is also the opposite problem of producing an assignment >>that some couldn't handle. Remember that, in order to modify >>TeX, you have to know web, which means both TeX and Pascal, >>and the gnumacs lisp is essentially undocumented. > >That's why I said "well-engineered". Web is mostly a kludge to get >around OS and Pascal limitations - nobody I've worked considers it to >be worthwhile in a Un*x environment. It's too bad one gets fewer >academic brownie points for writing good software than for writing >good textbooks... Hm... doesn't the question of `what is "well-engineered"?' lead us full circle to what should be taught in SE classes? While the purpose of web may be to kludge around language and OS limitations, I don't think you can call it a kludge itself. Redundant is one thing. Bad is another. (Unless you're short on disk sapce! :-)) Anyway, does Knuth *need* academic brownie points? I couldn't imagine who he needs to keep happy. (Besides the general public, who have been awaiting Vol. 4 for Some Time Now.) >Just another thought - for something like TeX that's not so easy to >modify, have the students explain an obscurity or justify a limitation. >Lots of room for essay-type problems, especially on tests! Yeah, that sounds about hard enough... It'd take me a while to grok the code well enough to explain why (for example) TeX has so many *separate* memory free lists. >>If you want something really funny to think about, consider that >>neither TeX nor GNU emacs are big enough to be true tests of >>software engineering. After all, experience proves that they >>aren't too big to be written by just one person... > >I believe the ratio is more important than absolute size. An upper-level >SE course should definitely work with systems in the million-line range, >but non-proprietary ones are hard to come by... What do you mean by `ratio'? Anyway, I agree with the million-line range. That's big enough to require several levels of thinking about the program. The non-proprietary problem is non-trivial. Maybe with GNU we can start courses on OS internals again. > stan shebs > shebs@cs.utah.edu -- -Colin Plumb (watmath!watnot!ccplumb) Silly quote: Don't just stand there like a sitting duck.