Skip to main content Skip to navigation

IB9JH-15 Programming for Quantitative Finance

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

Introductory description

The main objectives of this module are to develop an understanding of the art of object-oriented programming in general, and actual programming skills in C++ in particular.

Module web page

Module aims

This module is driven by links into, and provides foundation for, the MSFM core structure: the latter (ST908, IB911, MA907, and the new “Financial Statistics” module) determines the set of skills required and provides examples for applications. In turn, this module IB9JH develops and supports the skills required for practical applications of theoretical concepts developed elsewhere in the core. Objectives:

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 MSFM 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

  • General concepts in programming
  • Design philosophy and basic features of C++
  • Standards and portability - existence and importance of
  • IDEs - introduction to, particularly Orwell Dev-C++
  • Build workflow
  • Build errors - recognising and diagnosing
  • Debugging - stepping, watching and breakpoints
  • Code layout conventions
  • Header files and header guards, projects and translation units
    Fundamentals
  • Data types
  • Variables
  • Operators
  • Scope
  • Namespaces
  • Functions
  • Control structures
  • Console input/output
  • Arrays and matrices
  • Pointers
  • Dynamic memory
  • Exceptions
    Object Oriented Programming
  • Principles of Object Oriented Programming
  • Classes and objects
  • Member functions
  • Const member functions
  • Overloading and constructors
  • RAII
  • Rule of three
  • Friendship
  • Operator overloading
  • Design patterns
  • Inheritance and polymorphism
  • Streams, strings and file I/O
  • Templates and generic programming
  • Standard Template Library Other
  • Static analysis tools

Learning outcomes

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

  • Understand and explain 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.

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

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.

Transferable skills

Conceptualise a computational problem to select and specify appropriate data structures and methods to design, implement, and test/validate solutions.

Study time

Type Required
Lectures 18 sessions of 1 hour (12%)
Project supervision 1 session of 1 hour (1%)
Practical classes 7 sessions of 3 hours (14%)
Private study 110 hours (73%)
Total 150 hours

Private study description

14 hours preparation for lab workshops; 18 hours preparation for / revision of lectures; 32 hours project work; 16 hours revision / preparation for tests; 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 A1
Weighting Study time Eligible for self-certification
Assessment component
Class test 1 20% No
Reassessment component is the same
Assessment component
Class test 2 20% No

C++ Project at end of term 2.

Reassessment component is the same
Assessment component
Individual Project Report 60% No

Individual coding assignment - 2,500 words + code

Reassessment component is the same
Feedback on assessment

Feedback via My.WBS

Courses

This module is Core for:

  • Year 1 of TIBS-N3G2 Postgraduate Taught Mathematical Finance