Computer Science or Computer Engineering:
What's the Difference?
Studying Computers: Ever-Developing Disciplines
It used to be simple: Computer Science (CS) was the study of software and
algorithms, Computer Engineering (CE) was the design of hardware and systems, and Computer
Science and Engineering (CSE) attempted to cover both. Today, however, the distinction
is less clear and the strict "hardware versus software" or "scientific
theory versus engineering application" interpretation of these titles is no longer
adequate.
The strict boundary between hardware and software no longer exists. For example, most
modern hardware devices employ embedded "microprogramming" for improved
flexibility and graphics software is often made faster through the use of "hardware
accelerators." And now "software engineering" combines the science of
programming with engineering skills such as requirements gathering, quality assurance, and
life cycle management.
Common Set of Technical Courses
Contemporary trends in technology are forcing CS and CE degree programs to prepare
their own students with a working knowledge of both areas. Today's students need to, and
do, study subjects across the breadth of computing and often compete for similar positions
in industry.
Both CS and CE programs build on a solid foundation of mathematics (starting with 4
courses of Calculus and a course in Differential Equations) and science (including at
least two lab courses in Physics). They include several lower division courses in
computers which include writing computer programs. (Such courses presume that students
have found the study of mathematics and science in high school relatively easy and
enjoyable!)
Both CS and CE majors take courses in "Computer Organization and Embedded Systems
Programming" (COEN 20) and "Introduction to Logic Design" (COEN 21) from
faculty in the Computer Engineering Department. Both CS and CE majors take a course in
"The Theory of Algorithms" (in addition to Calculus courses) from faculty in the
Department of Mathematics and Computer Science. There are other opportunities for majors
in one department to take courses taught by faculty of the other department.
Because of the number of courses that are common to both majors, looking at the courses
alone does not do justice to the difference between a Computer Science and a Computer
Engineering major. Perhaps the clearest distinction is to speak about the
"context" of the majors. The Computer Science major finds its home in the
Department of Mathematics and Computer Science in the College of Arts and Sciences. The
Computer Engineering major finds its home in the School of Engineering. These
"contexts" color a student's approach toward the discipline, toward courses, and
toward a future career. (The contexts of the College of Arts and Sciences and the
School of Engineering are briefly described on the page: Undergraduate
Degree Programs in Computing at Santa Clara University: Three Distinct Programs)