Computational Finance

Module aims

In this module you will have the opportunity to:

  • Be introduced to the fundamental models and mathematical theories to computer science and engineering students.

In particular, in this module you will have the opportunity to learn to:

  • Understand the time value of money.
  • Price derivatives using arbitrage pricing theory
  • Optimally design investment strategies that trade-off risk with rewards
  • Use efficient numerical methods to solve optimisation models and simulate stochastic processes

Learning outcomes

Upon successful completion of this module you will be able to:

  • explain how risk is related to reward in investment decisions
  • critically assess the risks in fixed income investments and show how the impacts of these risks can be limited using risk management strategies such as immunisation
  • decompose the risk of an investment decision into components that can potentially lead to higher rewards
  • explain the principles of arbitrage pricing theory
  • price complex financial products using arbitrage arguments
  • explain the main assumptions behind financial models, and test their validity in practice

Module syllabus

This module covers the following topics

  • compare and appraise the key theories that underlie current thinking in finance and investment
  • explain how these theories are applied in practical situations
  • explain the properties of the principle asset classes and securities
  • apply a range of analytical methods and computational tools used in finance
  • solve portfolio selection problems with off-the-shelf optimisation software
  • solve option pricing problems based on binomial lattices
  • undertake independent self-study (or research) using technical literature in computational finance in the future   


All students are assumed to be familiar with basic analysis and linear algebra, eg CO233 Computational Techniques (for computing students).

Recommended: CO343 Operations Research. Students who have not taken this course are assumed to be familiar with linear programming duality.

Teaching methods

During the first lecture of this module, the students learn that probability and statistics alone are not sufficient to help make optimal decisions in a financial market. Instead, we develop basic concepts such as time value of money, arbitrage pricing, and diversification using mathematical models that are consistent with idealised market conditions.
We then introduce a set of computational and analytical methods to solve the resulting models. From the analytical methods, we gain intuition regarding financial decisions. Examples include the benefits of diversification and how to reduce risk in fixed income securities. Building on this understanding, you will be exposed to numerical methods such as binomial pricing and Quadratic Programming that can be used to solve problems that cannot be solved using analytical techniques. These methods and techniques will be learned through lectures and practical exercises assessed as part of the coursework components.

The Piazza Q&A web service will be used as an open online discussion forum for the module.    


The course will feature one coursework. This will contain assessed exercises to test your understanding of the course material. The coursework will also have a practical component where you will be asked to implement and test a portfolio optimisation model. The coursework counts for 20% of the marks for the module. There will be a final written exam, which will test both theoretical and practical aspects of the subject. This exam counts for the remaining 80% of the marks. 

There will be detailed feedback on the coursework exercises which will include written feedback on your individual submission and in-class and/ or written feedback explaining common pitfalls and suggestions for improvement.   

Reading list



Module leaders

Dr Panos Parpas