[comp.software-eng] engineer training

cml@care.cs.umd.edu (Christopher Lott) (05/02/91)

In article <1245@grapevine.EBay.Sun.COM> chrisp@regenmeister.EBay.Sun.COM (Chris Prael) writes:
>Most of [ noncreative CS types ] were put on the wrong track by "computer 
>science" training in college and have never had the advantage of being 
>trained by an engineer.  

May a computer-scientist-by-training grad student ask about this in more
detail?  I'm certain you have something very concrete in mind when you refer
to being trained by an engineer, but what?  I have a buddy who is an M.E.;
what did he get in his 5 years of B.S.M.E. education that I missed in my 5
years of B.S.C.I.S. and continuation in grad school?  (Other than diff eq ;-)

chris...
--
Christopher Lott \/ Dept of Comp Sci, Univ of Maryland, College Park, MD 20742
  cml@cs.umd.edu /\ 4122 AV Williams Bldg  301 405-2721 <standard disclaimers>

windley@ted.cs.uidaho.edu (Phillip J. Windley) (05/03/91)

In article <33848@mimsy.umd.edu> cml@care.cs.umd.edu (Christopher Lott) writes:

   May a computer-scientist-by-training grad student ask about this in more
   detail?  I'm certain you have something very concrete in mind when you
   refer to being trained by an engineer, but what?  I have a buddy who is
   an M.E.; what did he get in his 5 years of B.S.M.E. education that I
   missed in my 5 years of B.S.C.I.S. and continuation in grad school?
   (Other than diff eq ;-)

This is a good question.  I have an undergraduate engineering degree and
worked as a mechanical engineer for 5 years before going back to grad
school to finish a PhD in CS.  

On one hand, I'd say that one can't simply perform a diff on the EE and CS
curriculum and conclude that real engineers take loads of calculus and CS
majors only take two semseters, etc.  There's more to it than that or
simply putting engineers in the classroom (many CS professors started out
as engineers). Its starts with knowing how to engineer software and then
teaching it.  There are some very good engineering techniques that CS
majors never even hear about (or hear about too late in their senior year).
There are others that we (CS/SE people) don't have a clue how to do.  I
suggest Mary Shaw's piece in IEEE Software (Sep or Nov, 1990) for an
interesting perspective.

One the other hand, there must be something since I talk to a number of
companies that hire EE's to write software for them because years of
experience have taught them that they get better code that way.  Why?  I
don't know.  I suspect that some of it has to do with this attitude that I
find is all too prevelant in CS that software can't be engineered since its
different than everything else that's ever been done.

You'd be surprised how many CS people think an OS is the most complicated
thing man has ever built. I'd like to show them an aircraft carrier under
construction. If you want to measure an OS's complexity, consider that
Ultrix comes an a CD that would hold about 75 minutes worth of music.
Granted, music is written at a much (MUCH) higher level abstraction.
--
Phil Windley                          |  windley@cs.uidaho.edu
Assistant Professor		      |  windley@cheetah.cs.uidaho.edu
Department of Computer Science        |
University of Idaho                   |  Phone: 208.885.6501  
Moscow, ID 83843                      |  Fax:   208.885.6645

lewallen@uoftcse.cse.utoledo.edu (James H. Lewallen) (05/19/91)

     I don't know about everywhere else, but here at the University
of Toledo, we have a Computer Science & Engineering program.  CS&E
students have to take 6 quarters of calculus, and many basic engineering
classes, such as Statics, Dynamics, Network Analysis, MicroElectronics,
etc.  This does give students an "Engineering" background that helps
teach them to use Engineering methods in designing software.

					Jim Lewallen
					cscon113@uoft02.utoledo.edu

lewallen@uoftcse.cse.utoledo.edu (James H. Lewallen) (05/21/91)

iverson@xstor.com (Tim Iverson) writes:
> In article <1991May19.135145.3589@uoft02.utoledo.edu> lewallen@uoftcse.cse.utoledo.edu (James H. Lewallen) writes:
> >     I don't know about everywhere else, but here at the University
> >of Toledo, we have a Computer Science & Engineering program.  CS&E
> >students have to take 6 quarters of calculus, and many basic engineering
> >classes, such as Statics, Dynamics, Network Analysis, MicroElectronics,
> >etc.  This does give students an "Engineering" background that helps
> >teach them to use Engineering methods in designing software.
> 
> I would beg to differ with this opinion.  I came from a similar background
> at UC Berkeley, and while I agree wholeheartedly with the generalist
> approach, UoT (and Berkeley, and perhaps others) seem to provide their
> students with all the tools they need, but then leave out how to combine
> them effectively - all analysis and no synthesis won't make Johnny a good
> engineer.
> 
> By the time most students actually get into industry, the background skills
> By the time most students actually get into industry, the background skills
> have atrophied to the point of non-existence.  This is due solely to the lack
> of emphasis placed on combining the all the disparate skills taught into a
> single useful whole.  Borrowing a term from chemistry 101 - today's
> graduates are more mixture than compound.
> 
> >					Jim Lewallen
> >					cscon113@uoft02.utoledo.edu
> 
> - Tim Iverson
>   iverson@xstor.com -/- uunet!xstor!iverson

     Well, I agree with most of your points, but I believe the idea is that
the students take the basic "engineering" courses early, learn the ideas of
"research, design, and then implementation" before they get into the Computer
Science classes.  By using this "engineering methodology", students hopefully
will learn to do the groundwork before coding, thus avoiding problems along
the way, and creating better code.


					Jim Lewallen
					cscon113@uoft02.utoledo.edu

iverson@xstor.com (Tim Iverson) (05/21/91)

In article <1991May19.135145.3589@uoft02.utoledo.edu> lewallen@uoftcse.cse.utoledo.edu (James H. Lewallen) writes:
>     I don't know about everywhere else, but here at the University
>of Toledo, we have a Computer Science & Engineering program.  CS&E
>students have to take 6 quarters of calculus, and many basic engineering
>classes, such as Statics, Dynamics, Network Analysis, MicroElectronics,
>etc.  This does give students an "Engineering" background that helps
>teach them to use Engineering methods in designing software.

I would beg to differ with this opinion.  I came from a similar background
at UC Berkeley, and while I agree wholeheartedly with the generalist
approach, UoT (and Berkeley, and perhaps others) seem to provide their
students with all the tools they need, but then leave out how to combine
them effectively - all analysis and no synthesis won't make Johnny a good
engineer.

By the time most students actually get into industry, the background skills
have atrophied to the point of non-existence.  This is due solely to the lack
of emphasis placed on combining the all the disparate skills taught into a
single useful whole.  Borrowing a term from chemistry 101 - today's
graduates are more mixture than compound.

>					Jim Lewallen
>					cscon113@uoft02.utoledo.edu

- Tim Iverson
  iverson@xstor.com -/- uunet!xstor!iverson

dc@sci.UUCP (D. C. Sessions) (05/23/91)

In article <1991May19.135145.3589@uoft02.utoledo.edu> lewallen@uoftcse.cse.utoledo.edu (James H. Lewallen) writes:
>
>     I don't know about everywhere else, but here at the University
>of Toledo, we have a Computer Science & Engineering program.  CS&E
>students have to take 6 quarters of calculus, and many basic engineering
>classes, such as Statics, Dynamics, Network Analysis, MicroElectronics,
>etc.  This does give students an "Engineering" background that helps
>teach them to use Engineering methods in designing software.
>
>					Jim Lewallen

The trouble with this is that it isn't engineering.  Technology, yes;
but not engineering.  I haven't yet heard of an American university that
teaches engineering at all; they leave that to employers after graduation.

You can perform a simple test to check on whether a university actually
teaches engineering, if you want to: look through the catalog for a
course on revision control methodology.  (I propose that revision control
is absolutely necessary to real engineering; anything else is tinkering
at best.)  Bet you won't find one.  For damn sure you won't find it as
a core course.


-- 
| The above opinions may not be original, but they are mine and mine alone. |
|            "While it may not be for you to complete the task,             |
|                 neither are you free to refrain from it."                 |
+-=-=-    (I wish this _was_ original!)        D. C. Sessions          -=-=-+