Accessibility statement

C++ Programming with Applications in Finance - MAT00021M

« Back to module search

  • Department: Mathematics
  • Module co-ordinator: Dr. Eric Dykeman
  • Credit value: 10 credits
  • Credit level: M
  • Academic year of delivery: 2021-22
    • See module specification for other years: 2022-23

Module will run

Occurrence Teaching period
A Autumn Term 2021-22 to Spring Term 2021-22
B Spring Term 2021-22 to Summer Term 2021-22

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).

Assessment

Task Length % of module mark
Coursework - extensions not feasible/practicable
Class Test 1
N/A 10
Coursework - extensions not feasible/practicable
Class Test 2
N/A 10
Essay/coursework
C++ Project 1
N/A 30
Essay/coursework
C++ Project 2
N/A 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.

Reassessment

Task Length % of module mark
Coursework - extensions not feasible/practicable
Class Test 1
N/A 10
Coursework - extensions not feasible/practicable
Class Test 2
N/A 10
Essay/coursework
C++ Project 1
N/A 30
Essay/coursework
C++ Project 2
N/A 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 is constantly exploring 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 by the University. Where appropriate, the University will notify and consult with affected students in advance about any changes that are required in line with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.