Search AccessScience
Browse Topics

Study Center

Answers from our experts to important scientific questions

Computing & Information Technology >
Q: What is the difference between computer science and computer engineering? (Submitted by seeni falonipe, riverdale, MD)

A: Computer science is the study of both theoretical and practical aspects of computation and information processing. Among the issues considered by computer scientists are: what programs can and cannot do (computability and artificial intelligence), how programs should efficiently perform specific tasks (algorithm analysis); how programs should store and retrieve information (data structures and databases), and how people and programs should communicate with each other (user interfaces and programming languages). The Church-Turing thesis is considered as the defining principle of computer science; it establishes the theoretical limitations of the computing of devices as well as their power and efficiency. The computer itself is based on the principles outlined by John Von Neumann during the early 1950s.

Computer science practitioners require skills that allow them to analyze, conceptualize, design, and develop algorithmic solutions to complex problems. Generally a solution, realized through a computer program, is obtained through a process of abstraction and model evaluation that may require resolution of conflicting software and hardware objectives, such as simplicity and ease of use versus size and speed.

Computer science as a discipline evolved from fields such as electrical engineering, mathematics, logic, and linguistics. However, it was not until early 1960s that it was recognized as a discipline in its own right.

Computer engineering is a discipline that combines computer science and electrical engineering, with emphasis on hardware and architectural aspects such as circuit design, digital signal processing, and control systems. Computer engineers differ from their electrical counterparts in that they receive a substantial amount of training in algorithms and program development. According to the U.S. Department of Labor, a computer hardware engineer is a person who researches, designs, develops, and tests computer hardware and supervises its manufacture and installation. The work of computer hardware engineers is very similar to that of electronics engineers; howevercomputer hardware engineers work exclusively with computers and computer-related equipment.

In academic terms, computer engineering programs are relatively new; until the early 1970s they were generally under the umbrella of the Electrical Engineering Department.

Dr. Ramon A. Mata-Toledo

References

Computer Science - Wikipedia Encyclopedia

Computer hardware engineers - U.S. Department of Labor

What is Computer Engineering? - University of Waterloo

Computing Curricula 1991, Report of the ACM/IEEE-CS Joint Curriculum Task Force, December 17, 1990.