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
- 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
MATLAB programming objectives:
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