What is the difference between computer science and computer engineering?
The School of Computer Science (in the Faculty of Science) offers degrees in Computer Science, whereas the Faculty of Engineering offers a degree in Computer Engineering. It is important for you to understand the difference, so that you can apply to the correct Faculty. A Computer Science degree is more suitable for students more focused on the foundations of computer science and the development of software, or students who would like to combine their studies with mathematics or physics or with a wide variety of minors in Science, Management, Marketing or Arts. Within a Computer Science degree you have a lot of flexibility to learn about many areas of foundational and applied topics as it relates mostly to software. As just one example, you could choose selections of courses to prepare for a career in games development. The important point is that you will have a lot of flexibility to create an academic program that really interests you.
Yes. We actively support double engineering majors and pairing engineering with other disciplines as a double major. Students at Duke frequently double major in sciences such as computer science, physics, mathematics, economics, and public policy studies. Additional interests as diverse as art, music, psychology, or any of the social sciences and humanities are actively supported, as can courses required to prepare for application to medical, law, or business school.
There is a difference between the two majors. CS is higher level the CoE. (By higher level I mean in the technical sense – CoE is more focused on hardware, CS more on software). There is obviously huge overlap, and you will not be able to escape either subject in either major. The difference is simply in the focus. A CoE major will also have more overlap with electrical engineering classes.
Computer Science (CS) is traditionally more concerned with the theoretical underpinnings of computation and of programming. Computer engineering (CE) focuses on the practical aspects of development and use of computers. Courses in digital logic design and processor interfacing which build on an engineering student’s knowledge of electronics and circuits are a typical part of CE programs. Read a full essay on this topic. Ask another question.