Past exam papers
Here are past papers for the Computer Science Tripos and Diploma in Computer Science from 1993 onwards.
Papers organised by year
1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012
Questions sorted by topic
A number of courses have changed their name over the years. Where this has happened, we have tried to index each question under the current name of the course to which it applies. In the question itself, the name will appear as it did at the time.
- Additional Topics
- Advanced Algorithms
- Advanced Graphics
- Advanced Graphics and HCI
- Advanced Systems Topics
- Algebraic Manipulation
- Algorithms
- Algorithms I
- Algorithms II
- Artificial Intelligence
- Bioinformatics
- Business Studies
- Common Lisp
- Communicating Automata and Pi Calculus
- Comparative Architectures
- Comparative Programming Languages
- Compiler Construction
- Complexity
- Computation Theory
- Computational Number Theory
- Computer Architecture
- Computer Design
- Computer Fundamentals
- Computer Graphics and Image Processing
- Computer Networking
- Computer Perspectives
- Computer Structures
- Computer Systems Modelling
- Computer Vision
- Concepts in Programming Languages
- Concurrency
- Concurrent Systems
- Concurrent Systems and Applications
- Concurrent and Distributed Systems
- Continuous Mathematics
- Data Structures and Algorithms
- Database Theory
- Database Topics
- Databases
- Denotational Semantics
- Designing Interactive Applications
- Developments in Technology
- Digital Communication I
- Digital Communication II
- Digital Electronics
- Digital Signal Processing
- Discrete Mathematics
- Discrete Mathematics I
- Discrete Mathematics II
- Distributed Systems
- E-Commerce
- ECAD
- ECAD Topics
- Economics and Law
- Floating-Point Computation
- Foundations of Computer Science
- Foundations of Functional Programming
- Foundations of Logic Programming
- Foundations of Programming
- Further Java
- Further Modula-3
- Hoare Logic
- Human–Computer Interaction
- Information Retrieval
- Information Theory and Coding
- Introduction to Functional Programming
- Introduction to Security
- Introduction to Unix
- Logic and Proof
- Mathematical Methods for Computer Science
- Mathematics for Computation Theory
- Mobile and Sensor Systems
- Modula-2
- Modula-3
- Multi-part question
- Natural Language Processing
- Neural Computing
- Numerical Analysis I
- Numerical Analysis II
- Object-Oriented Programming with Java
- Operating System Foundations
- Operating System Functions
- Operating Systems
- Operating Systems II
- Optimising Compilers
- Philosophy
- Principles of Communications
- Probability
- Problem solving in ML
- Processor Architecture
- Professional Practice and Ethics
- Programming Methods and Java
- Programming in C and C++
- Programming in Java
- Prolog for Artificial Intelligence
- Quantum Computing
- Regular Languages and Finite Automata
- Security
- Security I
- Security II
- Semantics
- Software Design
- Software Engineering
- Software Engineering I
- Software Engineering II
- Software Engineering and Design
- Specification and Verification I
- Specification and Verification II
- Structured Hardware Design
- System Architecture
- System Design
- System Software
- System-on-Chip Design
- Temporal Logic and Model Checking
- The MIPS Instruction Set
- Topical Issues
- Topics in Artificial Intelligence
- Topics in Concurrency
- Types
- Unix Case Study
- VLSI Design
