Computer science is the youngest of the liberal arts. It shares with mathematics strong historical ties as well as underlying values of abstraction, rigor and elegance. During its vigorous growth as an academic discipline, computer science has worked to map this abstraction onto physical devices. Computer science students will address significant problems: finite-precision arithmetic, limited storage capacity of data, and bounded processing capacity of a computer. They will develop distinct methodologies: programming languages, data encoding and the analysis of the complexity of algorithms in terms of time and space requirements. And they will experiment with some results distinctive to computer science: the existence of the general-purpose computer, serial and parallel processing, and modularity and layers of abstraction in both hardware and software. This deep understanding of computer science will engage the student in discerning the benefits and limitations of computers in society.
The study of algorithms is the theme underlying all aspects of computer science. Computer science students will learn to define a problem and specify a step-by-step solution at a level of detail and clarity unparalleled in any other discipline. They will also examine the practical issues of efficient storage, manipulation and retrieval of data.
Computer science interacts naturally with many other disciplines. Students will have opportunities to explore the interconnections among artificial intelligence, psychology and philosophy; to become involved in the physics and engineering of circuit design; to employ biological models in their study of genetic algorithms and neural networks; and to see aspects of grammar and linguistics in their study of programming languages.