Lecture 1. Introducing F# and Functional Programming
We quickly look at the main reasons for adopting F#. Why is it becoming popular in the finance industry and what are some successful case studies? Then we introduce the fundamental F# language features such as immutability, tuples and pattern matching.
Lecture 2. Working with Collections and Data Structures
This lecture introduces the most important functional pattern - processing of immutable data structures using higher-order functions. We finish the processing of historical stock prices from Yahoo! Finance, calculating statistics and visualizes the result with simple charts.
Lecture 3. Implementing Mathematical Calculations
F# makes it easy to turn mathematical equations to code. In this lecture we look at examples such as Monte-Carlo simulations, Black-Scholes equation and calculating historical volatility. You'll learn how to avoid mistakes with units of measure, how to write efficient numerical code and how to use the rich Math.NET library.
Lecture 4. Explorative Data and Time-Series Analysis
In this lecture we look at F# type providers and Deedle. Type providers make it easy to access data from sources including CSV and XML files, Excel, SQL databases and Web and REST services. Using Deedle we can then align multiple time-series and perform interactive analysis - such as comparing different industry sectors or calculating daily returns.
Lecture 5. Domain Specific Languages for Finance
Domain specific languages (DSLs) are an effective way of solving recurring problems. In this lecture, we build a DSL for pricing financial options and for detecting patterns in changing prices. You'll learn how to model problem domain using functional data structures and how to build an easy to use library on top of the model.
Lecture 6. F# in the Larger Context
We wrap up by looking at the ways for integrating F# in the broader context. This lecture explores how to call advanced statistical libraries using the R provider, how to use object-oriented programming to integrate with .NET and how to use F# tools and libraries for unit testing, building and documenting code.