Skip to main content Skip to navigation

IB9JH-15 Programming for Quantitative Finance

Department
Warwick Business School
Level
Taught Postgraduate Level
Module leader
Aurash Karimi
Credit value
15
Module duration
19 weeks
Assessment
100% coursework
Study location
University of Warwick main campus, Coventry

Introductory description

This module is driven by links into, and provides foundation for, the MSMF core structure: the latter determines the set of skills required and provides examples for applications. In turn, this module develops and supports the skills required for practical applications of theoretical concepts developed elsewhere in the core.

Module web page

Module aims

To develop an understanding of the concepts and “way of thinking” of (object-oriented) programming in general, and practical programming ability in a selection of languages in particular.
To provide a framework in which theoretical concepts and methodology developed in the MSMF core can be tested and applied to “real world” problems, thus reinforcing both the theoretical concepts as well as practical programming skills.
To develop a set of transferrable skills required/desired by employers in the Quantitative Finance industry, enhancing students’ competitive “edge” in the job market and widening their choice of attainable career destinations.

Outline syllabus

This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.

At the time of writing, we plan to focus on the C++ programming language. Students will gain in-depth training and practice in R and Python in other core modules of the course.

General Principles

Principles of programming, algorithms
Common and distinguishing features of different languages
Guide to “Good Practice” in programming
Using an Integrated Development Environment (IDE)
Different workflow models for application development
Testing and “debugging”

Fundamentals of Programming

Data types and data structures
Constants and variables, namespaces and scope
Program flow control
Functions
Input/output
Exception handling

Object Oriented Programming

Principles: classes, objects, instances
Member functions
Inheritance and polymorphism
Templates and generic programming
Design principles

Applications in Quantitative Finance

Learning outcomes

By the end of the module, students should be able to:

  • Demonstrate a comprehensive understanding and explanation of the common and distinct features, including syntax, of a variety of programming languages
  • Define and explain, both intuitively and formally, the concepts of “object oriented programming” and application design
  • Critically evaluate the design choices and testing for coded programming solutions for a particular problem, both for self-written code and code written by others

Indicative reading list

Lippman, Stanley B., J. Lajoie and B.E. Moo: “C++ Primer” (5th - ed.) Addison Wesley, 2015 ISBN-13: 978-0-321-71411-4
Joshi, Mark S.: “C++ Design Patterns and Derivatives Pricing” Cambridge University Press, 2015 ISBN-13: 978-0-521-72162-2

Interdisciplinary

This module is part of a course taught in conjuction with the Maths and Stats departments

Subject specific skills

Design, build, and test applications from scratch to accomplish tasks and/or solve real world problems in Quantitative Finance
Identify, acquire and use public code libraries to incorporate in their own applications to achieve tasks as outlined in preceding item
Conceptualise a computational problem to select and specify appropriate data structures and methods to design, implement, and test/validate solutions

Transferable skills

Written communication

Problem solving

Numeracy

Study time

Type Required
Lectures 13 sessions of 1 hour (14%)
Project supervision 1 session of 1 hour (1%)
Practical classes 13 sessions of 2 hours (27%)
Private study 56 hours (58%)
Total 96 hours

Private study description

13 hours preparation for lab workshops; 13 hours preparation for / revision of lectures; 30 hours self-study (reading, practice, …);

Costs

No further costs have been identified for this module.

You do not need to pass all assessment components to pass the module.

Assessment group A2
Weighting Study time Eligible for self-certification
Assessment component
Individual Programming Assignment 40% 22 hours Yes (extension)
Reassessment component is the same
Assessment component
Individual Report 20% 10 hours Yes (extension)

2000 word individual report

Reassessment component is the same
Assessment component
Group Programming Report 40% 22 hours No
Reassessment component is the same
Feedback on assessment

Cohort-level feedback (incl. detailed solution notes) will be given after the individual programming assignment. Formative and summative individual written feedback will be given following the individual group project report.

There is currently no information about the courses for which this module is core or optional.