Many students want to know—what’s the difference between computer engineering and software engineering? While both degrees involve a significant amount of software-related courses, they apply them differently.


Computer engineering graduates are ideally prepared for careers in developing embedded computer systems—products and devices that have computer chips (microcontrollers) embedded into them, such as iPods, video cards, cell phones, and flight control systems. Computer engineering students study computer software development (e.g., Java), embedded software development (e.g., an assembly language, C, and C++), digital logic, electronic circuits, interfacing computers to the physical world, and design of computer networks and protocols.


Software engineering programs do not stress computer hardware and electronics, but instead focus on enterprise-level software development practices and processes. Both computer and software engineering build on the discipline of computer science, which is the study of computation and algorithms.


Students to not need to know programming to pursue one of these majors. While programming experience is an asset and will give you a leg-up in certain freshman classes, it is not required or expected, and many, perhaps the majority, of CE and SE freshmen have little or no programming experience.