% Examination structure in 2024

\documentclass[final]{exam-structure}
%\documentclass[draft]{exam-structure}  % also show planning information (red)

\newcommand\tripoyr {2026} %%%% CHANGE EACH YEAR (ALSO CHECK PAPER DATES!) %%%%


\newif\ifdraft
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \drafttrue  = show additional internal planning information (in red)
% \draftfalse = produce the final published version
% Change the line below as required:
\draftfalse


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}

% IMPORTANT: This file is used as a database file, e.g. to generate
% templates for typesetting exam papers and the web archive of past
% exam questions.
%
% Various software reads the following lines starting with
% \begin{paper}, \section, \q and \end{paper}. Therefore, please avoid
% clever LaTeX trickery here (or consult Markus Kuhn).
% In particular, please write out question topics (= course
% names) properly and do not abbreviate. Question topics listed here
% are matched against past usage to aggregate past questions by topic
% in the web archive, and therefore should not be changed without good
% reason.
%
% While the date and start/end time of the paper are not typeset in
% this document, they are copied from here automatically to the
% templates for typesetting the papers.
%
% The first parameter of \q is the number of lectures (hours)
% associated with this question. This number will be printed in red if
% option [draft] has been selected above, to help the Teaching
% Committee review whether the allocation of questions is well
% balanced. The second parameter is the CRSId of the lecturer
% responsible for setting the question. The third parameter is the
% CRSId of the question checker, or a comma-separated list of CRSIDs
% if there is more than one question checker. The fourth parameter is
% the full question title (course name), without any abbreviation
% (should match syllabus and coursedb.txt).
%
% A CSV spread-sheet version auto-generated from this file is at
%
%   https://www.cl.cam.ac.uk/local/typography/tripos/exampacks/questions.csv
%
% Software for processing this file can be found at
%
%   https://gitlab.developers.cam.ac.uk/mgk25/tripos-exampacks

\heading{\partia: Structure of Papers 1 and 2 in \tripoyr}

\begin{paper}{1}{Tuesday 10 June}{09:00}{12:00}
\section{A}{Attempt 1 question}
\q{6}{jjl25}{}{Foundations of Computer Science}
\q{6}{jjl25}{}{Foundations of Computer Science}
\section{B}{Attempt 1 question}
\q{6}{rkh23}{mk428}{Object-Oriented Programming}
\q{6}{rkh23}{mk428}{Object-Oriented Programming}
\section{C}{Attempt 1 question}
\q{5}{mj201,tms41}{tms41,mj201}{Introduction to Probability}
\q{6}{mj201,tms41}{tms41,mj201}{Introduction to Probability}
\section{D}{Attempt 1 question}
\q{6}{jkf21}{tg508}{Algorithms 1}
\q{6}{jkf21}{tg508}{Algorithms 1}
\section{E}{Attempt 1 question}
\q{6}{jkf21}{tg508}{Algorithms 2}
\q{6}{jkf21}{tg508}{Algorithms 2}
\total
\end{paper}
\hspace{\fill}%
\begin{paper}{2}{Wednesday 11 June}{09:00}{12:00}
\section{A}{Attempt 1 question}
\q{6}{ijw24}{rdm34}{Digital Electronics}
\q{6}{ijw24}{rdm34}{Digital Electronics}
\section{B}{Attempt 1 question}
\q{6}{mk428,jac22}{mk428,jac22}{Operating Systems}
\q{6}{mk428,jac22}{mk428,jac22}{Operating Systems}
\section{C}{Attempt 1 question}
\q{5}{rkh23, arb33}{rkh23,arb33}{Software and Security Engineering}
\section{D}{Attempt 2 questions}
\q{6}{mpf23}{jv258}{Discrete Mathematics}
\q{6}{mpf23}{jv258}{Discrete Mathematics}
\q{7}{js2878}{ad260}{Discrete Mathematics}
\q{5}{js2878}{ad260}{Discrete Mathematics}
\total
\end{paper}

\bigskip
\emph{Attempt five questions on each paper. For Paper 2 answer one question from each of Sections A, B and C, and two questions from Section D}

\heading{\partia:   Structure of Paper 3 in \tripoyr}
\begin{center}
\begin{paper}{3}{Friday 13 June}{13:30}{16:30}
%\q{6}{fms27}{}{Algorithms II}
%\q{6}{fms27}{}{Algorithms II}
\section{A}{Attempt 1 question}
\q{4}{djg11}{mj201}{Databases}
\q{4}{djg11}{mj201}{Databases}
\section{B}{Attempt 1 question}
\q{4}{rkm38}{aco41}{Introduction to Graphics}
\q{4}{rkm38}{aco41}{Introduction to Graphics}
\section{C}{Attempt 1 question}
\q{4}{hg410}{afb21}{Interaction Design}
\q{4}{hg410}{afb21}{Interaction Design}
\section{D}{Attempt 2 questions}
\q{6}{av308,sht25}{sht25,av308}{Machine Learning and Real-world Data}
\q{5}{sht25,av308}{sht25,av308}{Machine Learning and Real-world Data}
\q{5}{sht25,av308}{av308,sht25}{Machine Learning and Real-world Data}
\total[Applications]

\bigskip
\emph{Attempt five questions on the paper, one question from each of Sections A, B and C, and two questions from Section D}
\end{paper}

\end{center}

\begin{planningnotes}
Students reading \partia\ of the Computer Science Tripos take
Paper~1, Paper~2 and Paper~3.


\end{planningnotes}
\vfill



\heading{\partib: Structure of Papers 4 to 7 in \tripoyr}
\begin{center}
\begin{paper}{4}{Monday 9 June}{13:30}{16:30}
%\q{6}{fms27}{}{Algorithms II}
%\q{6}{fms27}{}{Algorithms II}
\q{8}{jdy22}{mpf23}{Compiler Construction}
\q{8}{jdy22}{mpf23}{Compiler Construction}
\q{8}{pes20}{jdy22}{Semantics of Programming Languages}
\q{8}{ijl20}{am21}{Prolog}
\q{5}{djg11}{tcg40}{Programming in C and C++}
\q{5}{djg11}{tcg40}{Programming in C and C++}
\q{6}{fms27}{mgk25}{Cybersecurity}
\q{6}{fms27}{mgk25}{Cybersecurity}
\total[Programming]
\end{paper}
\hspace{\fill}%
\begin{paper}{5}{Tuesday 10 June}{13:30}{16:30}
\q{8}{djg11}{jac22}{Computer Networking}
\q{8}{djg11}{jac22}{Computer Networking}
\q{8}{djg11}{jac22}{Computer Networking}
\q{8}{mk428}{djg11,tlh20}{Concurrent and Distributed Systems}
\q{8}{mk428}{djg11,tlh20}{Concurrent and Distributed Systems}
\q{6}{swm11}{rdm34}{Introduction to Computer Architecture}
\q{6}{swm11}{rdm34}{Introduction to Computer Architecture}
\q{6}{swm11}{rdm34}{Introduction to Computer Architecture}
\total[Systems]
\end{paper}
\bigskip

\begin{paper}{6}{Wednesday 11 June}{13:30}{16:30}
\q{6}{tg508}{ad260}{Complexity Theory}
\q{6}{tg508}{ad260}{Complexity Theory}
\q{6}{ad260}{js2878}{Computation Theory}
\q{6}{ad260}{js2878}{Computation Theory}
\q{8}{djw1005}{che29}{Data Science}
\q{8}{djw1005}{che29}{Data Science}
\q{6}{mj201}{sbh11}{Logic and Proof}
\q{6}{mj201}{sbh11}{Logic and Proof}
\q{6}{pes20}{jdy22}{Semantics of Programming Languages}
\total[Theory]
\end{paper}
\hspace{\fill}%
\begin{paper}{7}{Thursday 12 June}{13:30}{16:30}
\q{6}{sbh11}{mj201}{Artificial Intelligence}
\q{6}{sbh11}{mj201}{Artificial Intelligence}
\q{4}{ah793}{ki287,rnc1}{Economics, Law and Ethics}
\q{4}{ah793}{ki287,rnc1}{Economics, Law and Ethics}
\q{4}{pjb48}{fm611}{Formal Models of Language}
\q{4}{fm611}{pjb48}{Formal Models of Language}
\q{4}{aco41}{rkm38}{Further Graphics}
\q{4}{aco41}{rkm38}{Further Graphics}
\q{4}{afb21}{lec40}{Further Human--Computer Interaction}
\q{4}{afb21}{lec40}{Further Human--Computer Interaction}
\total[Human Aspects]
\end{paper}

\bigskip
\emph{Attempt any five questions on each of papers 4-7.}

\end{center}

\begin{planningnotes}
Students reading \partib\ of the Computer Science Tripos take
Paper~4, Paper~5, Paper~6 and Paper~7.
\end{planningnotes}


\heading{\partii:  Structure of Papers 8 and 9 in \tripoyr}


\begin{paper}{8}{Monday 9 June}{13:30}{16:30}
\q{8}{rdm34}{swm11}{Advanced Computer Architecture}
\q{6}{nk480}{js2878}{Algebraic Techniques for Programming}
\q{6}{pl219}{djg11}{Bioinformatics}
\q{8}{mgk25}{mk428}{Cryptography}
\q{5}{im496}{nk480}{Denotational Semantics}
\q{8}{sam56}{rdm34}{E-Commerce}
\q{6}{rb2018,hk590}{pes20}{Hoare Logic and Model Checking}
\q{6}{rkh23}{ijw24}{Information Theory}
\q{8}{sbh11}{mj201}{Machine Learning and Bayesian Inference}
\q{8}{tcg40}{pm830}{Optimising Compilers}
\q{8}{jac22}{djg11}{Principles of Communications}
\q{8}{pm830}{jv258}{Quantum Computing}
\q{6}{nk480}{js2878}{Types}
\total
\end{paper}
\hspace{\fill}%
\begin{paper}{9}{Tuesday 10 June}{13:30}{16:30}
\q{8}{rdm34}{swm11}{Advanced Computer Architecture}
\q{6}{nk480}{js2878}{Algebraic Techniques for Programming}
\q{6}{pl219}{djg11}{Bioinformatics}
\q{8}{sam56}{rdm34}{Business Studies}
\q{8}{mgk25}{mk428}{Cryptography}
\q{5}{im496}{nk480}{Denotational Semantics}
\q{6}{rb2018,hk590}{pes20}{Hoare Logic and Model Checking}
\q{6}{rkh23}{ijw24}{Information Theory}
\q{8}{sbh11}{mj201}{Machine Learning and Bayesian Inference}
\q{8}{tcg40}{pm830}{Optimising Compilers}
\q{8}{jac22}{djg11}{Principles of Communications}
\q{8}{pm830, sjh227}{jv258}{Quantum Computing}
\q{6}{nk480}{js2878}{Types}
\total
\end{paper}

\bigskip

\emph{Attempt any five questions on each paper.}

\begin{planningnotes}
Students reading \partii\ of the Computer Science Tripos take
Paper~8 and Paper~9.
\end{planningnotes}

\end{document}
