What is Computer Science?
Few developments in recent times can rival computer technology for pace of its progress, the breath of its application or the degree of its impact on the modern world. Since its inception computer technology has been an indispensable tool in all areas of science and engineering and has by now become a cornerstone a whole range of modern services (financial markets, air transport and telecommunications, to name but three examples). It is fast becoming equally central to many aspects of our personal lives (play stations, Internet, WAP phones etc.).
While experience in the use of various computer-based technologies is becoming increasingly widespread, computer science as an academic discipline is not about mere familiarity with the use of an array of commercial software products (word-processing/spreadsheet packages, Internet browsers, computer games), but studies the various technologies that make these complex systems tick. Computer scientists seek to understand how such systems are constructed, how they might be improved and, above all, how these technologies may be exploited to develop new previously undreamt-of applications for the future.
This requires a deep understanding of both the organization and operation of the physical components (processors, storage devices, networks) that support these applications and the software elements that control these components (operating systems, network protocols, etc.). It involves mastering tools and techniques for the representation, manipulation and communication of the large volumes complex information computer systems have to contend with whether that information be financial, textual, numerical, or as is increasingly the case, in the form of images, audio or video. It requires a thorough grasp of the scientific principles that underpin all these technologies as well as the ability to apply those principles in practice in the construction of high-quality reliable software according to rigorous engineering principles using modern programming languages and methodologies.