comp.lang.ada
 help / color / mirror / Atom feed
From: 4526P@NAVPGS.BITNET ("LT Scott A. Norton, USN")
Subject: Re: Ada Education and Training - Part 3
Date: Thu, 14-May-87 20:06:02 EDT	[thread overview]
Date: Thu May 14 20:06:02 1987
Message-ID: <8705150259.AA09313@ucbvax.Berkeley.EDU> (raw)

In <1061@ico.UUCP>, hao!ico!rcd@ames.arpa (Dick Dunn) remarked,

"A somewhat worse confusion over teaching 'programming' (I would rather
 a less loaded term implying 'the complete process of constructing
 functioning software') immediately follows in Berard's article:"

I think the term he wants is "software engineering."

The hard part about teaching software engineering is that the need for
good engineering is not apparent at the classroom level.  The programs
that are written by individuals in an undergraduate software course are
less than a thousand lines.  They can be fully understood by one
person.  They do not undergo maintenance, and do not have to adapt to
changes in the environment, new hardware, or changed specifications.
They usually do not need to be robust, since they are not used by many
different users or under tight constraints.

There is certainly a skill called "Programming." Selecting algorithms
and data structures, making loops start and stop in the right places,
avoiding deadlocks; they are all part of programming.  But, when you
move to programs of over one million lines, the problems you face are
different.  Consistancy of the specification becomes more difficult.
Testing and debugging become more difficult ( some people say
impossible ) Training new staff is necessary as the work progresses.
As people leave the project, the knowledge they have must be passed
down to the remaining staff.  Its not a difference in scale, its a
difference in kind.

If you teach a course in programming, you expect people to come out of
it knowing how to write code.  Give them clear specifications and they
should be able to write modules that will meet the specs.  But writing
the specs, making the design decisions that determine the specs,
managing the programmers, designing tests, chasing down the
requirements that the system must meet, developing the documentation,
training the staff ( not how to code, but what the project is supposed
to do ) are part of the larger world of software engineering.  Its a
different dicipline, and can't be taught in a single course.

Ada is supposed to be a language that makes it easier to match modules
to specs, design tests, eliminate some tacit assumptions about
interfaces, and make code more readable to ease the problems of
bringing new people into a project or of doing maintenance.  Ada will
be successful if it improves not only coding, with its 15% of the load,
but also these other areas.

Programming : Software Engineering :: Word Processing : Writing a novel

When I was in fourth grade, I thought that higher math was being able
to do, like, really big long division problems.

LT Scott A. Norton, USN
Naval Postgraduate School
Monterey, CA 93943-5018
4526P@NavPGS.BITNET

             reply	other threads:[~1987-05-15  0:06 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1987-05-15  0:06 "LT Scott A. Norton, USN" [this message]
  -- strict thread matches above, loose matches on Subject: below --
1987-05-03 19:23 Ada Education and Training - Part 3 Edward V. Berard
1987-05-13  7:45 ` Dick Dunn
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox