Path: utzoo!attcan!uunet!kddlab!trl!rdmei!iegva1!creamy!oucom2!digigw!gday From: gday@digigw.lab.digital.co.jp (Gordon Day) Newsgroups: comp.software-eng Subject: Re: Assembler and teaching Software engineering Summary: I have PDP-8 on MY resume and am damn proud of it! Message-ID: <308@digigw.lab.digital.co.jp> Date: 20 Mar 90 02:58:21 GMT References: <891@gistdev.gist.com> <1003@dms.UUCP> <1940@opus.cs.mcgill.ca> Organization: Digital Electronics Corp., Osaka, Japan Lines: 50 In article <1940@opus.cs.mcgill.ca>, peterd@opus.cs.mcgill.ca (Peter Deutsch) writes: [ an extremely long, but worthwhile set of observations removed] > So what do others think about using such > a course as a first exposure to software engineering. And > if it is such a bad idea, how _should_ it be done? > > Enquiring minds want to know.... > Well, I'm not sure about the benefit to the understanding of software engineering concepts of the type of course you describe (I'm one of the OOPS crowd =:-)), unless we also assume that a clear understanding of the Von Neumann architecture benefits the student as a base for other concepts in the future (e.g. recursion, task switching, etc. (yes, I know, these are applications, not S.E. per se)). I am a little concerned about your comment about the 500 line assembly program. In my experience, carefull design in assembler code might get you partway there, but debugging (A REAL TIME WASTER FOR STUDENTS!!) occupies most of the students time. Now, you may have an effective debugging setup for them, in which case it's not so bad, but if we are talking about S.E., isn't assembly teaching students the nasty things as well? global data space, zero security, "just stuff a jmp in there, son", etc. I don't necessarily disagree with you, but please define the area of S.E. you are addressing. Now on to the interesting bit. I am a recent Univ. grad in Computer Science and in my second year I had a course just as you describe. We used PDP-8 assembler running on a simulator and our big project (in Pascal, NOT a.lang.) was to write the assembler for a subset of the language (you can imagine how many instructions were left...). We worked up from handcoding in octal to assembly language, culminating in designing an assembler. This is one of 3 CS courses I took out of about 20 that still stays in my mind as one of the most enjoyable and valuable in University. I don't really list PDP-8 on my resume, but then who really needs to list assembly on a resume now? However, given the background of the course I took I easily learned 68000 and 8088 in a very short time. My understanding of it all "really works" did _really_ help in my later O/S courses and in my understanding the underlying stack operations in C (very necessary to really master the language, IMHO). One qualification however, I learned my languages in the following order: BASIC, Pascal, PL/1, _then_ assembly. I strongly feel that the first (or even second) course a student hits should NOT be assembler. It just ain't friendly, folks. gday@digital.co.jp%uunet.uu.net (Japan's not so bad, mate) =:!