What is computer science?
Computer science (CS) is the systematic study of algorithmic methods for representing and transforming information, including their theory, design, implementation, application, and efficiency. The discipline emerged in the 1950s from the development of computability theory and the invention of the stored-program electronic computer. The roots of computer science extend deeply into mathematics and engineering. Mathematics imparts analysis to the field; engineering imparts design. The main branches of computer science are the following:
Algorithms is the study of effective and efficient procedures of solving problems on a computer.
Theory of computation concerns the meaning and complexity of algorithms and the limits of what can be computed in principle.
Computer architecture concerns the structure and functionality of computers and their implementation in terms of electronic technologies.
Software systems is the study of the structure and implementation of large programs. It includes the study of programming languages and paradigms, programming environments, compilers, and operating systems.
Artificial intelligence concerns the computational understanding of what is commonly called intelligent behavior and the creation of artifacts that exhibit such behavior.
Other important topics in computer science include computer graphics, databases, networks and protocols, numerical methods, operating systems, parallel computing, simulation and modeling, and software engineering.
What is computer engineering?
Computer engineering (CEN) is the design and prototyping of computing devices and systems. While sharing much history and many areas of interest with computer science, computer engineering concentrates its effort on the ways in which computing ideas are mapped into working physical systems. Emerging equally from the disciplines of computer science and electrical engineering, computer engineering rests on the intellectual foundations of these disciplines, the basic physical sciences and mathematics. The main branches of computer engineering are the following:
Networks is concerned with design and implementation of distributed computing environments, from local area networks to the World Wide Web.
Multimedia computing is the blending of data from text, speech, music, still image, video and other sources into a coherent datastream, and its effective management, coding-decoding and display.
VLSI systems involves the tools, properties and design of micro-miniaturized electronic devices (Very Large Scale Integrated circuits).
Reliable computing and advanced architectures considers how fault-tolerance can be built into hardware and software, methods for parallel computing, optical computing, and testing.
Other important topics in computer engineering include display engineering, image and speech processing, pattern recognition, robotics, sensors and computer perception.