Students considering a career centered on computers and computing often ask for clarification about the difference between computer engineering (CompE) and computer science (CompSci), and how Duke undergraduate curriculum reflects this relationship. There are philosophical as well as practical answers to these questions. Both CompE and CompSci study the use of the digital computer as a tool that makes possible much of modern technology and the overlap between the two fields is significant. Both disciplines study the inner workings of computers and both study hardware as well as software aspects of computer systems. The differences are those of emphasis. Students in CompSci, CompE, or Electrical and Computer Engineering will all study programming and basic computer operation.
Computer Science is traditionally more concerned with the theoretical underpinnings of computation and of programming; thus one typically finds courses in programming, algorithms, numerical analysis (how do you guarantee a number produced by a computer program is accurate), and the theory of computation (what can and cannot in principle be computed) in CompSci departments. Many CompSci departments at U.S. universities were offshoots from math departments in the 1970s, and the emphasis on providing a rigorous mathematical foundation for the computing disciplines is still evident in many CompSci curricula.
Computer engineering programs largely developed in engineering departments strong in electrical engineering. CompE focuses on the practical aspects of development and use of computers, and so courses in digital logic design and processor interfacing which build on an engineering student's knowledge of electronics and circuits are typically found in CompE programs. CompE programs also often have strong ties to solid state physics and devices programs where the details of actually manufacturing integrated circuits are studied. At the intersection between CompE and CompSci are courses in computer architecture (the basic construction and low-level programming of computers) and operating systems, which are as likely to be found in either or both programs.
At Duke, Computer Science is a department in Trinity College of Arts and Sciences. Computer science majors follow the Trinity College curriculum. Through the Pratt School of Engineering, we offer a major in the hybrid discipline Electrical and Computer Engineering as one alternative in the ECE department. Students in the ECE department can also choose a more traditional electrical engineering major. By offering a major in an Electrical and Computer Engineering rather than a Computer Engineering major, we emphasize increasingly important traditional electrical engineering subjects like electromagnetics and signal processing to anyone with a deep interest in computer systems.
We find a holistic approach to the hybrid discipline of Electrical and Computer Engineering produces students better prepared to integrate modern computing systems into devices and products capable of bettering the world.
Six Duke faculty members have appointments in both the ECE and CompSci departments. In the Pratt School of Engineering, many of our Electrical and Computer Engineering majors take a second major in Computer Science and the two departments have cooperated to create a second major program that fits well into a four-year program. This gives students the best of all worlds - firm groundings in theoretical underpinnings, deep practical knowledge of actual computer hardware, and traditional and yet still highly relevant electrical engineering subjects that better prepare them for future technology.