**Programme Outline**The study programme consists of four compulsory and four elective modules. The modules offered by the School of Mathematical Sciences will provide a solid understanding of the principles of mathematical finance. The modules offered within the Schools of Electronic Engineering and Computer Sciences will focus on key aspects of technological implementation.

*Full time Study*

You will study eight modules in total with an even split across semesters one and two. You will complete a 10,000 word dissertation/research project during semester three.

*Full time Study with Industrial Experience** *You will study eight modules in total with an even split across semesters one and two. You will complete a 10,000 word dissertation/research project during semester three. Expert staff will support the arrangement of your industrial placement, which will be carried out in the second year of your programme and assessed through the completion of the Industrial Placement Project.

*Part time Study*

Your programme is delivered across two academic years. You will study four modules in each year of the programme, registering upon two modules per semester to balance your workload.

Our modules are assessed by a mixture of in-term assessment and final examinations. Examinations are held between late April and early June. Dissertations are evaluated in September. Successful completion of the MSc programme will result in the award of the MSc Financial Computing (possibly with Merit or with Distinction).

**Structure **

**Semester 1** Compulsory

ECS793P Introduction to Object-Oriented Programming

MTH771P Foundations of Mathematical Modelling in Finance

MTH739N Topics in Scientific Computing**Semester 1****Elective [Choose 1]**ECS713P Functional Programming

ECS765P Big Data Processing

ECS708P Machine Learning

** Semester 2 Compulsory **MTH777P Financial Programming

** Semester 2 **Elective [Choose 3]

MTH773P Advanced Computing in Finance

ECS769P Advanced Object-Oriented Programming

ECS786P Parallel Computing

MTH774P Portfolio Theory and Risk Management

MTH772P Stochastic Calculus and Black Scholes Theory

**The Project**Each MSc Financial Computing student is required to complete a 60 credit project dissertation. A typical MSc project dissertation consists of about 30 word-processed pages (10,000 words), securely bound, covering a specific research-level topic in financial computing, usually requiring the student to understand, explain and elaborate on results from one or more journal articles and possibly to implement some industry quality code.

**Module Outlines**

**ECS793P Introduction to Object-Oriented Programming**The core of the module is concepts and techniques of object-oriented programming in general and the use of Java in particular. It will consider issues in class and interface design such as immutability, composition versus inheritance, minimising dependency and generalisation. The module will also examine a number of Design Patterns. Exceptions, type variables, iterators and other advanced aspects of the core Java language will be covered. Java's Collections Framework will be considered in detail as an example of a coherent set of Java classes designed to work together, and for its use of generic typing. The more general aim is to consider the requirements for creating understandable, maintainable, and robust classes that can be easily reused by others in a team. There will also be some coverage of software engineering principles: analysis and specification of user requirements, object-oriented design, testing and debugging, refactoring. "Agile" software engineering techniques will be compared with top-down design using specifications.

**MTH771P Foundations of Mathematical Modeling in Finance**

This module will provide you with an introduction to important concepts from probability theory and stochastic processes that are useful in modelling asset price dynamics. The introduction of more advanced tools will be preceded by a brief review of basic probability theory. Important stochastic processes that underlie many models in finance, such as random walks, Brownian motion, geometric Brownian motion, and the Poisson process, will be discussed. An informal overview on Ito stochastic calculus and its application in finance will be given.

**MTH739N Topics in Scientific Computing**This module covers the use of computers for solving applied mathematical problems in general, and problems in network science in particular. Its aim is to provide students with computational tools to solve problems they are likely to encounter in networks (search algorithms, generate network ensembles, ...) and in more generic applied mathematics problems (numerical solution of ordinary differential equations, random number generation) as well as to provide them with a sound understanding of a programming language used in applied sciences.

**ECS713P Functional Programming**Recent approaches to systems programming frequently involve functional programming either overtly in the sense that they use modern functional programming languages for rapid prototyping, or more covertly in that they use techniques developed in the functional setting as a way of lending greater structure and clarity to code. This module gives a structured introduction to programming in the modern industrial functional language Haskell, and to techniques such as map-reduce and monadic programming.

**ECS739P Big Data Processing**Big Data Processing covers the new large-scale programming models that allow to easily create algorithms that process massive amounts of information with a cluster of computer nodes. These platforms hide the complexity of coordinating complex parallel computations across the cooperating nodes, instead providing to developers a high-level programming model.

The module is based on the MapReduce programming model. Lectures explain how multiple data analysis algorithms can be expressed under this model, and executed automatically over clusters of machines. The module also covers the internal mechanisms that a MapReduce framework uses to coordinate and execute the job among the infrastructure. Finally, additional related topics in the area of Big Data, such as alternative large-scale processing platforms, NoSQL data stores, and Cloud Computing execution infrastructure are presented. In addition to the lectures, weekly lab sessions and coursework exercises present multiple applications where real world datasets are analysed using platforms such as Hadoop.

**ECS708P Machine Learning**This course covers methods for machine learning from signals and data, including statistical pattern recognition methods, neural networks, and clustering. The aim of the course is to give you an understanding of machine learning methods, including pattern recognition, clustering and neural networks, and to allow you to apply such methods in a range of areas. By the end of the course you will be able to: Recall a range of machine learning techniques and algorithms, including neural networks and statistical methods; Use concepts from probability theory in machine learning; Derive and analyse properties of machine learning methods; Discuss the relative merits of different machine learning techniques and approaches and apply machine learning methods to the analysis of signals and data.

**MTH777P Financial Programming**

This course covers the fundamentals of development of financial applications based on a three tiered architecture. It will combine the use of Excel as a front end, VBA as middleware, and C++ as a compute engine to illustrate current practices in the financial industry. The course will emphasize code development best practices and object oriented development.

**MTH773P Advanced Computing in Finance**

Your knowledge of C++ will be further enhanced and further topics of interest in mathematical finance will be numerically investigated. An important topic for this module is the use of Monte Carlo simulations for pricing various types of options. The Black-Scholes theory and its connection with PDEs will be revisited in a numerical context. At the end of this course you will also investigate models beyond the Black-Scholes theory, based on stochastic volatility, which relate to current research.

**ECS769P Advanced Object-Oriented Programming**The module will introduce concepts associated with advanced object-oriented programming concepts, such as inheritance and polymorphism, creating templates, advanced working with exception handling, stream input/output management, associative containers, algorithms, stacks, queues and binary trees, different search and sort methods, namespaces, advanced string class methods, and working with libraries, e.g. boost and STL. It also explores some of the contexts in which these techniques are useful.

**ECS786P Parallel Computing**The module will introduce concepts associated with high performance computing, such as parallel processing, hardware acceleration, GPU (Graphics Processing Unit) programming and FPGA (Field Programmable Gate Array) programming.

**MTH774P Portfolio Theory and Risk Management**

A very important general problem in finance is to balance investment risk and return. In this module you will acquire skills and techniques to apply modern risk measures and portfolio management tools. Mathematically this involves the maximization of the expectation of suitable utility functions which characterizes the optimum portfolio. You will learn about the theoretical background of optimization schemes and be able to implement them to solve practical investment problems.

**MTH772P Stochastic calculus and Black-Scholes Theory**This module enables you to acquire a deeper knowledge about the Ito stochastic calculus as applied to mathematical finance. You will learn about the role of the Ito integral in solving stochastic differential equations, and its role in developing the Black-Scholes theory for option pricing. You will also obtain a clear understanding of the simplifying assumptions in the Black-Scholes model. The course will develop pricing methodologies for both vanilla options (European call and put options) as well as exotic options such as barrier options.