Lecture 1. Introduction to Mathematica and Basic Programming in Mathematica

  • MMA Syntax
  • MMA Programming paradigms
  • Modules, Functions
  • Example:Trees

Lecture 2. Data Import and Export, Visualization

  • Importing data
  • Statistics in MMA
  • Visualization in MMA
  • Exporting data
  • Example: Bootstrapping

Lecture 3. Writing your own packages

  • IDE for Developing -> Wolfram Workbench
  • Developing your own packages
  • Coding/Encoding packages
  • Installing packages
  • Example: Bonds

Lecture 4. Speeding up your MMA Code

  • Compiled Functions and their limits
  • Generating CCode
  • Apply these techniques to the previous examples

Lecture 5. Dynamic Interactivity and MMA

  • The Manipulate Command
  • The Dynamic Command
  • Advanced Manipulate (Speeding up, Combining Manipulate with Dynamic)
  • Example: Default Probabilities

Lecture 6. Linking Technologies and MMA

  • LibraryLink -> C++
  • JLink -> Java
  • RLINK -> R
  • Database LINK -> Databases
  • Example: Link code to MMA

Lecture 7. Building Up a MC Simulation with MMA

  • Random Number Generators
  • Setting up Paths            
  • Valuation            
  • Variance Reduction Techniques
  • Quasi Monte Carlo with MMA

Lecture 8. PDE based solutions in Mathematica

  • Finite Differences and Upwinding
  • Solving Systems of Linear equations
  • Example: Solution of  a 1D Finance PDE in MMA (HW1F)

Lecture 9. UnRisk - Q 

Introduction to UnRisk-Q

Models, Methods  (Interest Rates)

  • HW1F
  • HW2F
  • Black Karasinski
  • LMM

Models, Methods  (Equities)

  • Black-Scholes
  • Dupire
  • Heston
  • Jump Models

Instruments

  • Bonds
  • Swaps
  • Range Accruals
  • Snowballs 
  • ExoticOptions
  • Hybrids

Lecture 10. VaR Calculations with UnRisk-Q

  • Parametric, Historical and MC VaR
  • Marginal VaR
  • Contribution VaR

Final Practical Project.

The final project will be marked with feedback and a pass or fail will given. One retake is allowed if you fail.