The most common question the department receives relates to defining Computer
Engineering as compared to with Computer Science. First of all, Computer Science
is not programming although it does deal with the fundamental concepts of programming
and computers. Software engineering is actually the most relevant field for
someone interested in programming.
At the undergraduate level neither Computer Science or Computer Engineering
(or Electrical Engineering or Systems & Control Engineering) is very specific
to a particular technical area. Typically specificity comes from a graduate
degree a large number of our students eventually go on to get a master's
level degree.
Computer Science deals with the science of computing. This requires much more
mathematics than the Computer Engineering degree and is well suited for someone
with a math aptitude. For example,
our Computer Science curriculum requires studentsto
take Discrete Math, Statistics, Data Structures/Algorithms, and Theoretical
Computer Science (essentially all math classes) beyond the traditional two years
of calculus and differential equations which is required of all our students.
Many Computer Science students take additional math in areas like number theory,
statistics, and cryptography. The Computer Engineering program at Case sits
between Computer Science and Electrical Engineering (which some regard as broader
than either computer science or computer engineering). As such computer engineering
does not have quite as much emphasis on mathematics but has a stronger emphasis
on computer hardware, i.e., digital design, very large scale integrated circuit
(VLSI) design, etc. Both Computer Science and Computer Engineering share a number
of classes which have strong programming components. These include ENGR 131
Introduction to Programming, EECS 233 Intro. to Data Structures, and EECS 337
Systems Programming.
Our Computer Engineering curriculum has two "tracks:" hardware and
software. Students interested in software will take classes such as EECS 338
Intro to Operating Systems whereas students more interested in hardware will
take classes such as EECS 318 VLSI CAD. There are also many courses which may
be taken by students in either program. For example, Computer Scientists are
required to take EECS 345 Programming Language Concepts and EECS 398 Software
Engineering; however, many Computer Engineers also take these classes.
The Electrical Engineering curriculum requires classes which emphasize the
fundamentals of programming, circuits (analog and digital), signals & systems,
electromagnetic fielda and semiconductor electronics. Students must choose a
depth area in which they take three classes. Professional breadth comes from
technical electives and open electives.
The Systems & Control Engineering program is one of only a few such programs
in the country. Systems and Control Engineers are trained in the skills and
tools that bring together the efforts of several engineering fields, to put
all of the component subsystems together, to coordinate and integrate the efforts
of different specialists. The Systems and Control curriculum contains required
courses such as Engineering Optimization, Computer Simulation, Systems Modeling,
Control Systems Design and Analysis, Signal Analysis, Decision Theory and Engineering
Economics, as well as advanced. mathematics and statistics courses. Students
take courses from many other engineering departments. There are three elective
sequence options within the major: control systems, systems analysis, and manufacturing
and industrial systems .
All the engineering programs culminate in a senior project experience in which
students bring together all of their engineering training to solve a significant
engineering design problem.
Note: Detailed descriptions of department classes are found here.