ICM177-Programming for Financial Engineering

Module Provider: ICMA Centre
Number of credits: 10 [5 ECTS credits]
Terms in which taught: Spring term module
Non-modular pre-requisites:
Co-requisites: ICM127 Stochastic Calculus and Probability
Modules excluded:
Current from: 2020/1

Module Convenor: Dr Naoufel El Bachir

Email: n.elbachir2@icmacentre.ac.uk

Type of module:

Summary module description:

This is a highly practical module. The students will be taught about building efficient programs within the scope of derivatives pricing; assessment will be based on building working code. The programming languages used in the course may vary depending on industry directions. The current focus will be on a combination of C++ and Python.


The objective is to introduce the students to programming concepts and their usage for financial models implementation. By the end of the module, students should be able to produce a working and efficient code. Special emphasis is placed on coding style and some essential software engineering principles are introduced.

Assessable learning outcomes:

By the end of the module, it is expected that students will be able to:

  • Design and construct simple pricing applications

  • Use classes and objects for pricing derivative securities

Additional outcomes:

Outline content:

To achieve good productivity, the following topics are covered: development, building, debugging, testing, and optimising code. Other tools used are source control with Git. Some widely used open-source libraries are introduced and used throughout the course.

(1) Fundamentals; Pointers, Function Overloading and Operator Overloading

(2) Classes and Objects

(3) Inheritance

(4) Applications in Financial Engineering

Brief description of teaching and learning methods:

The topics are introduced in the lectures which are then followed by assignments and practical workshops.

Contact hours:
  Autumn Spring Summer
Lectures 11
Practicals classes and workshops 11
Guided independent study:      
    Wider reading (independent) 10
    Advance preparation for classes 5
    Other 15
    Carry-out research project 48
Total hours by term 0 100 0
Total hours for module 100

Summative Assessment Methods:
Method Percentage
Written assignment including essay 30
Project output other than dissertation 70

Summative assessment- Examinations:

Summative assessment- Coursework and in-class tests:

1 group project, to be submitted in week 3 of Summer term

6 individual assignments

Formative assessment methods:

Penalties for late submission:
Penalties for late submission on this module are in accordance with the University policy. Please refer to page 5 of the Postgraduate Guide to Assessment for further information: http://www.reading.ac.uk/internal/exams/student/exa-guidePG.aspx

Assessment requirements for a pass:

50% weighted average mark

Reassessment arrangements:

As part of the overall examination arrangements for the MSc programme, individual project to be submitted in August/September (counts for 100% of the final mark).

Additional Costs (specified where applicable):

Required text books:

  1. Mark Joshi: C++ Design Patterns and Derivatives Pricing (Mathematics, Finance and Risk) Cambridge University Press, 2008, ISBN-10: 0521721628, £54.99.

  2. Yves Hilpisch: Python for Finance: Mastering Data-Driven Finance, 2nd edition, O’reilly, expected December 2018, ISBN-10: 1492024333

  3. Yves Hilpisch: Derivatives Analytics with Python, Wiley 2015, ISBN-10: 9781119037996

Last updated: 8 April 2020


Things to do now