Computer engineering is a discipline that combines elements of both electrical engineering and computer science. Computer engineers are electrical engineers that have additional training in the areas of software design and hardware-software integration. In turn, they focus less on power electronics and physics. However, a common dual degree program at many technical universities combined Computer Engineering and Electrical Engineering, allowing for more hardware-oriented designs and integration, or, conversely, a Computer Engineering and Computer Science (Programming) degree focusing more on the software-oriented side of things. Due to the overlap in courses and skills required for these dual degree, the extra major can usually be achieved within a year of the first.
Computer engineers are involved on all aspects of computing, from the design of individual microprocessors, personal computers, and supercomputers, to circuit design, as well as the integration of computer systems into other kinds of systems (a motor vehicle, for example, has a number of subsystems that are computer and digitally oriented). Common computer engineering tasks include writing embedded software for real-time microcontrollers, designing VLSI chips, working with analog sensors, designing mixed signal circuit boards, and designing operating systems. Computer engineers are also well-suited for research in the field of robotics, which relies on using computers together with other electrical systems.
The first accredited computer engineering degree program in the United States was established at Case Western Reserve University in 1971; as of October 2004 there were 170 ABET-accredited computer engineering programs in the United States.
The high demand for engineers who are able to design and manage all forms of computer systems in industry has led to tertiary institutions around the world to implement a new bachelor's degree generally called computer engineering. Both computer engineering and electronic engineering programs include analog and digital circuit design into their curriculum.
Besides having a sound knowledge of the mathematics and the sciences which form an integral part of any engineering discipline, computer engineering encompasses topics that are more specific to the discipline, such as:
- Computer Architecture and Organization
- Computer Systems Engineering
- Database Systems
- Embedded Systems
- Human-Computer Interaction
- Operating Systems
- Software Engineering
- VLSI Design and Fabrication
Many of the areas of electronic engineering and computer engineering overlap, such as electronics and digital systems which form the basis of electronic components.