Accessibility statement

C++ Programming with Applications in Finance - MAT00021M

« Back to module search

  • Department: Mathematics
  • Credit value: 10 credits
  • Credit level: M
  • Academic year of delivery: 2022-23

Module will run

Occurrence Teaching period
A Autumn Term 2022-23 to Spring Term 2022-23

Module aims

C++ is the programming language of choice in industry for quantitative finance because of its object-oriented nature and its efficiency. This module aims to provide an introduction to some features of C++ used in the implementation of financial models and to demonstrate their actual use in the implementation of such models. Since models in finance sometimes use techniques from numerical analysis, relevant numerical analysis will also be taught. This module is intended to serve as a fundamental building block in the training of a budding quantitative analyst.

Module learning outcomes

By the end of the module, students should have attained the following objectives:

  • Be comfortable with the C parts of C++ such as branching statements, loops, functions, pointers, call by value and call by reference, arrays, etc.
  • Been introduced to the concepts of object-oriented programming such as classes, objects, inheritance, function overloading, polymorphism, etc., and their realisation in C++ through appropriate C++ constructs such as virtual functions.
  • Have some experience with designing and using templates.
  • Been introduced to some of the data structures in the standard template library relevant to quantitative finance.
  • Been introduced to implementing two or more numerical techniques in quantitative finance such as, for example,

binomial trees in C++ and pricing of various types of options in this context;

pricing various types of options in the Black-Scholes model;

computing implied volatility using the Newton-Raphson and bisection methods;

implementing Monte Carlo routines for pricing various types of options.

Module content

Syllabus:

  • Introduction to C++: compiling and linking of programs.
  • Data types.
  • Loops and branching statements.
  • Functions.
  • Classes and objects.
  • Inheritance.
  • Dynamic memory allocation.
  • Templates.
  • Implementation of models and numerical techniques in finance (two or more models/techniques such as, but not limited to: binomial trees, Black-Scholes pricing and Greek parameters, implied volatility, Monte Carlo simulation).

Indicative assessment

Task % of module mark
Coursework - extensions not feasible/practicable 10
Coursework - extensions not feasible/practicable 10
Essay/coursework 30
Essay/coursework 50

Special assessment rules

None

Additional assessment information

In the event that a student fails the module, only the failed components of the module will be reassessed.

Indicative reassessment

Task % of module mark
Coursework - extensions not feasible/practicable 10
Coursework - extensions not feasible/practicable 10
Essay/coursework 30
Essay/coursework 50

Module feedback

Current Department policy on feedback is available in the undergraduate student handbook. Coursework and examinations will be marked and returned in accordance with this policy.

Indicative reading

M.J. Capinski and T. Zastawniak, Numerical Techniques in Finance with C++, Mastering Methematical Finance Series, Cambridge University Press, 2012.

C. Horstmann, C++ for Everyone, John Wiley & Sons, 2009.

E. Schlogl, Quantitative Finance - An object-oriented approach in C++, Chapman & Hall/CRC Financial Mathematics Series, 2013.

C. Horstmann & T. Budd, Big C++, 2nd ed., John Wiley & Sons, 2009.

M.S. Joshi, C++ Design Patterns and Derivatives Pricing, Cambridge University Press, 2004.

D. Duffy, Introduction to C++ for Financial Engineers, Wiley, 2006.

B. Eckel, Thinking in C++, Second Edition, Prentice Hall, 2000.

A. Koenig & B.E. Moo, Accelerated C++ : Practical Programming by Example, Addison-Wesley, 2000.

S.B. Lippman, J. Lajoie & B.E. Moo, C++ Primer, Fourth Edition, Addison Wesley, 2005.

Y. Lyuu, Financial Engineering and Computation: Principles, Mathematics and Algorithms, Cambridge University Press, 2001.

S. Prata, C++ Primer Plus, Fifth Edition, Sams Publishing, 2004.

D. Yang, C++ Object-Oriented Numeric Computing for Scientists and Engineers, Springer, 2001.



The information on this page is indicative of the module that is currently on offer. The University constantly explores ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary. In some instances it may be appropriate for the University to notify and consult with affected students about module changes in accordance with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.