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.
Duration: Three to four years (full-time study); six to eight years (part-time study)
Entry Requirements: Undergraduate degree or equivalent general education
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. The Director of Studies will make adaptations based on student ability and schedule. 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:
The final project in computer science consists in an original program and an original paper written on an area of specialization. All final projects should be discussed with the Director of Studies, who will assist in choosing an appropriate focus and method. Advanced students may be advised to submit their paper for publication in an appropriate academic journal.