Here are past papers for the Computer Science Tripos and Diploma in Computer Science from 1993 onwards. They incorporate any corrections made after the original papers had been printed.
Solution notes are available for many past questions to local users. They were produced by question setters, primarily for the benefit of the examiners. These are not model answers: there may be many other good ways of answering a given exam question!
The solution notes for the most recent two year’s worth of examinations are held back by the department and only made available to supervisors and other teaching staff (marked with 🔒). Supervisors are instructed not to release hardcopy or electronic versions of these notes to students, although they may be shown to students during supervisions when helpful. Access to any solution notes here requires a Raven login, i.e. they are not public.
Making corrections: Question setters who want to amend solution notes can find the source files under /anfs/www/tripospapers/ and may email updated files to pagemaster.
See also: Natural Sciences Tripos Mathematics papers
Papers organised by year
2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001 2000 1999 1998 1997 1996 1995 1994 1993
Questions sorted by topic
A number of courses have changed their name over the years. Where this has happened, we have tried to provide a cross reference.
- Advanced Computer Architecture
- Algorithms 1
- Algorithms 2
- Artificial Intelligence
- Bioinformatics
- Business Studies
- Compiler Construction
- Complexity Theory
- Computation Theory
- Computer Networking
- Concepts in Programming Languages
- Concurrent and Distributed Systems
- Cryptography
- Cybersecurity
- Data Science
- Databases
- Denotational Semantics
- Digital Electronics
- Discrete Mathematics
- E-Commerce
- Economics, Law and Ethics
- Formal Models of Language
- Foundations of Computer Science
- Further Graphics
- Further Human–Computer Interaction
- Further Java
- Hoare Logic and Model Checking
- Information Theory
- Interaction Design
- Introduction to Computer Architecture
- Introduction to Graphics
- Introduction to Probability
- Logic and Proof
- Machine Learning and Bayesian Inference
- Machine Learning and Real-world Data
- Object-Oriented Programming
- Operating Systems
- Optimising Compilers
- Principles of Communications
- Programming in C and C++
- Prolog
- Quantum Computing
- Randomised Algorithms
- Security
- Semantics of Programming Languages
- Software and Security Engineering
- Types
Older topics
- Additional Topics (2010–1995, 1993)
- Additional Topics I and II (1994)
- Advanced Algorithms (2021–2015, 2002, 1998–1996)
- Advanced Graphics (2018–2002, 1999–1998)
- Advanced Graphics and HCI (2001–2000)
- Advanced Systems Topics (2010–2003)
- Algebraic Manipulation (1994)
- Algorithms (2021–2014, 2008–2006)
- Algorithms I (2013–2009)
- Algorithms II (2014–2007)
- Artificial Intelligence I (2016–2005, 2003, 1994–1993)
- Artificial Intelligence II (2016, 2014–2005, 2003, 1994–1993)
- Common Lisp (1993)
- Communicating Automata (1996)
- Communicating Automata and Pi Calculus (1999–1997)
- Comparative Architectures (2021–1996, 1994–1993)
- Comparative Programming Languages (2006–1998)
- Complexity (1994)
- Computational Neuroscience (1996–1994)
- Computational Number Theory (1994)
- Computer Architecture (1997–1995)
- Computer Design (2021–1998)
- Computer Fundamentals (2011)
- Computer Graphics and Image Processing (2017–1997)
- Computer Perspectives (2003, 1997, 1993)
- Computer Structures (1994–1993)
- Computer System Modelling (2000, 1998–1996, 1993)
- Computer Systems Modelling (2018–2011, 2009–2001, 1995–1994)
- Computer Vision (2021–2004, 2002–1996)
- Concurrency (1994–1993)
- Concurrency Theory (1995)
- Concurrent Systems (2001–1993)
- Concurrent Systems and Applications (2009–2002)
- Continuous Mathematics (2005–1996)
- Data Structures and Algorithms (2008–1993)
- Database Theory (2004–2003)
- Database Topics (1998–1996, 1994–1993)
- Designing Interactive Applications (1996–1993)
- Developments in Technology (1995–1993)
- Digital Communication I (2010–1993)
- Digital Communication II (2010–1993)
- Digital Electronics and Computer Design (1995–1993)
- Digital Signal Processing (2020–2004, 1993)
- Discrete Mathematics I (2013–2009, 2007–2006)
- Discrete Mathematics II (2013–2009, 2007–2006)
- Distributed Systems (2010–2003, 2001–1993)
- ECAD (2009–2000)
- ECAD Topics (1998–1996)
- Economics and Law (2013–2003)
- Floating-Point Computation (2013–2007)
- Formal Languages and Automata (1994–1993)
- Foundations of Data Science (2020–2018)
- Foundations of Functional Programming (2009–1993)
- Foundations of Logic Programming (1994–1993)
- Foundations of Programming (2008–1999)
- Further Modula-3 (1997–1993)
- Graphics (2017, 1996–1994)
- Graphics I (1993)
- Graphics II (1993)
- HCI (2002)
- Hoare Logic (2015–2011)
- Human–Computer Interaction (2018–2013, 2011–2003)
- Information Retrieval (2018–2003, 2000–1997)
- Information Theory and Coding (2015–2012, 2010–1994)
- Introduction to Functional Programming (2008–1993)
- Introduction to Security (2010–1998)
- Introduction to UNIX (1993)
- Introduction to Unix (1994)
- Java (2002–2001)
- Mathematical Methods for Computer Science (2017–2006)
- Mathematics for Computation Theory (2008–1996)
- Mobile and Sensor Systems (2021–2017, 2015–2011)
- Modula-2 (1993)
- Modula-3 (1998–1994)
- Multi-part question (2005–1995)
- Natural Language Processing (2018–1993)
- Neural Computing (2002–1997)
- Numerical Analysis (2019)
- Numerical Analysis I (2006–1993)
- Numerical Analysis II (2006–1993)
- Numerical Methods (2018–2014)
- Object-Oriented Programming with Java (2013–2010)
- Operating System Foundations (2008–1995)
- Operating System Functions (2001–1993)
- Operating Systems II (2006–2003)
- Philosophy (1996–1994)
- Pi Calculus (1996–1995)
- Probability (2013–2007, 2005–1993)
- Problem solving in ML (1994–1993)
- Processor Architecture (1997–1995)
- Professional Practice and Ethics (2010–2004, 2002–1998, 1996–1993)
- Programming Language Compilation (1994–1993)
- Programming Methods and Java (2009)
- Programming in C (2020–2018, 1994–1993)
- Programming in Java (2008–1998)
- Programming in ML (1994–1993)
- Programming in Modula-3 (1997–1993)
- Prolog for Artificial Intelligence (2002–1995)
- Proving Programs Correct (1994–1993)
- Regular Languages and Finite Automata (2013–1995)
- Running a Business (1995)
- Security I (2017–2011)
- Security II (2018–2011)
- Semantics (1996–1995, 1993)
- Software Design (2012–2006)
- Software Engineering (2017–2007, 1996–1993)
- Software Engineering I (2005–1997)
- Software Engineering II (2005–1997)
- Software Engineering and Design (2008–2003)
- Software and Interface Design (2016–2013)
- Specification and Verification I (2010–1995)
- Specification and Verification II (2010–1995)
- Specification and Verification of Hardware (1994–1993)
- Structured Hardware Design (2005–1994)
- System Architecture (1997)
- System Design (1996–1994)
- System Software (1994–1993)
- System-on-Chip Design (2018–2009)
- Temporal Logic and Model Checking (2015–2014, 2012–2011)
- The MIPS Instruction Set (1994)
- Topical Issues (2018–2011)
- Topics in Artificial Intelligence (1995)
- Topics in Concurrency (2017–2015, 2013, 2011–2008, 2006–2001)
- UNIX Case Study (1994–1993)
- Unix Case Study (1997–1995)
- VLSI (1999–1995)
- VLSI Design (2008–2000)