Computer engineering: Difference between revisions

From Citizendium
Jump to navigation Jump to search
imported>Nick Johnson
No edit summary
mNo edit summary
 
(17 intermediate revisions by 14 users not shown)
Line 1: Line 1:
'''Computer Engineering''' is the meeting point of [[Electrical Engineering]] and [[Computer Science]].  It can be thought of as an applied computer science and a restricted form of electical engineering.
{{subpages}}
 
'''Computer Engineering''' is an [[engineering]] discipline that deals with the design and production of computer hardware, the design and development of low-level computer [[software]], and computer hardware-software integrationThe field overlaps heavily with the fields of [[electrical engineering]] and [[computer science]].


==Examples of Computer Engineering==
==Examples of Computer Engineering==


* Design of a [[microprocessor]].  A certain degree of electrical engineering is involved.  However, a successful design requires a broad view of the context in which the processor will be used.  Thus, an understanding of [[program]] execution patterns and compiler technology is helpful.
* Design of a [[microprocessor]].  A certain degree of electrical engineering is involved.  However, a successful design requires a broad view of the context in which the processor will be used.  Thus, an understanding of [[program]] execution patterns and compiler technology is helpful.
* Design of a [[translation system|compiler]].  A compiler is a computer program capable of translating a unambiguous description of an [[algorithm]] into a form which can be executed by a machine.  To design a compiler requires knowledge of both the programming language and the operation of the machine.
* Design of a [[compiler]].  A compiler is a computer program capable of translating a unambiguous description of an [[algorithm]] into a form which can be executed by a machine.  To design a compiler requires knowledge of both the programming language and the operation of the machine.
* [[Digital Signal Processing]].  20 years ago, a [[radio]] would probably be designed using traditional electical components.  Today, it is just as likely that a large portion of this task would be implemented in [[software]], with just the minimal amount of electronics to convert the [[analog]] [[signal]] to [[digital]] and vice-versa.
* [[Digital Signal Processing]].  20 years ago, a [[radio]] would probably be designed using traditional electrical components.  Today, it is just as likely that a large portion of this task would be implemented in [[software]], with just the minimal amount of electronics to convert the [[analog]] [[signal]] to [[digital]] and vice-versa. The trend to [[software-defined radio]] accelerates this process
* [[Network engineering]]. There is a distinct area  that deals with loosely coupled processing elements, over imperfect media, often in very large scale combinations. It overlaps with [[telecommunications engineering]], which, increasingly, deals with the tranmission and other physical aspects of networks, rather than its traditional association with [[Telephone|telephony]] and [[radio]].
* [[Telecommunications engineering]] Once the discipline of radio and telephony, with [[convergence of communications]], it tends to focus more on the wired (fibered) and wireless aspects of the movement of information among widely dispersed processing nodes. It also has a significant amount of [[antenna]] and [[electromagnetic propagation]] work, and blurs into topics such as [[radar]].


==Differences from Computer Science==
==Differences from Computer Science==


Computer Engineering is an applied form of computer science.  Computer Science focuses more on abstract algorithms for performing mathematical tasks efficiently, where Computer Engineering focuses on the implementation of computers and computer systems.
Computer Engineering is a very practical form of computer science.  Computer Science focuses also on abstract algorithms for performing mathematical tasks efficiently, where Computer Engineering focuses more on the implementation of computers and computer systems.


For instance, a computer scientist might consider an algorithm which [[sort|sorts]] a list of numbers.  In doing so, the scientist would describe the algorithm as a series of instructions which cause the desired effect, perform a rigorous proof that the algorithm will always perform the task properly, and then analyse how efficiently said algorithm performs its task againt a few criteria, such as processor time or memory space.  A computer engineer would research how such algorithms work, and attempt to create computer hardware capable of executing those instructions, optimized against calculation time, component cost, component size, power consumption, etc., and attempt to validate and verify the correctness of said implementation.
For instance, a computer scientist might consider an algorithm which [[sorting algorithm|sorts]] a list of numbers.  In doing so, the scientist might first describe the algorithm as a series of instructions which cause the desired effect, perform a rigorous proof that the algorithm will always perform the task properly, and analyze how efficiently said algorithm performs its task against criteria such as time or memory complexity before finally implementing it.  A computer engineer would research how such algorithms work, and attempt to create computer hardware capable of executing those instructions, optimized against calculation time, component cost, component size, power consumption, etc., and attempt to validate and verify the correctness of said implementation.


==Differences from Electrical Engineering==
==Differences from Electrical Engineering==
Line 17: Line 21:
While electrical engineering is a broad field, computer engineering generally focuses on a restricted subset of electical engineering known as [[digital logic design]]. Digital Logic Design is a way to simplify many tasks in electrical engineering, by creating reusable building blocks such as the [[NAND Gate]].
While electrical engineering is a broad field, computer engineering generally focuses on a restricted subset of electical engineering known as [[digital logic design]]. Digital Logic Design is a way to simplify many tasks in electrical engineering, by creating reusable building blocks such as the [[NAND Gate]].


In general, the analysis of an electrical circuit is complicated.  At its lowest level, electronics depends on physical properties of [[conductors]] and [[insulators]].  The mathematics used in electrical engineering can become quite difficult: simple circuits containing [[resistors]], [[capacitors]] and [[inductors]] may require solving a set of differential equations, and circuits containing [[transistors]] may require the engineer to solve [[trancendental equations]].  Through the design of robust and simple digital building blocks, a digital designer may avoid much of this mathematics and focus on systems which can be easily described with [[discrete mathematics]].  This method allows a digital engineer to create larger systems, more complicated systems.
In general, the analysis of an electrical circuit is complicated.  At its lowest level, electronics depends on physical properties of [[conductor|conductors]] and [[insulator|insulators]].  The mathematics used in electrical engineering can become quite difficult: simple circuits containing [[resistor|resistors]], [[capacitor|capacitors]] and [[inductor|inductors]] may require solving a set of differential equations, and circuits containing [[Electronic switch#Transistor|transistors]] may require the engineer to solve [[transcendental equations]].  Through the design of robust and simple digital building blocks, a digital designer may avoid much of this mathematics and focus on systems which can be easily described with [[discrete mathematics]].  This method allows a digital engineer to create larger systems, more complicated systems.[[Category:Suggestion Bot Tag]]
 
{{stub}}
 
[[Category:CZ Live]]

Latest revision as of 16:00, 31 July 2024

This article is developing and not approved.
Main Article
Discussion
Related Articles  [?]
Bibliography  [?]
External Links  [?]
Citable Version  [?]
 
This editable Main Article is under development and subject to a disclaimer.

Computer Engineering is an engineering discipline that deals with the design and production of computer hardware, the design and development of low-level computer software, and computer hardware-software integration. The field overlaps heavily with the fields of electrical engineering and computer science.

Examples of Computer Engineering

  • Design of a microprocessor. A certain degree of electrical engineering is involved. However, a successful design requires a broad view of the context in which the processor will be used. Thus, an understanding of program execution patterns and compiler technology is helpful.
  • Design of a compiler. A compiler is a computer program capable of translating a unambiguous description of an algorithm into a form which can be executed by a machine. To design a compiler requires knowledge of both the programming language and the operation of the machine.
  • Digital Signal Processing. 20 years ago, a radio would probably be designed using traditional electrical components. Today, it is just as likely that a large portion of this task would be implemented in software, with just the minimal amount of electronics to convert the analog signal to digital and vice-versa. The trend to software-defined radio accelerates this process
  • Network engineering. There is a distinct area that deals with loosely coupled processing elements, over imperfect media, often in very large scale combinations. It overlaps with telecommunications engineering, which, increasingly, deals with the tranmission and other physical aspects of networks, rather than its traditional association with telephony and radio.
  • Telecommunications engineering Once the discipline of radio and telephony, with convergence of communications, it tends to focus more on the wired (fibered) and wireless aspects of the movement of information among widely dispersed processing nodes. It also has a significant amount of antenna and electromagnetic propagation work, and blurs into topics such as radar.

Differences from Computer Science

Computer Engineering is a very practical form of computer science. Computer Science focuses also on abstract algorithms for performing mathematical tasks efficiently, where Computer Engineering focuses more on the implementation of computers and computer systems.

For instance, a computer scientist might consider an algorithm which sorts a list of numbers. In doing so, the scientist might first describe the algorithm as a series of instructions which cause the desired effect, perform a rigorous proof that the algorithm will always perform the task properly, and analyze how efficiently said algorithm performs its task against criteria such as time or memory complexity before finally implementing it. A computer engineer would research how such algorithms work, and attempt to create computer hardware capable of executing those instructions, optimized against calculation time, component cost, component size, power consumption, etc., and attempt to validate and verify the correctness of said implementation.

Differences from Electrical Engineering

While electrical engineering is a broad field, computer engineering generally focuses on a restricted subset of electical engineering known as digital logic design. Digital Logic Design is a way to simplify many tasks in electrical engineering, by creating reusable building blocks such as the NAND Gate.

In general, the analysis of an electrical circuit is complicated. At its lowest level, electronics depends on physical properties of conductors and insulators. The mathematics used in electrical engineering can become quite difficult: simple circuits containing resistors, capacitors and inductors may require solving a set of differential equations, and circuits containing transistors may require the engineer to solve transcendental equations. Through the design of robust and simple digital building blocks, a digital designer may avoid much of this mathematics and focus on systems which can be easily described with discrete mathematics. This method allows a digital engineer to create larger systems, more complicated systems.