What is Computer Science? The realm of activities falling under the umbrella of 'Computer Science' is possibly the most extensive of any scientific discipline. This is mainly due to the ubiquitous nature of computers themselves; they have found their way into every aspect of our lives, from entertainment to health care, automobiles, household appliances, even the way we purchase and prepare our food. How can we actually define something as broad as Computer Science? 'Science' has been loosely characterized as the methodical study of phenomenon. By this definition, 'Computer Science' would be the methodical study of computers. This is ultimately unsatisfying, however, because computers are not natural phenomenon. Studying a metal box full of wires is not in the same category as the study of mathematics, astronomy, or organic chemistry. Computers, such as the laptop I am now using, are a human creation. That creation, however, is the manifestation of centuries of research, conjecture, experimentation and invention, and that is where you will find the true science. Fundamentally, a computer is any system that processes information. It is something that 'computes'. From that perspective, calculators, slide rules, an abacus, or even the human brain can be classified as computers. Most people intuitively feel that a machine must be programmable in order to be called a computer, but those types of systems are relatively new, and are actually in the minority of information processing systems. Programmability alone can not be the sole criteria for determining whether a system can be called a 'computer'. I propose that a more complete definition of 'Computer Science' would be The research, development, and application of information processing systems. Splitting the definition into these three categories (research, development, and application), encompasses the many activities that make up Computer Science in the broader sense. 'Research' covers both computer theory and the hard engineering processes, including chip and processor design, data storage methodologies (both volatile and non-volatile), networking, graphic displays, etc. 'Development' covers the actual implementation of the research results, and also spills over into the software space, to include the development of computer languages, operating systems and compilers. 'Application' covers topics such as computer programming, algorithms and data structure implementation, artificial intelligence, modeling and simulation, and so forth. Although these disciplines are taught at most universities around the world, I believe great benefit would be obtained by including other peripheral sciences in the requirements for a Computer Science degree. For example, a student wishing to specialize in artificial intelligence would find courses in psychology and fuzzy logic to be extremely useful. Computer graphics and modeling make heavy use of linear algebra and matrix transformations, and is also impacted by psychology and bio-optics. Sciences such as chemistry, thermodynamics and metallurgy all play key roles in modern processor design, in addition to the obvious electrical engineering requirements. Creating a formal curriculum to include these related disciplines is not realistic, as it would demand a custom set of requirements for every student's chosen specialty. Still, it would be fitting for advisors and professors to emphasize the importance of broadening our exposure to other sciences as we become increasingly focused on our chosen specialties in Computer Science.