Me: "I don't know of many universities where you can take a purely theoretical curriculum"
Reply: "Oxbridge"
Well, I didn't go there, so let's see what they have. Taking into account the criteria written in my comment, let's take a look at Oxford's computer science course description:
This course in Computer Science aims to produce graduates thoroughly conversant with the principles of modern computing science, who are able to apply those principles in the design and construction of reliable systems. The course at Oxford concentrates on bridging theory and practice, including a wide variety of hardware and software technologies and their applications.
[...]
Practical skills must also be developed, and the majority of subjects within the course are linked with practical work which contributes marks towards the final examination.
[...]
In the second year, Computer Science students are required to take:
- the core courses in Algorithms & Data Structures, Compilers, Concurrent Programming and Models of Computation;
They have many optional courses that offer practical skills. You are not getting through this degree without learning some practical skills in programming.
Let's check Cambridge, just to be complete:
Practical work is undertaken and assessed in all years of the degree programme.
[...]
You take four papers, including three compulsory Computer Science papers - covering topics such as foundations of computer science (taught in OCaml), Java and object-oriented programming, operating systems, digital electronics, graphics, and interaction design - and the Mathematics paper from Part IA of Natural Sciences.
[...]
You take four papers, spanning core topics:
▪ theory – including logic and proof, computation theory
▪ systems – including computer architecture, computer networking
▪ programming – including compiler construction, programming in C/C++
▪ human aspects – including Human Interaction design, Artificial Intelligence
You also undertake a group project which reflects current industrial practice.
[...]