LINUX.IE, website of the Irish Linux Users' Group
Tux rules!

   
Home
New Users
Articles
Download
Projects
Community
Vendors

  Print Version
Email to...
 
Archives:


planetILUG

Recent News

News Archive


Join the
ILUG
on FaceBook


Join the
ILUG
on LinkedIn


Join the
ILUG SETI
Group



















 
 :: Mailing Lists

[ILUG] Computer science education

[ILUG] Computer science education

Brian Foster blf at utvinternet.ie
Fri Feb 6 19:35:44 GMT 2004


  | From: Niall O Broin <niall at linux.ie>
  | Date: Fri, 6 Feb 2004 00:31:59 +0000
  |[ ... ]
  | Say it isn't so . . .

 at least three things have surprised me about this
 “assembly language‟ thread.

 1.  some people claiming programming in anything other than
    <insert some HLL(s) here> is not useful/necessary.  yet
    other posters have given examples where it is vital, and
    everyone on this list is using one or more systems where
    it is done and is necessary.

 2.  some people confusing CS and/or Software Engineering with
    programming.  I myself suspect CS is an overloaded term
    nowadays, but SE, at least in the academic world, is the
    study of programming methodologies and techniques more than
    programming itself.  “The Software Crisis‟ is SE's Big Issue.

    CMM and UML (not user-mode Linux!) are two well(?)-known
    outputs of the SE discipline.  the discipline seems so
    isolated from actual programming there is a raging
    debate whether or not CMM (e.g.) can be applied to CMM
    itself; the code phrase is “is CMM a process?‟.  (AFAIK,
    to a day-to-day programmer, rather sneeringly (IMHO)
    called by the SE academics a “practitioner‟, the answer
    is an obvious “yes‟.)

    OTOH, Software Engineer is also used a lot by for-profit
    HR groupies to mean “expendable programmer‟, so the
    confusion is understandable.  I myself consider few of
    the people (that I know) whose job title (that I also
    know) includes “SE‟ engineers.  also not, in some cases,
    programmers.  practice-(until-it-seems-to-work-)tioners,
    maybe....   ½ ;-)

 3.  “assembly language programming‟ and understanding H/W
    (or bare metal) are not the same thing.  assembly is
    simply a way of expressing a program/algorithm; instead
    of saying
        int a, b;
         ...
        a += b
    you might say instead
        .import _a, _b
         ...
        ld4  r3,  0, _a
        ld4  r4,  0, _b
        add4 r3, r3, r4
        st4  r3,  0, _a
    but (I at least) fail so see any _significant_ difference.
    yes, the (example) assembly requires temporary storage the
    HLL does not seem to, but so what?  and yes, the notation
    is obviously different, but again, so what?  where is the
    fundamental difference?  excepting that assemblers are
    architecture-specific, it doesn't even matter (again in
    any _significant_ manner) what the machine is!  as one
    poster said, you can learn assemblers/assembly as you
    need to.  some people say the same thing about HLLs.

    to use myself as an example, I have written and debugged
    assembly code for machines (plural) whose architecture and
    assembler I never did grasp (at least not well enough to,
    e.g., write an interrupt dispatcher); amusingly, in one
    case this included some microcoding (for which you _do_
    have to grasp the FSM being microcoded!).

    conversely, I was never taught any assembler at U.,
    because I had already self-taught myself two widely
    different ones (the classic PDP-10 (and -20), a 36-bit
    word-addressed machine, and the modern-ish PDP-11,
    a 16-bit byte-addressed machine).  for those who are
    interested, the assembler on offer was IBM 370!  ;-\ 

    if my memory is correct, for that (required) class I
    wrote a code-interpreter for a compiler instead (in
    SIMULA-67).  that experience was one of several which
    was later a great help when I was hired to port a
    certain O/S to a brand new CPU architecture, which
    ultimately involved helping to design and verify that
    architecture (I am a part-holder of a patent on the
    interrupt system, albeit the patent is assigned to
    the company (as is normal practice)).

so, should "CS‟ students be taught assembler?  no, they
should be educated --- which will help them work out
the details themselves, be whether the problem is in
the HLL, the assembler, the microcode, the algorithm,
the HMI, the doc, etc etc etc, the process, and most
importantly perhaps, to proactively recognize/predicate
and maybe/hopefully prevent the problem that will happen.

that education may include a course which includes
practical assembly programming.

cheers!
	-blf-

p.s.  and yes, I have used punched cards.  and a teletype.
     and even (just once!) paper tape.  not sure about the
     coal or the bare feet in the snow however.....  ;-)

--
«How many surrealists does it take to    |  Brian Foster      Montpellier,
 change a lightbulb?  Three.  One calms  |  blf at utvinternet.ie      France
 the warthog, and two fill the bathtub   |    Stop E$$o (ExxonMobile)!
 with brightly-colored machine tools.»   |        http://www.stopesso.com



More information about the ILUG mailing list
Read this without the formatting.
                                                                                                    

 

Hosted by HEAnet


Maintained by the ILUG website team. The aim of Linux.ie is to support and help commercial and private users of Linux in Ireland. You can display ILUG news in your own webpages, read backend information to find out how. Networking services kindly provided by HEAnet, server kindly donated by Dell. Linux is a trademark of Linus Torvalds, used with permission. No penguins were harmed in the production or maintenance of this highly praised website. Looking for the Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!
RSS Version
Powered by Dell