This is a course in computational finance in which students learn the tools for delivering financial services and the algorithms used to price complex financial instruments (derivatives). It also abstracts the design of financial services, focusing on interface design, which reduces to language design. Only moderate coding proficiency is required (Python 3) but there are weekly coding exercises. The design exercise is to propose an interactive, distributed trading game and to specify the interfaces. Topics include:

  • Price discovery via an interactive, distributed trading game
  • Distributed version control
  • Distributed computing
  • Distributed data storage and retrieval via a private blockchain
  • Interfaces described as domain-specific “little languages”
  • System design viewed as interface design, and hence as language design
  • Introductory topics in Computational Finance:
    • Computation of derivatives via finite difference
    • Numerical solution of ODEs
    • Numerical solution of PDEs
    • Monte Carlo simulation for option pricing
    • Monte Carlo variance reduction techniques
    • Pricing of American options

Learning Objectives

On successful completion of this course, students should be able to:

  • Recognize and apply the tools of financial systems design in distributed environments;
  • Create a systems level design by designing the system interfaces, viewing each interface as a “little language”; and
  • Recognize and implement algorithms for pricing financial instruments (derivatives)

Measurable Outcomes

On successful completion of this course, students will possess the following measurable skills:

  • Create a code repository for version control;
  • Create a console-based client;
  • Create a multi-threaded server;
  • Create a graphical user interface for the client;
  • Store a history of transactions in a blockchain;
  • Design the interfaces for a distributed system;
  • Compute the price of a derivative via forward, backward, and central differences;
  • Solve an ODE using numerical techniques;
  • Solve a PDE using numerical techniques;
  • Price an option using Monte Carlo simulation and apply variance reduction techniques;
  • Price an American option.

12 Credits