[comp.edu] CS and CompE

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

In article <13371@exodus.Eng.Sun.COM> stlin@stevelin.Eng.Sun.COM (Steven Lin) writes:

   The difference is obvious: Computer engineering major students have to
   meet the requirement of hardware design courses (of course software
   courses too). On the other hand, the CS students do not have the
   requirement to take hardware design courses. This does not mean that a
   CS major has no capability to take hardware courses and later becomes a
   hardware designer. And a CE major can be a software designer if he
   wishes to do so. The difference tells that CS is oriented to software
   and CE is oriented on hardware, and the faculty and equipment will be
   significant different in schools for these two fields.

We are grappling with this issue right now.  Political pressure in the
state has made the VP for Academic Affairs decide that there should be a
CompE degree offered here.  The problem is that the new degree program will
get its resources from existing departments (read CS and EE).  There are
insufficient resources to accredit all three programs so this has led to
long meetings with faculty examining what CompE is.

I'm not sure that we ever reached a concensus about what CompE is.  I don't
think, as Mr. Lin does that the difference is an emphasis on hardware vs
software.  One could well imagine a CS degree with two different kinds of
emphasis.  I rather think that it is an attempt by industry to get
something for nothing.  They want someone with the specialization one would
would normally get in an MS degree for the price of someone with a BS.

The biggest problem in my mind is that no one (faculty) I know feels
comfortable recommending that a student major in CompE.  The problem is
that there just aren't that many jobs advertised for CompE majors.  Thus,
everytime a CompE grad goes to an inteerview they have to start by
convincing the interviewer that they really do have the background to do
the job.  Interestingly enough, the company that put so much pressure on us
to offer a CompE degree didn't even list CompE in the degrees they were
interested in interviewing this year.

--phil--

--
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

dwgordon@matt.ksu.ksu.edu (Dwight W. Gordon) (05/17/91)

windley@ted.cs.uidaho.edu (Phillip J. Windley) writes:


>In article <13371@exodus.Eng.Sun.COM> stlin@stevelin.Eng.Sun.COM (Steven Lin) writes:

>   The difference is obvious: Computer engineering major students have to
>   meet the requirement of hardware design courses (of course software
>   courses too). On the other hand, the CS students do not have the
>   requirement to take hardware design courses. This does not mean that a
>   CS major has no capability to take hardware courses and later becomes a
>   hardware designer. And a CE major can be a software designer if he
>   wishes to do so. The difference tells that CS is oriented to software
>   and CE is oriented on hardware, and the faculty and equipment will be
>   significant different in schools for these two fields.

   Actually, at Kansas State, our CompE's are oriented to the bridge
that spans both the hardware and software points of view.  IMHO they
can program (but not as well as a Software Engineer), and they can
design and deal with hardware (but, perhaps, not as well as a "die
hard" EE).
   Previous graduates have found themselves in departments dominated
by either extreme.  One graduate, now at HP, told me that he was the
only person with hardware experience in his department (a department
full of Software Engineers).  Others have found themselves programming.

>...

>The biggest problem in my mind is that no one (faculty) I know feels
>comfortable recommending that a student major in CompE.  The problem is
>that there just aren't that many jobs advertised for CompE majors.  Thus,
>everytime a CompE grad goes to an inteerview they have to start by
>convincing the interviewer that they really do have the background to do
>the job.  Interestingly enough, the company that put so much pressure on us
>to offer a CompE degree didn't even list CompE in the degrees they were
>interested in interviewing this year.

  It's the same way here!  Companies request EE's with extensive
digital design and software experience, but they don't want a CompE!

- Dwight -

--
Dwight W. Gordon, Ph.D.                     Kansas State University
dwgordon@matt.ksu.ksu.edu             Electrical and Computer Engineering
dwgordon@ksuvm.bitnet                             Durland Hall
Phone 913-532-5600; FAX 913-532-7810        Manhattan, KS 66506-5105

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

In article <1991May16.202233.17134@maverick.ksu.ksu.edu> dwgordon@matt.ksu.ksu.edu (Dwight W. Gordon) writes:

   windley@ted.cs.uidaho.edu (Phillip J. Windley) writes:
   >The biggest problem in my mind is that no one (faculty) I know feels
   >comfortable recommending that a student major in CompE.  The problem is
   >that there just aren't that many jobs advertised for CompE majors.  Thus,
   >everytime a CompE grad goes to an inteerview they have to start by
   >convincing the interviewer that they really do have the background to do
   >the job.  Interestingly enough, the company that put so much pressure on us
   >to offer a CompE degree didn't even list CompE in the degrees they were
   >interested in interviewing this year.

     It's the same way here!  Companies request EE's with extensive
   digital design and software experience, but they don't want a CompE!

So, let's here it: 

Anybody in a company out there just dying to hire CompE's?

Anybody in a school with a CompE degree finding jobs?

--
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

torek@elf.ee.lbl.gov (Chris Torek) (05/28/91)

In article <1991May16.202233.17134@maverick.ksu.ksu.edu>
dwgordon@matt.ksu.ksu.edu (Dwight W. Gordon) writes:
>... at Kansas State, our CompE's are oriented to the bridge that
>spans both the hardware and software points of view. ...
>   Previous graduates have found themselves in departments dominated
>by either extreme.  One graduate, now at HP, told me that he was the
>only person with hardware experience in his department (a department
>full of Software Engineers).  Others have found themselves programming.

I find this entirely unsurprising.

These two Hoary Old Terms provide a nice analogy:  `bottom-up
programming' and `top-down programming'.  These refer to the idea of
`solving a problem by taking existing building blocks and putting
together a solution' and `solving a problem by breaking it down into
sub-problems and solving each one'.  Neither method is The Answer;
indeed, the bottom-up folks once put out a poster in which people were
seen building a bridge `top down':  placing bricks in the air, with no
visible support, so that when they were done the two ends should meet
the ground.  (I never saw anything equivalent from the top-down
people.  Ah well.)

What is really done, when one understands the problem sufficiently,
is to use both approaches together: break the problem into the appropriate
pieces (not just any old pieces) and solve them with existing techniques.

The same is true for computer manufacturers.  They have people who know
how to build hardware, and they have people who know how to write
software.  Thus, they divide the problem in two:  Group A builds the
machine and Group B writes software for it.  The typical problem that
occured was a lack of communications between the two groups.
Manufacturers recognized this years ago and did something about it; the
hardware designers normally operate with information from the software
group, and vice versa.  This is all well and good, but it tends to
start and end at a fairly abstract level (`we would like this
instruction to work this way' or `it would help if the device did this
under these conditions').

One of the reasons for this is, naturally, that Group A is not expected
to know how to do Group B's job, and vice versa.  Group A is supposed
to know hardware in depth, and Group B is supposed to know software in
depth, and there is a pervasive belief that no one can do both.  This
is even true to a large extent (particularly when `in depth' means down
to the solid-state-physics level on the one hand, or down to the cost
of each system call on the other).  But this can be taken too far, and
usually *is* taken too far.

The hardware is done and the software people are writing code.
Something goes wrong and the software people hunt and hunt for their
bug.  But wait, it turns out it is a hardware bug: the computer gives
the wrong answer when the instruction crosses a page boundary and the
address is in the `extra' segment and the latch feeding the full
address to the adder is just a nanosecond too slow and the carry-ahead
loses a bit.  The average programmer would never guess the true cause,
and might spend a *long* time before blaming the hardware, but without
a likely mechanism.  Finding this bug requires, if not luck, knowing
something about how the hardware works, knowing that timing problems
can occur, knowing to look for suspicious signs like `instruction on
page boundary can delay inputs to address latches'.  The Computer
Organization course taught in many undergraduate CS degree programs
does not go into this much detail.

Is the cure, then, to each everyone everything?  No---this is at best
overkill, at worst a terrible waste of time and effort.  But teaching
*someone* everything, or as much of everything as possible, why, that
is a different matter entirely.  Cross-discipline training is valuable,
sometimes in surprising ways.  The generalist, the one who knows a
little about everything, seems to me to be undervalued.

(Incidentally, I do not claim to be a true generalist, although I do
seem to have found an unusual path, having started with `general science'
interests in elementary school and gone to electricity and electronics
in junior high, thence to computers in high school, so that I have a
reasonably vague idea what transistors *really* do and how hardware
*really* works.

This also has some bearing on a separate discussion, about `math
education'.  While most of you are probably doing the same thing I
am---working from your own memory of your <elementary/junior high/high
school/college> days---perhaps you have managed to forget something
that I suspect remains true to this day:  Being `smart' got you nowhere
with your peers.  Sometimes it did not work too well with the teachers
either, at least if you, like me, would try to correct them....  At
social skills, I always was a slow learner.  [Do I detect a hint of
bitterness in my own writing?  It is there, I suppose, but I think it
got overstated here.  Things were not really *that* bad for me.])
-- 
In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427)
Berkeley, CA		Domain:	torek@ee.lbl.gov