[net.cse] EE, CE, and CS curriculums

mcderm@ittvax.ATC.ITT.UUCP (Robert M. McDermott) (09/23/86)

     I have been reading with interest the recent debate regarding
EE courses in a CS curriculum, and offer my opinion:

[my "credentials": B.E.E., M.S. in Systems Analysis, M.S. in Computer
Science, 16 years experience, half EE, half CS. I've taught math & CS at a
local technical college, and VLSI design and CAD in company courses. I've
written a book on Computer Aided Logic Design.]

First, I have to admit I'm biased -- all of my experience has been
in the Technical Field (i.e. not Banking, DBMS, etc.), so my perspective
is in light of CS skills required to succeed in Engineering.  Second, I
have to define my definition of CS vs. CE -- My naive definition of a CE
is a person who designs computer hardware and 'kernal'-type software, while
a CS is one who designs application-type software.  ("Design" herein is
used in the most general sense, e.g. a CE-researcher researches ways of
designing hardware better, a CE-salesperson sells the design, etc...)

I believe that a CE should have all the rigorous Engineering training
other Engineering disciplines have (e.g. we all took the same math,
physics, etc. courses, then I had to take Mechanical, Civil, and Power
Engineering courses, they had to take EE, etc.).  I would have the CEs 
take the basic EE courses, then take CE courses in lieu of the high-
powered EE courses like Communications theory, Field theory, etc.
(CE courses would be Computer architecture, Data Structures, etc.)

The CS field, though, should have the majority of CS courses deal with
Software-specific issues and knowledge-processing principles ("Programming"
and "Information-processing" have too many connotations, hence the terms
used).  Too often, non-CS people get involved in writing code or developing
algorithms and the results are disastrous by all CS standards;  a CS
discipline is necessary and warrented, but I don't believe it should be
in a vacuum of software-only.  I would structure the CS curriculum to have
a smattering of many application disciplines, more akin to a Liberal-Arts
type curriculum, but with a focus on attempting to solve the problems in 
those disciplines using their CS knowledge.  In their 'Business' electives,
for example, they would take a Finance course and along with that course 
discuss how a General Ledger Program or system would be formulated, or 
discuss the deficiencies of existing General Ledger Programs.  The 
logical argument against such an approach is that it's significantly
more work than a Finance course, and there's only a limited number
of hours per day, ...  True enough, except that you don't need to 
cover all the details of Finance, just enough to get the feel for the
problem domain and learn a few of the underlying principles and concepts.
Similarly, math or engineering courses could introduce the principles, 
with a portion of the class devoted to discussing algorithms and techniques
used to address the field (Sparse matrix, Gauss elimination, etc.).

[Some would argue that such a curriculum is too job-oriented; but in my
experience many "pure" CS programs leave B.S. level graduates with no real
concept as to how to apply the education they've received, and convey the
impression that CS is a worthwhile endeavor in and of itself, independent
of applications. It is my belief that theory and research are within the
purview of MS and PHD level programs, but BS programs should concentrate on
developing learning and problem-solving abilities. ... but such is the 
opening to a whole other debate on this net...  ]
 
Back to the basic topic, EE in a CS curriculum,  I think it must be
recognized that there is a special relationship between electronics and
computer science, much as exists between mathematics and engineering,
psychology and education, accounting and management, etc.  Certainly one
can be a good manager without knowing accounting fundamentals, a good
teacher without formal training in psychology, etc. but few people would
argue that a persons ability and potential are strengthened by a basic
understanding of the principles behind the tools they use.  I would not
propose using true "EE" courses, but rather introductory courses in digital
logic, computer architecture, and communications  -- my basic guideline
would be to cover those areas which the "average person" would consider
that a "Computer-person" would know  (then translate "average person" to
"average employer").

end of comment ------------------------------------
now a Commercial message:

I have published a book "COMPUTER AIDED LOGIC DESIGN", Howard Sams Co.,
1985, ISBN# 0-672-22436-4, $25.95, which can be used as either the
introductory text for a basic course in Digital Logic, or as one of 
the text for an application-directed course in CAD.

-------------------------------------------------------
Robert M. McDermott

(all the appropriate caveats...)

st122@sdcc12.UUCP (st122) (09/25/86)

In article <616@ittvax.ATC.ITT.UUCP>, mcderm@ittvax.ATC.ITT.UUCP (Robert M. McDermott) writes:
> 
>      I have been reading with interest the recent debate regarding
> EE courses in a CS curriculum, and offer my opinion:
> 
> [my "credentials": B.E.E., M.S. in Systems Analysis, M.S. in Computer
> Science, 16 years experience, half EE, half CS. I've taught math & CS at a
> local technical college, and VLSI design and CAD in company courses. I've
> written a book on Computer Aided Logic Design.]
> 
> First, I have to admit I'm biased -- all of my experience has been
> in the Technical Field (i.e. not Banking, DBMS, etc.), so my perspective
> is in light of CS skills required to succeed in Engineering.  Second, I
> have to define my definition of CS vs. CE -- My naive definition of a CE
> is a person who designs computer hardware and 'kernal'-type software, while
> a CS is one who designs application-type software.  ("Design" herein is
> used in the most general sense, e.g. a CE-researcher researches ways of
> designing hardware better, a CE-salesperson sells the design, etc...)
> 
> I believe that a CE should have all the rigorous Engineering training
> other Engineering disciplines have (e.g. we all took the same math,
> physics, etc. courses, then I had to take Mechanical, Civil, and Power
> Engineering courses, they had to take EE, etc.).  I would have the CEs 
> take the basic EE courses, then take CE courses in lieu of the high-
> powered EE courses like Communications theory, Field theory, etc.
> (CE courses would be Computer architecture, Data Structures, etc.)
> 
> The CS field, though, should have the majority of CS courses deal with
> Software-specific issues and knowledge-processing principles ("Programming"
> and "Information-processing" have too many connotations, hence the terms
> used).  Too often, non-CS people get involved in writing code or developing
> algorithms and the results are disastrous by all CS standards;  a CS
> discipline is necessary and warrented, but I don't believe it should be
> in a vacuum of software-only.  I would structure the CS curriculum to have
> a smattering of many application disciplines, more akin to a Liberal-Arts
> type curriculum, but with a focus on attempting to solve the problems in 
> those disciplines using their CS knowledge.  In their 'Business' electives,
> for example, they would take a Finance course and along with that course 
> discuss how a General Ledger Program or system would be formulated, or 
> discuss the deficiencies of existing General Ledger Programs.  The 
> logical argument against such an approach is that it's significantly
> more work than a Finance course, and there's only a limited number
> of hours per day, ...  True enough, except that you don't need to 
> cover all the details of Finance, just enough to get the feel for the
> problem domain and learn a few of the underlying principles and concepts.
> Similarly, math or engineering courses could introduce the principles, 
> with a portion of the class devoted to discussing algorithms and techniques
> used to address the field (Sparse matrix, Gauss elimination, etc.).
> 
> [Some would argue that such a curriculum is too job-oriented; but in my
> experience many "pure" CS programs leave B.S. level graduates with no real
> concept as to how to apply the education they've received, and convey the
> impression that CS is a worthwhile endeavor in and of itself, independent
> of applications. It is my belief that theory and research are within the
> purview of MS and PHD level programs, but BS programs should concentrate on
> developing learning and problem-solving abilities. ... but such is the 
> opening to a whole other debate on this net...  ]
>  
> Back to the basic topic, EE in a CS curriculum,  I think it must be
> recognized that there is a special relationship between electronics and
> computer science, much as exists between mathematics and engineering,
> psychology and education, accounting and management, etc.  Certainly one
> can be a good manager without knowing accounting fundamentals, a good
> teacher without formal training in psychology, etc. but few people would
> argue that a persons ability and potential are strengthened by a basic
> understanding of the principles behind the tools they use.  I would not
> propose using true "EE" courses, but rather introductory courses in digital
> logic, computer architecture, and communications  -- my basic guideline
> would be to cover those areas which the "average person" would consider
> that a "Computer-person" would know  (then translate "average person" to
> "average employer").
> 
> end of comment ------------------------------------
> 
> Robert M. McDermott
>