Computer science is the study of software. It is both theoretical, as it studies the structure of algorithms and programs, and practical, in its effort to apply algorithms and programs to solve technological problems; it is at once analytical, diagnostic, and creative, as it attempts not only to solve these problems but to understand them better. As such, it requires deep familiarity with mathematics, proof theory, and logic. It also involves the learning of a range of different programming languages, and the ability to acquire such languages quickly. The aim of computer science is to understand and apply formal systems, to create new, safe, and useful technologies.
The core topics introduce the field of computer science and give students the skills and understanding to choose and pursue their interests in the specialized topics. On completing the core, students will be able to independently read the historical and academic literature. The core topics are:
Specializations should be discussed with the Director of Studies. On completing specializations, students will be able to independently read advanced literature and conduct a final project in that topic. Some suggested specializations are:
We'd love to get to know you and help you get pointed in the right direction.