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: 2021/2

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:

The below information applies to students on taught programmes except those on Postgraduate Flexible programmes. Penalties for late submission, and the associated procedures, which apply to Postgraduate Flexible programmes are specified in the policy “Penalties for late submission for Postgraduate Flexible programmes”, which can be found here: http://www.reading.ac.uk/web/files/qualitysupport/penaltiesforlatesubmissionPGflexible.pdf
The Support Centres will apply the following penalties for work submitted late:

  • where the piece of work is submitted after the original deadline (or any formally agreed extension to the deadline): 10% of the total marks available for that piece of work will be deducted from the mark for each working day (or part thereof) following the deadline up to a total of five working days;
  • where the piece of work is submitted more than five working days after the original deadline (or any formally agreed extension to the deadline): a mark of zero will be recorded.
The University policy statement on penalties for late submission can be found at: http://www.reading.ac.uk/web/FILES/qualitysupport/penaltiesforlatesubmission.pdf
You are strongly advised to ensure that coursework is submitted by the relevant deadline. You should note that it is advisable to submit work in an unfinished state rather than to fail to submit any work.

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 2021


Things to do now