Revised Oct 15, 2015

CS 335: Computational Methods in Business and Finance


General description

This course introduces the use of computational methods in business and finance. Students learn to apply basic algorthims and to recognize common pitfalls.

Logistics

Audience

  • Upper-year students interested in the application of numerical computation to business and finance

Normally available

  • Fall and Winter

Related courses

  • Pre-requisites: (One of CS 116, 136, 138, 146); MATH 136 or 146, MATH 237 or 247, STAT 231 or 241; not open to Computer Science students
  • Anti-requisites: AMATH 242/ CM 271/ CS 371, CS 370, MTE 204

For official details, see the UW calendar.

Software/hardware used

  • MATLAB

Typical reference(s)

  • Paolo Brandimarte, Numerical Methods in Finance, A MATLAB-Based Introduction 2nd edition, Wiley, 2006

Required preparation

At the start of the course, students should be able to

  • Program in a high-level procedural programming language (e.g., CS116 or equivalent) and use control structions, such as loops and conditional statements, basic datatypes, and simple data structures, such as arrays
  • Perform basic computations involving calculus derivatives (including finding maxima and minima of multivariate functions), matrices, discrete and continuous random variables, and basic statistical models

Learning objectives

At the end of the course, students should be able to

  • Explain the principles of floating-point number systems, including the concepts of chopping, rounding and machine precision; use these principles to analyze error of floating-point arithmetic
  • Use the principles of polynomial interpolation to derive and apply splines with various boundary conditions
  • Analyze stability and conditioning of numerical problems

    MATLAB programming objectives:

  • Use the built-in functions and graphing capabilities for 1D and 2D data and implement efficient code using vectorization
  • Solve problems in portfolio optimization using mean-variance criteria, including the construction of efficient frontiers and computation of value-at-risk
  • Implement lattice methods for computing contingent-claims valuation
  • Solve nonlinear equations using iterative methods
  • Implement Monte Carlo methods, generation of normally distributed random numbers

Typical syllabus

Introduction to floating-point computation (3 hours)

  • Inexact computation, machine epsilon, stability

Introduction to MATLAB (3 hours)

  • Basic data types in MATLAB, use of built-in functions, graphical presentation of data, vectorization of code

Interpolation (3 hours)

  • Linear, Lagrange, splines

Portfolio optimization (8 hours)

  • Mean variance criteria, the efficient frontier, optimization methods, use of quadratic programming software, stability of results with uncertain data
  • Value at risk

Contingent-claims valuation (8 hours)

  • Lattice methods, implied volatility, the risk-neutral world

Solution of nonlinear equations (3 hours)

  • Bisection, fixed-point iteration, Newton iteration

Monte Carlo methods (8 hours)

  • Stochastic differential equations, timestepping methods, generation of normally distributed random numbers, variance reduction
  • Applications to contingent claims, simulation of hedging strategies