In many institutions of higher learning, computer engineering students are allowed to choose areas of in-depth study in their junior and senior years because the full breadth of knowledge used in the design and application of computers is beyond the scope of anundergraduate degree. Other institutions may requireengineering students to complete one or two years ofgeneral engineering before declaring computer engineering as their primary focus.[4][5][6][7]
Adie shot of anSTM32Microcontroller. This chip is both designed by computer engineers and is utilized by them to make other systems
Computer engineering began in 1939 whenJohn Vincent Atanasoff andClifford Berry began developing the world's first electronicdigital computer throughphysics,mathematics, andelectrical engineering. John Vincent Atanasoff was once a physics and mathematics teacher forIowa State University and Clifford Berry a former graduate under electrical engineering and physics. Together, they created theAtanasoff–Berry computer, also known as the ABC which took five years to complete.[8]While the original ABC was dismantled and discarded in the 1940s, a tribute was made to the late inventors; a replica of the ABC was made in 1997, where it took a team of researchers and engineers four years and $350,000 to build.[9]
The first computer engineering degree program in the United States was established in 1971 atCase Western Reserve University inCleveland,Ohio.[19] As of 2015[update], there were 250ABET-accredited computer engineering programs in the U.S.[20] In Europe, accreditation of computer engineering schools is done by a variety of agencies as part of theEQANIE network. Due to increasing job requirements for engineers who can concurrently design hardware,software, firmware, and manage all forms of computer systems used in industry, some tertiary institutions around the world offer abachelor's degree generally called computer engineering. Both computer engineering andelectronic engineering programs include analog and digital circuit design in their curriculum. As with most engineering disciplines, having a sound knowledge ofmathematics and science is necessary for computer engineers.
Computer engineering is referred to ascomputer science and engineering at some universities. Most entry-level computer engineering jobs require at least a bachelor's degree in computer engineering, electrical engineering or computer science. Typically one must learn an array ofmathematics such ascalculus,linear algebra anddifferential equations, along withcomputer science.[21] Degrees inelectronic orelectric engineering also suffice due to the similarity of the two fields. Because hardware engineers commonly work with computer software systems, a strong background in computer programming is necessary. According to BLS, "a computer engineering major is similar to electrical engineering but with some computer science courses added to the curriculum".[22] Some large firms or specialized jobs require a master's degree.
It is also important for computer engineers to keep up with rapid advances intechnology. Therefore, many continue learning throughout their careers. This can be helpful, especially when it comes to learning new skills or improving existing ones. For example, as the relative cost of fixing abug increases the further along it is in the software development cycle, there can be greater cost savings attributed to developing and testing for quality code as soon as possible in the process, particularly before release.[23]
According to the United StatesBLS, the current job outlook employment for computer hardware engineers, the expected ten-year growth from 2024 to 2034 is 7%. However, 2019 to 2029 for computer hardware engineering was an estimated 2% and a total of 71,100 jobs. ("Slower than average" in their own words when compared to other occupations)".[24][25] This is a decrease from the 2014 to 2024 BLS computer hardware engineering estimate of 3% and a total of 77,700 jobs; "and is down from 7% for the 2012 to 2022 BLS estimate and is further down from 9% in the BLS 2010 to 2020 estimate."[24] Today, computer hardware is somewhat equal[clarification needed] to electronic and computer engineering (ECE) and has been divided into many subcategories, the most significant[citation needed] beingembedded system design.[22]
According to the U.S.Bureau of Labor Statistics (BLS), "computer applications software engineers and computer systems software engineers the current growth projections for 2024 to 2034 is 15%. This is close to the 2014 to 2024 growth for computer software engineering was an estimated 17% and there was a total of 1,114,000 jobs that same year.[26] This is down from the 2012 to 2022 BLS estimate of 22% for software developers.[27][26] And, further down from the 30% 2010 to 2020 BLS estimate.[28] In addition, growing concerns over cybersecurity add up to put computer software engineering high above the average rate of increase for all fields. However, some of the work will be outsourced in foreign countries.[29] Due to this, job growth will not be as fast as during the last decade, as jobs that would have gone to computer software engineers in the United States would instead go to computer software engineers in countries such as India.[30] In addition, the BLS job outlook for Computer Programmers, 2014–24 has an −8% (a decline, in their words),[30] then a job outlook, 2019-29 of -9% (Decline),[31] then a 10% decline for 2021-2031[31] and now an 11% decline for 2022-2032[31] for those who program computers (i.e. embedded systems) who are not computer application developers.[32][33] Furthermore, women in software fields has been declining over the years even faster than other engineering fields.[34]
Processor design process involves choosing aninstruction set and a certain execution paradigm (e.g.VLIW orRISC) and results in amicroarchitecture, which might be described in e.g.VHDL orVerilog.CPU design is divided into design of the following components:datapaths (such asALUs andpipelines), control unit: logic which controls the datapaths,memory components such asregister files,caches, clock circuitry such as clock drivers, PLLs, clock distribution networks, pad transceiver circuitry, logic gate cell library which is used to implement the logic.
Computer engineers work in coding, applied cryptography, and information protection to develop new methods for protecting various information, such asdigital images andmusic, fragmentation,copyright infringement and other forms of tampering by, for example,digital watermarking.[35]
Those focusing on communications and wireless networks, work advancements in telecommunications systems and networks (especially wireless networks), modulation and error-control coding, and information theory. High-speednetwork design, interference suppression and modulation, design, and analysis offault-tolerant system, and storage and transmission schemes are all a part of this specialty.[35]
This specialty focuses oncompilers andoperating systems design and development. Engineers in this field develop new operating system architecture, program analysis techniques, and new techniques to assure quality. Examples of work in this field include post-link-time code transformationalgorithm development and new operating system development.[35]
Computational science and engineering is a relatively new discipline. According to the Sloan Career Cornerstone Center, individuals working in this area, "computational methods are applied to formulate and solve complex mathematical problems in engineering and the physical and the social sciences. Examples include aircraft design, the plasma processing of nanometer features on semiconductor wafers,VLSI circuit design, radar detection systems, ion transport through biological channels, and much more".[35]
Computer networks, mobile computing, and distributed systems
In this specialty, engineers build integrated environments for computing, communications, andinformation access. Examples include shared-channel wireless networks,adaptive resource management in various systems, and improving the quality of service inmobile and ATM environments. Some other examples include work onwireless network systems and fastEthernet cluster wired systems.[35]
Computer systems: architecture, parallel processing, and dependability
Engineers working in computer systems work on research projects that allow for reliable, secure, and high-performance computer systems. Projects such as designing processors formultithreading andparallel processing are included in this field. Other examples of work in this field include the development of new theories,algorithms, and other tools that addperformance to computer systems.[35]
In this specialty, computer engineers focus on developingvisual sensing technology to sense an environment, representation of an environment, and manipulation of the environment. The gathered three-dimensional information is then implemented to perform a variety of tasks. These include improved human modeling, image communication, and human-computer interfaces, as well as devices such as special-purpose cameras with versatile vision sensors.[35]
Individuals working in this area design technology for enhancing the speed, reliability, and performance of systems. Embedded systems are found in many devices from a smallFM radio to the space shuttle. According to the Sloan Cornerstone Career Center, ongoing developments in embedded systems include "automated vehicles and equipment to conduct search and rescue, automated transportation systems, and human-robot coordination to repair equipment in space."[35] As of 2018[update], computer embedded systems specializations includesystem-on-chip design, the architecture ofedge computing and theInternet of things.
This specialty of computer engineering requires adequate knowledge of electronics and electrical systems. Engineers working in this area work on enhancing the speed, reliability, and energy efficiency of next-generation very-large-scale integrated (VLSI) circuits and microsystems. An example of this specialty is work done on reducing the power consumption of VLSI algorithms and architecture.[35]
Computer engineers in this area develop improvements in human–computer interaction, includingspeech recognition and synthesis, medical and scientific imaging, or communications systems. Other work in this area includes computer vision development such asrecognition of human facial features.[35]
^Trinity College Dublin."What is Computer System Engineering". RetrievedApril 21, 2006. "Computer engineers need not only to understand how computer systems themselves work but also how they integrate into the larger picture. Consider the car. A modern car contains many separate computer systems for controlling such things as the engine timing, the brakes, and the airbags. To be able to design and implement such a car, the computer engineer needs a broad theoretical understanding of all these various subsystems & how they interact.