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.

• 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

David R. Cheriton School of Computer Science
University of Waterloo