# Mathematics and Computer Science with a Year in Industry BSc (Joint Honours)

- Course length: 4 years
- UCAS code: GG16
- Year of entry: 2019
- Typical offer: A-level : ABB / IB : 33 / BTEC : D*DD

## Honours Select

×This programme offers Honours Select combinations.

## Honours Select 100

×This programme is available through Honours Select as a Single Honours (100%).

## Honours Select 75

×This programme is available through Honours Select as a Major (75%).

## Honours Select 50

×This programme is available through Honours Select as a Joint Honours (50%).

## Honours Select 25

×This programme is available through Honours Select as a Minor (25%).

## Study abroad

×This programme offers study abroad opportunities.

## Year in China

×This programme offers the opportunity to spend a Year in China.

## Accredited

×This programme is accredited.

### Module details

### Programme Year One

Year 1 of the programme has been designed as an even split between subjects related to Computing and Mathematics.

#### Year One Compulsory Modules

##### Introduction to Programming (COMP101)

**Level**1 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**0:100 **Aims**- To introduce the concepts and principles of problem solving using computational thinking.
- To identify and employ algorithms in the solution of identified problems.
- To develop sound principles in designing programming solutions to identified problems using appropriate data structures.
- To introduce the concepts of implementing solutions in a high level programming language.

**Learning Outcomes**Identify the principles and practice of using high-level programming constructs to solve a problem

Use relevant data structures to solve problems

Produce documentation in support of a programmed solution

Use a suitable Integrated Development Environment to carry out Implementation, interpretation/compilation, testing and execution.

Identify appropriate design approaches to formulate a solution to a program

Design and apply effective test cases

Develop debugging skills to correct a program

Specific learning outcomes are listed above.

General learning outcomes:

- An understanding of the principles and practice of analysis and design in the construction of robust, maintainable programs which satisfy their requirements;
- A competence to design, write, compile, test and execute straightforward programs using a high-level language;
- An appreciate of the principles of procedural programming;
- An awareness of the need for a professional approach to design and the importance of good documentation to the finished programs.

##### Programming Language Paradigms (COMP105)

**Level**1 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**25:75 **Aims**- To introduce the functional programming paradigm, and to compare and contrastit with the imperative programming paradigm.
- To explore the common techniques that are employed to solve problems in a functional way.

**Learning Outcomes**Describe the imperative and functional programming paradigms including the differences between them.

Apply recursion to solve algorithmic tasks.

Apply common functional programming idioms such as map, filter, reduce and fold.

Write programs using a functional programming language.

##### Graduates for the Digital Society (COMP107)

**Level**1 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**0:100 **Aims**To provide the students with a wide-ranging understanding of the discipline of computing, and to introduce students to concepts of professional ethics as well as social and legal aspects of computing.

To equip the students with the communication, time and project management, and employability skills required for a computing professional.

To allow the students to gain an understanding of the importance of appropriate and efficient database design strategies, at the conceptual and logical level, and how to communicate them effectively to stakeholders

To provide the students with practical experience of database programming, including data manipulation and query in SQL.**Learning Outcomes**Identify and appraise professional, ethical, legal and social issues related to the work of a professional within the IT industry with particular regard to the BCS Codes of Conduct and Practice.

Recognise employability and entrepreneurship skills that prepare students to undertake paid work experience during the course of their degree or independently

Identify, describe and discuss economic, historical, organisational, research, and social aspects of computing as a discipline and computing in practice;

Identify and apply principles of database conceptual design using ER and UML design methodologies

Recognise database logical design principles, and issues related to database physical design;

Use SQL as a data definition and manipulation language, and as a language for querying database

##### Data Structures and Algorithms (COMP108)

**Level**1 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**60:40 **Aims**1. To introduce the notation, terminology, and techniques underpinning the study of algorithms.

2. To introduce basic data structures and associated algorithms.

3. To introduce standard algorithmic design paradigms and efficient use of data structures employed in the development of efficient algorithmic solutions.**Learning Outcomes**Be able to describe the principles of and apply a variety of data structures and their associated algorithms; Be able to describe standard algorithms, apply a given pseudo code algorithm in order to solve a given problem, and carry out simple asymptotic analyses of algorithms;

Be able to describe and apply different algorithm design principles and distinguish the differences between these principles;

Be able to choose and justify the use of appropriate data structures to enable efficient implementation of algorithms;

##### Object-oriented Programming (COMP122)

**Level**1 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**0:100 **Aims**- To develop understanding of object-oriented software methodology, in theory and practice.
- To further develop sound principles in software design and software development.
- To understand basic concepts of software testing principles and software version control systems.

**Learning Outcomes**Describe object hierarchy structure and how to design such a hierarchy of related classes.

Describe the concept of object polymorphism in theory and demonstrate this concept in practice.

Design and code iterators for collection-based data management.

Design simple unit tests using appropriate software tools.

Demonstrate concepts of event-driven programming and be able to design simple GUI to demonstrate this understanding.

Identify and describe the task and issues involved in the process of developing interactive products for people, and the techniques used to perform these tasks.

- To develop understanding of object-oriented software methodology, in theory and practice.
##### Calculus I (MATH101)

**Level**1 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**1. To introduce the basic ideas of differential and integral calculus, to develop the basic skills required to work with them and to apply these skills to a range of problems.

2. To introduce some of the fundamental concepts and techniques of real analysis, including limits and continuity.

3. To introduce the notions of sequences and series and of their convergence.

**Learning Outcomes**differentiate and integrate a wide range of functions;

sketch graphs and solve problems involving optimisation and mensuration

understand the notions of sequence and series and apply a range of tests to determine if a series is convergent

##### Calculus II (MATH102)

**Level**1 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**80:20 **Aims**· To discuss local behaviour of functions using Taylor’s theorem.

· To introduce multivariable calculus including partial differentiation, gradient, extremum values and double integrals.

**Learning Outcomes**use Taylor series to obtain local approximations to functions;

obtain partial derivaties and use them in several applications such as, error analysis, stationary points change of variables

evaluate double integrals using Cartesian and Polar Co-ordinates

##### Introduction to Linear Algebra (MATH103)

**Level**1 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**- To develop techniques of complex numbers and linear algebra, including equation solving, matrix arithmetic and the computation of eigenvalues and eigenvectors.
- To develop geometrical intuition in 2 and 3 dimensions.
- To introduce students to the concept of subspace in a concrete situation.
- To provide a foundation for the study of linear problems both within mathematics and in other subjects.

**Learning Outcomes**manipulate complex numbers and solve simple equations involving them

solve arbitrary systems of linear equations

understand and use matrix arithmetic, including the computation of matrix inverses

compute and use determinants

understand and use vector methods in the geometry of 2 and 3 dimensions

calculate eigenvalues and eigenvectors and, if time permits, apply these calculations to the geometry of conics and quadrics

##### Newtonian Mechanics (MATH122)

**Level**1 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**80:20 **Aims**To provide a basic understanding of the principles of Classical Mechanics and their application to simple dynamical systems.

Learning Outcomes:

After completing the module students should be able to analyse real world problems

involving:

- the motions of bodies under simple force systems

- conservation laws for momentum and energy

- rigid body dynamics using centre of mass,

angular momentum and moments of inertia**Learning Outcomes**

After completing the module students should be able to analyse

real-world problems involving:the motions of bodies under simple force systems

conservation laws for momentum and energy

rigid body dynamics using centre of mass, angular momentum and moments

oscillation, vibration, resonance

##### Numbers, Groups and Codes (MATH142)

**Level**1 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**80:20 **Aims**· To provide an introduction to rigorous reasoning in axiomatic systems exemplified by the framework of group theory.

· To give an appreciation of the utility and power of group theory as the study of symmetries.

· To introduce public-key cryptosystems as used in the transmission of confidential data, and also error-correcting codes used to ensure that transmission of data is accurate. Both of these ideas are illustrations of the application of algebraic techniques.

**Learning Outcomes** Use the division algorithm to construct the greatest common divisor of a pair of positive integers;

Solve linear congruences and find the inverse of an integer modulo a given integer;

Code and decode messages using the public-key method

Manipulate permutations with confidence

Decide when a given set is a group under a specified operation and give formal axiomatic proofs;

Understand the concept of a subgroup and use Lagrange''s theorem;

Understand the concept of a group action, an orbit and a stabiliser subgroup

Understand the concept of a group homomorphism and be able to show (in simple cases) that two groups are isomorphic;

### Programme Year Two

In Year 2 you continue with a mix of modules related to Computer Science and Mathematics but also have the opportunity to specialise in certain subject areas of your choice.

#### Year Two Compulsory Modules

##### Complexity of Algorithms (COMP202)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**80:20 **Aims**- To demonstrate how the study of algorithmics has been applied in a number of different domains.
- To introduce formal concepts of measures of complexity and algorithms analysis.
- To introduce fundamental methods in data structures and algorithms design.
- To make students aware of computationally hard problems and possible ways of coping with them.

**Learning Outcomes**At the conclusion of the module students should have an appreciation of the diversity of computational fields to which algorithmics has made significant contributions.

At the conclusion of the module students should have fluency in using basic data structures (queues, stacks, trees, graphs, etc) in conjunction with classical algorithmic problems (searching, sorting, graph algorithms, security issues) and be aware of basic number theory applications, etc.

At the conclusion of the module students should be familiar with formal theories providing evidence that many important computational problems are inherently intractable, e.g., NP-completeness.

#### Year Two Optional Modules

##### Introduction to Artificial Intelligence (COMP111)

**Level**1 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**1. To provide an introduction to AI through studying search problems, reasoning under uncertainty, knowledge representation, planning, and learning in intelligent systems.

2. To equip the students with an awareness of the main applications of AI and the history, philosophy, and ethics of AI.**Learning Outcomes**Students should be able to identify and describe the characteristics of intelligent agents and the environments that they can inhabit.

Students should be able to identify, contrast and apply to simple examples the basic search techniques that have been developed for problem-solving in AI.

Students should be able to apply to simple examples the basic notions of probability theory that have been applied to reasoning under uncertainty in AI.

Students should be able to identify and describe logical agents and the role of knowledge bases and logical inference in AI.

Students should be able to identify and describe some approaches to learning in AI and apply these to simple examples.

##### Computer Systems (COMP124)

**Level**1 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**80:20 **Aims**1. Tointroduce how computers function at the instruction operation level.

2. Tointroduce the relationships between the instruction operation level and boththe higher (software) and lower (hardware) levels

3. Tointroduce students to the structure and functionality of modern operating systems.

4. Toexplain how the principal components of computer-based systems perform theirfunctions and how they interact with each other.

**Learning Outcomes**Describe the structure and operation of computer hardware at the register transfer level.

Implement/reason about simple algorithms at the level of machine code.

Describe the overall structure and functionality of a modern operating system and its interactions with computer hardware and user processes.

Construct/reason about programs that involve the management of concurrent processes.

Explain at a simple level the operation and organisation of compilers.

##### Software Engineering I (COMP201)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**60:40 **Aims**The module is intended to develop an understanding of the problems associated with the development of significant computing systems (that is, systems that are too large to be designed and developed by a single person,and are designed to be used by many users) and to appreciate the techniques and tools necessary to develop such systems efficiently, in a cost-effective manner.

**Learning Outcomes**Realise the problems in designing and building significant computer systems;Understand the need to design systems that fully meet the requirements of the intended users including functional and non functional elements;Appreciate the need to ensure that the implementation of a design is adequately tested to ensure that the completed system meets the specifications; Be fully aware of the principles and practice of an O-O approach to the design and development of computer systems;

Be able to apply these principles in practice;

Produce O-O requirements and design documentation in UML which demonstrates the features of good design such as loose coupling and high cohesion;

Be able to demonstrate how to effectively implent an O-O design in an O-O languuge such as Java or Python;

##### Database Development (COMP207)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**- To introduce students to the problems arising from concurrency in databases, information security considerations and how they are solved
- To introduce students to the problems arising from the integration of heterogeneous sources of information and the use of semi-structured data;
- To introduce students to non-relational databases and the economic factors involved in their selection
- To introduce students to techniques for analyzing large amounts of data, the security issues and commercial factors involved with them

**Learning Outcomes**At the end of this module the student will be able to identify and apply the principles underpinning transaction management within DBMS and the main security issues involved in securing transaction;

Demonstrate an understanding of advanced SQL topics;

Illustrate the issues related to Web technologies as a semi-structured data representation formalism;

Identify the principles underlying object relational models and the economic factors in their uptake and development;

Interpret the main concepts and security aspects in data warehousing, and the concepts of data mining and commercial considerations involved in adopting the paradigm.

##### Decision, Computation and Language (COMP218)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**80:20 **Aims**- To introduce formal concepts of automata, grammars and languages.
To introduce ideas of computability and decidability.

To illustrate the importance of automata, formal language theory and general models of computation in Computer Science and Artificial Intelligence.

**Learning Outcomes**Be familiar with the relationships between language as an object recognised by an automaton and as a set generated by a formal grammar. Be able to apply standard translations between non-deterministic and deterministic finite automata.

Be familiar with the distinct types of formal grammar (e.g. Chomsky hierarchy) and the concept of normal forms for grammars.

Be aware of the limitations (with respect to expressive power) of different automata and grammar forms.

Understand the distinction between recursive and recursively enumerable languages.- To introduce formal concepts of automata, grammars and languages.
##### Ordinary Differential Equations (MATH201)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**75:25 **Aims**To familiarize students with basic ideas and fundamental techniques to solve ordinary differential equations.

To illustrate the breadth of applications of ODEs and fundamental importance of related concepts.

**Learning Outcomes**After completing the module students should be:

- familiar with elementary techniques for the solution of ODE''s, and the idea of reducing a complex ODE to a simpler one;

- familiar with basic properties of ODE, including main features of initial value problems and boundary value problems, such as existence and uniqueness of solutions;

- well versed in the solution of linear ODE systems (homogeneous and non-homogeneous) with constant coefficients matrix;

- aware of a range of applications of ODE.

##### Group Project Module (MATH206)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**0:100 **Aims**· To give students experience of working effectively in small groups.

· To train students to write about mathematics.

· To give students practice in delivering presentations.

· To develop students’ ability to study independently.

· To prepare students for later individual project work.

· To enhance students’ appreciation of the connections between different areas of mathematics.

· To encourage students to discuss mathematics with each other.

**Learning Outcomes**Work effectively in groups, and delegate common tasks.

Write substantial mathematical documents in an accessible form.Give coherent verbal presentations of more advanced mathematical topics.

Appreciate how mathematical techniques can be applied in a variety of different contexts##### Introduction to the Methods of Applied Mathematics (MATH224)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**90:10 **Aims**To provide a grounding in elementary approaches to solution of some of the standard partial differential equations encountered in the applications of mathematics.

To introduce some of the basic tools (Fourier Series) used in the solution of differential equations and other applications of mathematics.

**Learning Outcomes**After completing the module students should:

- be fluent in the solution of basic ordinary differential equations, including systems of first order equations;

- be familiar with the concept of Fourier series and their potential application to the solution of both ordinary and partial differential equations;

- be familiar with the concept of Laplace transforms and their potential application to the solution of both ordinary and partial differential equations;

- be able to solve simple first order partial differential equations;

- be able to solve the basic boundary value problems for second order linear partial differential equations using the method of separation of variables.

##### Vector Calculus With Applications in Fluid Mechanics (MATH225)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**85:15 **Aims**To provide an understanding of the various vector integrals, the operators div, grad and curl and the relations between them.

To give an appreciation of the many applications of vector calculus to physical situations.

To provide an introduction to the subjects of fluid mechanics and electromagnetism.

**Learning Outcomes**After completing the module students should be able to:

- Work confidently with different coordinate systems.

- Evaluate line, surface and volume integrals.

- Appreciate the need for the operators div, grad and curl together with the associated theorems of Gauss and Stokes.

- Recognise the many physical situations that involve the use of vector calculus.

- Apply mathematical modelling methodology to formulate and solve simple problems in electromagnetism and inviscid fluid flow.

All learning outcomes are assessed by both examination and course work.

##### Mathematical Models: Microeconomics and Population Dynamics (MATH227)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**90:10 **Aims**1. To provide an understanding of the techniques used in constructing, analysing, evaluating and interpreting mathematical models.

2. To do this in the context of two non-physical applications, namely microeconomics and population dynamics.

3. To use and develop mathematical skills introduced in Year 1 - particularly the calculus of functions of several variables and elementary differential equations.

**Learning Outcomes**After completing the module students should be able to:

- Use techniques from several variable calculus in tackling problems in microeconomics.

- Use techniques from elementary differential equations in tackling problems in population dynamics.

- Apply mathematical modelling methodology in these subject areas.

All learning outcomes are assessed by both examination and course work.

##### Classical Mechanics (MATH228)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**90:10 **Aims**To provide an understanding of the principles of Classical Mechanics and their application to dynamical systems.

**Learning Outcomes**Understanding of variational principles, Lagrangian mechanics, Hamiltonian mechanics.

Newtonian gravity and Kepler''s laws, including calculations of the orbits of satellites, comets and planetary motions

Motion relative to a rotating frame, Coriolis and centripetal forces, motion under gravity over the Earth''s surface

Connection between symmetry and conservation laws

Inertial and non-inertial frames.

##### Metric Spaces and Calculus (MATH241)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**90:10 **Aims**To introduce the basic elements of the theories of metric spaces and calculus of several variables.

**Learning Outcomes**After completing the module students should:

Be familiar with a range of examples of metric spaces.

Have developed their understanding of the notions of convergence and continuity.

Understand the contraction mapping theorem and appreciate some of its applications.

Be familiar with the concept of the derivative of a vector valued function of several variables as a linear map.

Understand the inverse function and implicit function theorems and appreciate their importance.

Have developed their appreciation of the role of proof and rigour in mathematics.

##### Complex Functions (MATH243)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**To introduce the student to a surprising, very beautiful theory which has intimate connections with other areas of mathematics and physical sciences, for instance ordinary and partial differential equations and potential theory.

**Learning Outcomes**After completing this module students should:

- appreciate the central role of complex numbers in mathematics;

- be familiar with all the classical holomorphic functions;

- be able to compute Taylor and Laurent series of such functions;

- understand the content and relevance of the various Cauchy formulae and theorems;

- be familiar with the reduction of real definite integrals to contour integrals;

- be competent at computing contour integrals.

##### Linear Algebra and Geometry (MATH244)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**90:10 **Aims**To introduce general concepts of linear algebra and its applications in geometry and other areas of mathematics.

**Learning Outcomes**After completing the module students should be able to:

• appreciate the geometric meaning of linear algebraic ideas,

• appreciate the concept of an abstract vector space and how it is used in different mathematical situations,

• apply a change of coordinates to simplify a linear map,

• manipulate matrix groups, in particular GL(n), O(n) and SO(n),

• understand bilinear forms from a geometric point of view.

##### Commutative Algebra (MATH247)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**90:10 **Aims**To give an introduction to abstract commutative algebra and show how it both arises naturally, and is a useful tool, in number theory.

**Learning Outcomes**After completing the module students should be able to:

• Work confidently with the basic tools of algebra (sets, maps, binary operations and equivalence relations).

• Recognise abelian groups, different kinds of rings (integral, Euclidean, principal ideal and unique factorisation domains) and fields.

• Find greatest common divisors using the Euclidean algorithm in Euclidean domains.

• Apply commutative algebra to solve simple number-theoretic problems.

##### Geometry of Curves (MATH248)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**90:10 **Aims**To introduce geometric ideas and develop the basic skills in handling them.

To study the line, circle, ellipse, hyperbola, parabola, cubics and many other curves.

To study theoretical aspects of parametric, algebraic and projective curves.

To study and sketch curves using an appropriate computer package.

**Learning Outcomes**After completing this module students should be able to:

- use a computer package to study curves and their evolution in both parametric and algebraic forms.

-determine and work with tangents, inflexions, curvature, cusps, nodes, length and other features.

-calculate envelopes and evolutes.

- solve the position and shape of some algebraic curves including conics.

The first learning outcome is assessed by coursework, the others by both coursework and examination.

##### Introduction to Methods of Operational Research (MATH261)

**Level**2 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**90:10 **Aims**- Appreciate the operational research approach.
- Be able to apply standard methods to a wide range of real-world problems as well as applications in other areas of mathematics.
- Appreciate the advantages and disadvantages of particular methods.
- Be able to derive methods and modify them to model real-world problems.
- Understand and be able to derive and apply the methods of sensitivity analysis.

**Learning Outcomes**Appreciate the operational research approach.Be able to apply standard methods to a wide range of real-world problems as well asapplications in other areas of mathematics.

Appreciate the advantages and disadvantages of particular methods.

Be able to derive methods and modify them to model real-world problems.Understand and be able to derive and apply the methods of sensitivity analysis. Appreciate the importance of sensitivity analysis.

##### Financial Mathematics (MATH262)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**100:0 **Aims**- to provide an understanding of basic theories in Financial Mathematics used in the study process of actuarial/financial interest,
- to provide an introduction to financial methods and derivative pricing financial instruments,
- to gain understanding of some financial models with applications to financial/insurance industry,
- to prepare the students adequately and to develop their skills in order to be ready to sit the CT1 & CT8 subject of the Institute of Actuaries (the module covers the material of CT8 and 20% of CT1).

**Learning Outcomes**To understand the assumptions of the Capital Asset Pricing Model (CAPM), to be able to explain the no riskless lending or borrowing and other lending and borrowing assumptions, to be able to use the formulas of CAPM, to be able to derive the capital market line and security market line.

To be able to describe the Arbitrage Theory Model (APT) and explain its assumptions as well as perform estimating and testing in APT

To be able to explain the terms long/short position, spot/delivery/forward price, understand the use of future contracts, describe what a call/put option (European/American) is as well as be able to create graphs and explain their payouts, describe the hedging for reducing the exposure to risk, to be able to explain arbitrage, understand the mechanism of short sales.

To be able to explain/describe what arbitrage is, what the risk neutral probability measure is, as well as to be able to use (and perform calculation) the binomial tree for European and American style options.To understand the probabilistic interpretation and the basic concept of the random walk of asset pricing.

To understand the concepts of replication, hedging, and delta hedging in continuous time.

To be able to use Ito''s formula, derive/use the Black‐Scholes formula, price contingent claims (in particular European/American style options and forward contracts), to be able to explain the properties of the Black‐Scholes formula and to be able to use the Normal distribution function in numerical examples of pricing,

To understand the role of Greeks, to be able to describe intuitively what Delta, Theta, Gamma is, and to calculate them in numerical examples.##### Statistical Theory and Methods I (MATH263)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**85:15 **Aims**To introduce statistical methods with a strong emphasis on applying standard statistical techniques appropriately and with clear interpretation. The emphasis is on applications.

**Learning Outcomes**After completing the module students should have a conceptual and practical understanding of a range of commonly applied statistical procedures. They should have also developed some familiarity with the statistical package MINITAB.

##### Statistical Theory and Methods II (MATH264)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**90:10 **Aims**To introduce statistical distribution theory which forms the basis for all applications of statistics, and for further statistical theory.

**Learning Outcomes**After completing the module students should understand basic probability calculus. They should be familiar with a range of techniques for solving real life problems of the probabilistic nature.

##### Numerical Methods (MATH266)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**90:10 **Aims**To provide an introduction to the main topics in Numerical Analysis and their relation to other branches of Mathematics

**Learning Outcomes**After completing the module students should be able to:

• write simple mathematical computer programs in Maple,

• understand the consequences of using fixed-precision arithmetic,

• analyse the efficiency and convergence rate of simple numerical methods,

• develop and implement algorithms for solving nonlinear equations,

• develop quadrature methods for numerical integration,

• apply numerical methods to solve systems of linear equations and to calculate eigenvalues and eigenvectors,

• solve boundary and initial value problems using finite difference methods.

##### Operational Research: Probabilistic Models (MATH268)

**Level**2 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**90:10 **Aims**To introduce a range of models and techniques for solving under uncertainty in Business, Industry, and Finance.

**Learning Outcomes**The ability to understand and describe mathematically real-life optimization problems.

Understanding the basic methods of dynamical decision making.

Understanding the basics of forecasting and simulation.

The ability to analyse elementary queueing systems.

### Programme Year Three

Year 3 of the programme is taken up with a placement in a professional software industry environment.

#### Year Three Compulsory Modules

##### Industrial Placement Y3 (COMP299)

**Level**2 **Credit level**120 **Semester**Whole Session **Exam:Coursework weighting**0:100 **Aims**The aim of this module is to provide students with working experience within a commercial or industrial environment and to gain an understanding of the various operational aspects of a company, of its products and working practices.

**Learning Outcomes**At the end of the module students should have an appreciation of the working practices of the organisation hosting the placement and show an ability to make a contribution towards its daily operaton.

Students should gain practical experience of software design and development, and coding practices within industrial/commercial environments;

Preparation of reports and other relevant documentation

Working practices within industrial/commercial environments

Experience with management of time and resources

#### Year Four Compulsory Modules

##### Final Year First Semester 15 Credit Project (COMP391)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**0:100 **Aims**- To give students the opportunity to work in a guided but independent fashion to explore an individual problem in depth, making practical use of principles, techniques and methodologies acquired elsewhere in the course.
- To give experience of carrying out a sustained piece of individual work and in producing a dissertation.
- To enhance communication skills, both oral and written.

**Learning Outcomes**After completing the module students should be able:

- To specify a problem, and produce a plan to address the problem
- To manage their time effectively so as to carry out their plan
- To locate and make use of information relevant to their project
- To design a solution to their problem
- To implement and test their solution
- To evaluate in a critical fashion the work they have done, and to place it in the context of related work
- To prepare and deliver a formal presentation
- To structure and write a dissertation describing their project

##### Final Year Second Semester 15 Credit Project (COMP392)

**Level**3 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**0:100 **Aims**- To give students the opportunity to work in a guided but independent fashion to explore an individual problem in depth, making practical use of principles, techniques and methodologies acquired elsewhere in the course.
- To give experience of carrying out a sustained piece of individual work and in producing a dissertation.
- To enhance communication skills, both oral and written.

**Learning Outcomes**After completing the module students should be able:

- To specify a problem, and produce a plan to address the problem
- To manage their time effectively so as to carry out their plan
- To locate and make use of information relevant to their project
- To design a solution to their problem
- To implement and test their solution
- To evaluate in a critical fashion the work they have done, and to place it in the context of related work
- To prepare and deliver a formal presentation
- To structure and write a dissertation describing their project

#### Year Four Optional Modules

##### Advanced Artificial Intelligence (COMP219)

**Level**Q5 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**1. To equip students with the knowledge about basic algorithms that have been used to enable the AI agents to conduct the perception, inference, and planning tasks;

2. To equip students with the knowledge about machine learning algorithms;

3. To provide experience in applying basic AI algorithms to solve problems;

4. To provide experience in applying machine learning algorithms to practical problems.**Learning Outcomes**Ability to explain in detail how the techniques in the perceive-inference-action loop work.

Ability to choose, compare, and apply suitable basic learning algorithms to simple applications.

Ability to explain how deep neural networks are constructed and trained, and apply deep neural networks to work with large scale datasets.

Understand reinforcement learning, and is able to develop deep reinforcement learning algorithms for suitable applications.

##### Knowledge Representation and Reasoning (COMP304)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**75:25 **Aims**1. To introduce Knowledge Representation as a research area;

2. To give a complete and critical understanding of the notion of representation languages and logics.;

3. To study description logics and their use;

4. To study epistemic logics and their use;

5. To study the trade-off between expressive power and computational complexity of reasoning.**Learning Outcomes**Translate between English and the languages of modal and description logics.

Explain whether formulas of propositional, modal and description logic are true or valid.

Analyse simple scenarios involving knowledge, and represent them in modal and description logics.Apply formal proof methods in description logics.##### Biocomputation (COMP305)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**- To introduce students to some of the established work in the field of neural computation.
- To highlight some contemporary issues within the domain of neural computation with regard to biologically-motivated computing particularly in relation to multidisciplinary research.
- To equip students with a broad overview of the field of evolutionary computation, placing it in a historical and scientific context.
- To emphasise the need to keep up-to-date in developing areas of science and technology and provide some skills necessary to achieve this.
To enable students to make reasoned decisions about the engineering of evolutionary ("selectionist") systems.

**Learning Outcomes**Account for biological and historical developments neural computation Describe the nature and operation of MLP and SOM networks and when they are used

Assess the appropriate applications and limitations of ANNs

Apply their knowledge to some emerging research issues in the field

Understand how selectionist systems work in general terms and with respect to specific examples

Apply the general principles of selectionist systems to the solution of a number of real world problems

Understand the advantages and limitations of selectionist approaches and have a considered view on how such systems could be designed

##### Efficient Sequential Algorithms (COMP309)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**- To learn some advanced topics in the design and analysis of efficient sequential algorithms, and a few key results related to the study of their complexity.

**Learning Outcomes**At the conclusion of the module students should have an understanding of the role of algorithmics within Computer Science;

have expanded their knowledge of computational complexity theory;

be aware of current research-level concerns in the field of algorithm design.

##### Multi-agent Systems (COMP310)

**Level**3 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**100:0 **Aims**- To introduce the student to the concept of an agent and multi-agent systems, and the main applications for which they are appropriate;
- To introduce the main issues surrounding the design of intelligent agents;
- To introduce the main issues surrounding the design of a multi-agent society.
- To introduce a contemporary platform for implementing agents and multi-agent systems.

**Learning Outcomes**- Understand the notion of an agent, how agents are distinct from other software paradigms (eg objects) and understand the characteristics of applications that lend themselves to an agent-oriented solution;
- Understand the key issues associated with constructing agents capable of intelligent autonomous action, and the main approaches taken to developing such agents;
- Understand the key issues in designing societies of agents that can effectively cooperate in order to solve problems, including an understanding of the key types of multi-agent interactions possible in such systems
- Understand the main application areas of agent-based solutions, and be able to develop a meaningful agent-based system using a contemporary agent development platform.

##### Formal Methods (COMP313)

**Level**3 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**100:0 **Aims**As more complex computational systems are used within critical applications, it is becoming essential that these systems are formally specified. Such specifications are used to give a precise and unambiguous description of the required system. While this is clearly important in criticial systems such as industrial process management and air/spacecraft control, it is also becoming essential when applications involving E-commerce and mobile code are developed. In addition, as computational systems become more complex in general, formal specification can allow us to define the key characteristics of systems in a clear way and so help the development process.

Formal specifications provide the basis for verification of properties of systems. While there are a number of ways in which this can be achieved, the model-checking approach is a practical and popular way to verify the temporal properties of finite-state systems. Indeed, such temporal verification is widely used within the design of critical parts of integrated circuits, has recently been used to verify parts of the control mechanism for one of NASA’s space probes, and is now beginning to be used to verify general Java programs.

**Learning Outcomes**Upon completing this module, a student will:

- understand the principles of standard formal methods, such as Z;
- understand the basic notions of temporal logic and its use in relation to reactive systems;
- understand the use of model checking techniques in the verification of reactive systems;
- be aware of some of the current research issues related to formal methods.

##### Technologies for E-commerce (COMP315)

**Level**3 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**100:0 **Aims**- To introduce the environment in which e-commerce takes place, the main technologies for supporting e-commerce, and how these technologies fit together;
- To introduce security as a major issue in secure e-commerce, and to provide an overview of security issues;
- To introduce encryption as a means of ensuring security, and to describe how secure encryption can be delivered;
- To introduce issues relating to privacy; and
- To introduce auction protocols and negotiation mechanisms as emerging e-commerce technologies

**Learning Outcomes**Upon completing this module, a student will:

- understand the main technologies behind e-commerce systems and how these technologies interact;
- understand the security issues which relate to e-commerce;
- understand how encryption can be provided and how it can be used to ensure secure commercial transactions;
- understand implementation aspects of e-commerce and cryptographic systems;
- have an appreciation of privacy issues; and
- understand auction protocols and interaction mechanisms.

##### Software Engineering II (COMP319)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**The overall aim of this module is to introduce students to a range of advanced, near-research level topics in contemporary software engineering. The actual choice of topics will depend upon the interests of the lecturer and the topics current in the software engineering research literature at that time. The course will introduce issues from a problem (user-driven) perspective and a technology-driven perspective – where users have new categories of software problems that they need to be solved, and where technology producers create technologies that present new opportunities for software products. It will be expected that students will read articles in the software engineering research literature, and will discuss these articles in a seminar-style forum.

**Learning Outcomes**Understand the key problems driving research and development in contemporary software engineering (eg the need to develop software for embedded systems). Be conversant with approaches to these problems, as well as their advantages, disadvantages, and future research directions.

Understand the key technological drivers behind contemporary software engineering research (eg the increased use of the Internet leading to the need to engineer systems on and for the web).

Be able to present, analyse, and give a reasoned critique of articles in the software engineering research literature. ble to read and understand articles in the research literature of software engineering.

Be able to read and understand articles in the research literature of software engineering.

##### Introduction to Computational Game Theory (COMP323)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**80:20 **Aims**- to introduce the student to the notion of a game, its solutions concepts, and other basic notions and tools of game theory, and the main applications for which they are appropriate, including electricity trading markets;
to formalize the notion of strategic thinking and rational choice by using the tools of game theory, and to provide insights into using game theory in modeling applications;

to draw the connections between game theory, computer science, and economics, especially emphasizing the computational issues;

to introduce contemporary topics in the intersection of game theory, computer science, and economics;

**Learning Outcomes**Given a real world situation a student should be able to identify its key strategic aspects and based on these be able to connect them to appropriate game theoretic concepts;

A student will understand the key connections and interactions between game theory, computer science and economics;

A student will understand the impact of game theory on its contemporary applications, and be able to identify the key such application areas;

- to introduce the student to the notion of a game, its solutions concepts, and other basic notions and tools of game theory, and the main applications for which they are appropriate, including electricity trading markets;
##### Computational Game Theory and Mechanism Design (COMP326)

**Level**3 **Credit level**15 **Semester**Second Semester **Exam:Coursework weighting**80:20 **Aims**- To provide an understanding of the inefficiency arising from uncontrolled, decentralized resource allocation.
- To provide a foundation for modelling various mechanism design problems together with their algorithmic aspects.
- To provide the tools and paradigms for the design and analysis of efficient algorithms/mechanisms that are robust in environments that involve interactions of selfish agents.
- To review the links and interconnections between algorithms and computational issues with selfish agents.

**Learning Outcomes**Have a systematic understanding of current problems and important concepts in the field of computational game theory.

Ability to quantify the inefficiency of equilibria.

The ability to formulate mechanism design models or network games for the purpose of modeling particular applications.

The ability to use, describe and explain appropriate algorithmic paradigms and techniques in context of a particular game-theoretic or mechanism design problem.

##### Optimisation (COMP331)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**75:25 **Aims**- To provide a foundation for modelling various continuous and discrete optimisation problems.
- To provide the tools and paradigms for the design and analysis of algorithms for continuous and discrete optimisation problems. Apply these tools to real-world problems.
- To review the links and interconnections between optimisation and computational complexity theory.
- To provide an in-depth, systematic and critical understanding of selected significant topics at the intersection of optimisation, algorithms and (to a lesser extent) complexity theory, together with the related research issues.

**Learning Outcomes**A conceptual understanding of current problems and techniques in the field of optimisation.

The ability to formulate optimisation models for the purpose of modelling particular applications.The ability to use appropriate algorithmic paradigms and techniques in context of a particular optimisation model. ##### Chaos and Dynamical Systems (MATH322)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**To develop expertise in dynamical systems in general and study particular systems in detail.

**Learning Outcomes**After completing the module students will be able to understand the possible behaviour of dynamical systems with particular attention to chaotic motion;

After completing the module students will be familiar with techniques for extracting fixed points and exploring the behaviour near such fixed points;

After completing the module students will understand how fractal sets arise and how to characterise them.

##### Further Methods of Applied Mathematics (MATH323)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**To give an insight into some specific methods for solving important types of ordinary differential equations.

To provide a basic understanding of the Calculus of Variations and to illustrate the techniques using simple examples in a variety of areas in mathematics and physics.

To build on the students'' existing knowledge of partial differential equations of first and second order.

**Learning Outcomes**After completing the module students should be able to:

- use the method of "Variation of Arbitrary Parameters" to find the solutions of some inhomogeneous ordinary differential equations.

- solve simple integral extremal problems including cases with constraints;

- classify a system of simultaneous 1st-order linear partial differential equations, and to find the Riemann invariants and general or specific solutions in appropriate cases;

- classify 2nd-order linear partial differential equations and, in appropriate cases, find general or specific solutions. [This might involve a practical understanding of a variety of mathematics tools; e.g. conformal mapping and Fourier transforms.]

##### Cartesian Tensors and Mathematical Models of Solids and VIscous Fluids (MATH324)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**To provide an introduction to the mathematical theory of viscous fluid flows and solid elastic materials. Cartesian tensors are first introduced. This is followed by modelling of the mechanics of continuous media. The module includes particular examples of the flow of a viscous fluid as well as a variety of problems of linear elasticity.

**Learning Outcomes**After completing the module, students should be able to understand and actively use the basic concepts of continuum mechanics such as stress, deformation and constitutive relations, and apply mathematical methods for analysis of problems involving the flow of viscous fluid or behaviour of solid elastic materials.

##### Quantum Mechanics (MATH325)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**The development of Quantum Mechanics, requiring as it did revolutionary changes in our understanding of the nature of reality, was arguably the greatest conceptual achievement of all time. The aim of the module is to lead the student to an understanding of the way that relatively simple mathemactics (in modern terms) led Bohr, Einstein, Heisenberg and others to a radical change and improvement in our understanding of the microscopic world.

**Learning Outcomes**After completing the module students should be able to solve Schrodinger''s equation for simple systems, and have some intuitive understanding of the significance of quantum mechanics for both elementary systems and the behaviour of matter.

##### Group Theory (MATH343)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**90:10 **Aims**To introduce the basic techniques of finite group theory with the objective of explaining the ideas needed to solve classification results.

**Learning Outcomes**Understanding of abstract algebraic systems (groups) by concrete, explicit realisations (permutations, matrices, Mobius transformations).

The ability to understand and explain classification results to users of group theory.

The understanding of connections of the subject with other areas of Mathematics.

To have a general understanding of the origins and history of the subject.

##### Combinatorics (MATH344)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**90:10 **Aims**To provide an introduction to the problems and methods of Combinatorics, particularly to those areas of the subject with the widest applications such as pairings problems, the inclusion-exclusion principle, recurrence relations, partitions and the elementary theory of symmetric functions.

**Learning Outcomes**After completing the module students should be able to:

- understand of the type of problem to which the methods of Combinatorics apply, and model these problems;

- solve counting and arrangement problems;

- solve general recurrence relations using the generating function method;

- appreciate the elementary theory of partitions and its application to the study of symmetric functions.

##### Analysis and Number Theory (MATH351)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**To provide an introduction to uniform distribution modulo one as a meeting ground for other branches of pure mathematics such as topology, analysis and number theory.

To give an idea of how these subjects work together in this context to shape modern analysis by focusing on one particular rich context.

**Learning Outcomes**After completing the module students should be able to:

understand completions and irrationality;

understand diophantine approximation and its relation to uniform distribution;

appreciate that analysis has a complex unity and to have a feel for basic computations in analysis.

calculate rational approximations to real and p adic numbers and to put this to use in number theoretic situations.

calculate approximations to functions from families of simpler functions e.g. continuous functions by polynomials and step functions by trigonometric sums.

work with basic tools from analysis, like Fourier series and continuous functions to prove distributional properties of sequences of numbers.

##### Applied Probability (MATH362)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**To give examples of empirical phenomena for which stochastic processes provide suitable mathematical models. To provide an introduction to the methods of probabilistic model building for ‘‘dynamic" events occuring over time. To familiarise students with an important area of probability modelling.

**Learning Outcomes**1. Knowledge and Understanding

After the module, students should have a basic understanding of:

(a) some basic models in discrete and continuous time Markov chains such as random walk and Poisson processes

(b) important subjects like transition matrix, equilibrium distribution, limiting behaviour etc. of Markov chain

(c) special properties of the simple finite state discrete time Markov chain and Poisson processes, and perform calculations using these.

2. Intellectual Abilities

After the module, students should be able to:

(a) formulate appropriate situations as probability models: random processes

(b) demonstrate knowledge of standard models

(c) demonstrate understanding of the theory underpinning simple dynamical systems

3. General Transferable Skills

(a) numeracy through manipulation and interpretation of datasets

(b) communication through presentation of written work and preparation of diagrams

(c) problem solving through tasks set in tutorials

(d) time management in the completion of practicals and the submission of assessed work

(e) choosing, applying and interpreting results of probability techniques for a range of different problems.

##### Linear Statistical Models (MATH363)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**· to understand how regression methods for continuous data extend to include multiple continuous and categorical predictors, and categorical response variables.

· to provide an understanding of how this class of models forms the basis for the analysis of experimental and also observational studies.

· to understand generalized linear models.

· to develop familiarity with the computer package SPSS.

**Learning Outcomes**After completing the module students should be able to:

understand the rationale and assumptions of linear regression and analysis of variance.

· understand the rationale and assumptions of generalized linear models.

· recognise the correct analysis for a given experiment.

· carry out and interpret linear regressions and analyses of variance, and derive appropriate theoretical results.

· carry out and interpret analyses involving generalised linear models and derive appropriate theoretical results.

· perform linear regression, analysis of variance and generalised linear model analysis using the SPSS computer package.

##### Networks in Theory and Practice (MATH367)

**Level**3 **Credit level**15 **Semester**First Semester **Exam:Coursework weighting**100:0 **Aims**To develop an appreciation of network models for real world problems.

To describe optimisation methods to solve them.

To study a range of classical problems and techniques related to network models.

**Learning Outcomes**After completing the module students should

. be able to model problems in terms of networks.

· be able to apply effectively a range of exact and heuristic optimisation techniques.

The programme detail and modules listed are illustrative only and subject to change.

#### Teaching and Learning

Teaching is by a mix of formal lectures, small group tutorials and supervised laboratory-based practical sessions. Students also undertake individual and group projects. Key problem solving skills and employability skills, like presentation and teamwork skills, are developed throughout the programme.