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.
Should I pursue computer science or computer engineering?
Scientists and engineers are both interested in the nature of things,
 in understanding how ideas and objects in the world fit together. But 
in general, they seek to understand the nature of reality with different
 ends in mind: the scientist seeks this understanding as an end in 
itself, the engineer in order to build things. Thus CS is closer to the 
underlying theory of computation, with its roots in mathematics, and CEN
 is closer to the design of physical devices, with roots in physics and 
chemistry as well. Students with an urge to build things, to measure how
 things work in the laboratory, those attracted to physics and chemistry
 as well as mathematics, should seriously consider CEN. Students with an
 interest in the true nature of symbols, information and their 
manipulations, the forms and limits of algorithms and data structures, 
should consider CS. Of the three great divisions in computing, namely 
theory, software and hardware, to a first approximation theory goes with
 CS, hardware with CEN, and software with both, but mainly with CS. The 
more general the software, the closer to CS; the more hardware-specific,
 the closer to CEN. Thus a student interested in creating his own new 
general-purpose computer language would best be served by a CS degree 
program, while one interested in designing a software interface for a 
new high speed serial device by the CEN degree program. Students 
undecided between the CS and CEN programs are urged to discuss the 
matter in depth with academic advisors within the CSE department, the 
College of Arts and Sciences (which administers the CS programs), and 
the School of Engineering and Applied Sciences (which administers the 
CEN program).