Frequently Asked Questions about computer engineering and computer science

What is the difference between computer engineering and computer science?

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.