[comp.software-eng] Software Engineering Education

tonyw@ide.UUCP (Tony Wasserman) (11/27/89)

Ken Ritchie <netxcom!netxdev!kcr@uunet.uu.net>
remembered that many of these issues around computer science
education vs. software engineering education have been discussed
for quite a long time.  He recalled some of the work that I did 
in the late 1970's:

> As I recall, he [Tony Wasserman] described a 5-faceted program of
> inter-disciplinary studies (or competency) -- one of which was
> computer science (CS).

and offered to dig out the references.  Let me try to help:

Here are five references on software engineering education from that era.

Wasserman, A.I. and P. Freeman (eds.),
Software Engineering Education: Needs and Objectives.
New York: Springer Verlag, 1976.

Freeman, P., A.I. Wasserman, and R. Fairley,
"Essential Elements of Software Engineering Education,"
Proc. 2nd Int'l Conf. on Software Engineering, 1976, pp. 116-122.

Wasserman, A.I. and P. Freeman,
"Software Engineering Concepts and Computer Science Curricula,"
Computer, vol. 10, no. 6 (June, 1977), pp. 85-91.

Wasserman, A.I. and P. Freeman,
"Software Engineering Education: Status and Prospects,"
Proceedings of the IEEE,
vol. 66, no. 8 (August, 1978), pp. 886-892.

Freeman, P. and A.I. Wasserman,
"A Proposed Curriculum for Software Engineering Education,"
Proc. 3rd Int'l Conf. on Software Engineering, 1978, pp. 56-62.

The first one is the proceedings of a university-industry workshop held
in February 1976 to describe approaches, issues, and problems
in software engineering education.  It may still be available.
People who have also seen the proceedings of the more recent SEI workshops on
software engineering education (edited by Norm Gibbs and also published
by Springer Verlag) will note that there is very little new ground there.

The second article defines the five disciplines that comprise an
education in software engineering.  We termed these areas
	computer science
	management science
	communication skills
	problem solving
	design methodology

The basic idea was very simple -- education in software engineering 
required material that was not (and still is not) available in computer
science and information systems curricula.

Looking back on this list, it still looks pretty reasonable to me, but
of course I'm biased.  The same problems still exist, in that computer
science curricula focus on foundations of computer science and development
of individual programming skills.  All of that is valuable, indeed
essential, to being a good software engineer.  

But now there is the issue of added value -- to build on the foundation
in computer science to produce individuals who are capable of analyzing
complex problems, designing solutions, and following an organized software
development process to create a system.  An entry-level software engineer
is a member of a group and must work with that group and with outsiders
(customers, QA, etc.).  A more experienced software engineer must be able
to manage the group and to estimate/allocate all of the resources needed
to build the system.  That's where these other disciplines come in.

The other articles expand on these themes and the last is even so bold as to
propose a real curriculum.  This proposal had some influence on the 
development of an IEEE CS curriculum for an MS in Software Engineering,
as well as on the original curriculum of the Wang Institute.

As a professor, I taught software engineering classes from 1975 through 1987.
Although we used group projects and emphasized analysis and design, I would
characterize the courses as "software engineering appreciation" rather than
true software engineering, which is infeasible in the academic setting.

As founder and president of Interactive Development Environments (IDE),
I now have a different perspective on the same set of issues. 
Over the years, we have found growing demand for education on
software development methods, not just on our tools (Software through Pictures).
The pragmatic need for a software engineering process, combined with an
academic appreciation of the issues, provides a good setting in which to
do very practical software engineering education.
IDE offers a series of such courses.

After all these years, I am pretty tired of this general area of
discussion, and don't promise to participate in further discussion on
this topic.  My main concern these days is to improve the methods and processes
of software engineering, and to develop tools and training in support
of those methods and processes.

Tony Wasserman
Interactive Development Environments
595 Market Street, 12th floor
San Francisco, CA 94105
Tel: 1 + 415 543 0900
Fax: 1 + 415 543 3716
Email: tonyw@ide.com   or  ide!tonyw@uunet.uu.net

soft-eng@mwunix.mitre.org