Mathematics and Computer Science
Mathematics underpins all the sciences and Computer Science is no exception in this respect. Mathematics and Computer Science have a long history of feeding off of each other, from the early work of Babbage in the 19th Century, through to Turing in the mid 20th Century through to today. In today's world the combined use of mathematical techniques and computation underpins much of today's society. For example in analysing large corporate databases to understand consumer behaviour or in performing credit scoring one needs advanced statistical tools plus advanced computational tools. As another example, transactions on the Internet are secured with protocols which are based on areas of pure mathematics which a few decades ago were considered purely of academic interest. The design of cars, aircraft or the prediction of complex systems such as the weather requires a significant modelling aspect which is now done with computer simulations which encode complex mathematical formulae. Even the realistic presentation of movement in a computer game is made possible by the merging of mathematical models and computer simulation.
This programme is intended for students who wish to study both Computer Science and Mathematics, and is particularly suited for those who wish to study both subjects further and examine the interplay between the disciplines.
Themes
From the second year onwards, the programmes have been divided into Themes, which provide a more coherent degree programme between the two departments, by allowing you to choose a coordinated series of units which support each other. The themes are:
- Applied Mathematics/Multimedia Theme
- Pure Mathematics/Computer Security Theme
- Probability and Statistics/Artificial Intelligence Theme
For example students with an interest in multimedia are better suited to study topics such as calculus, whereas students with an interest in computer security are better suited to study topics such as number theory.
It is not compulsory that you follow a theme but we feel it may help those who find the bewildering range of options confusing. If the total number of units does not add up to the required number then you should choose other ones to make up your total.
There may be other units available in both departments which are not listed as part of a theme. A full list of CS units can be found in this handbook, whilst the full list of Maths units can be found in the Maths Department Undergraduate Handbooks and on the Maths department web pages. Please consult the Maths Department Undergraduate Handbooks and Unit web pages for details of the prerequisites for each Maths unit.
First Year
Either the Procedural Programming unit or the Programming Project must be taken in the first semester. The Procedural Programming unit is designed to give a thorough introduction to programming if you do not have A-level computer science or a similar qualification.
The Computer Science units build a general awareness of computers and of the subject of Computer Science, and introduce you to the basic principles of Software Engineering. Emphasis is placed upon the value of good design and its contribution to the software life-cycle. You will learn three programming languages, a procedural, an object oriented and a declarative language. These are currently C, Java and Haskell. These languages cover all major programming paradigms, and learning them will enable you to learn other languages with relatively little effort. The five mathematics units lay foundations for the rest of the mathematics curriculum. The topics include calculus, analysis, computational mathematics, linear algebra, number theory and group theory, set theory, and sequences and series.
Second Year
As well as the two compulsory units, of Introduction to Computer Architecture and Data Structures and Algorithms, you must choose a further 40 credit points Computer Science options. We strongly recommend that these are Symbols, Patterns and Signals and Concurrency and Communications. In addition, you need to take 40 credit points Mathematics options, of which at least 20 credit points must be at level 2. Thus, over the first two years you take 120 credit points Computer Science units and 120 credit points Mathematics units.
You have the option in both the second and third years to choose your options as you see fit. If you take units in the second year which are not part of the Themes above, we will not be able to guarantee that you have no timetable clashes nor will we be able to guarantee you will have done enough prerequisites for your third or fourth year courses. It is therefore strongly recommended that you follow one of the themes.
Third Year
The third year themes are listed below. It is recommended that you choose a theme, and then select a total of 120 credits from the relevant column, including one or other of the two project units marked co.
If you don't want to follow a theme, you may take any available Computer Science or Mathematics options, provided that their timetables don't clash and provided that you meet the following requirements.
For GG14, in addition to one of the 40 credit point project units, you must take 40 credit points of Computer Science options (at least 20 credit points of which must be at level 3) and 40 credit points of Mathematics options (at least 20 credit points of which must be at level 3).
For GG1K, you must take 60 credit points of Computer Science options (at least 40 credit points of which must be at level 3) and 60 credit points of Mathematics options (at least 40 credit points at level 3). These totals include the 20 credit point project unit.
Fourth Year (GG1K)
The fourth year themes are listed below. It is recommended that you choose a theme, and then select a total of 120 credits from the relevant column, including one or other of the two project units marked co. The project should be in the other department, compared to your third year project.
If you don't want to follow a theme, you may take any available Computer Science or Mathematics options, provided that their timetables don't clash and provided that you meet the following requirements.
You must take a 40 credit point project either in Mathematics or in Computer Science. This needs to be chosen so that over the third and fourth years you have taken one project in Mathematics and one project in Computer Science.
You also need to take 40 credit points of Mathematics units and 40 credit points of Computer science units, such that in total you have taken
- At least 100 credit points at Level 3 and 4/M.
- At least 80 credit points at Level 4/M.
- At least 10 credit points of Level 4/M Mathematics.
- At least 10 credit points of Level M Computer Science.

