Online Course Running Time: 10 Hours
About the course:
Functional-first programming in F# is an effective tool for solving complex problems that often arise in financial computing. The strong typing of F# provides important correctness guarantees and means that numeric code written in F# runs efficiently. Furthermore, a number of case-studies show that F# significantly reduces time-to-market, especially in the financial domain.
This course is a practical introduction to the F# language, functional programming and their use in the financial domain. You’ll learn about F#, fundamental functional concepts as well as libraries for numeric computing, data analysis. You’ll also become familiar with best practices for using F# tools and integrating F# with larger systems.
The course is practically focused. Throughout the course, we look at examples of time-series analysis, modelling and pricing of stock options and more. Each lecture provides a number of fun exercises that guide you through the problem. Furthermore, F# and functional programming makes you a better programmer even if you do not end up using the language immediately after the course.
Outcomes:
- How to approach problems from the functional perspective and capture your ideas using idiomatic F#.
- Model a problem domain, such as stock options, using functional types and develop domain specific languages (DSLs) for processing such domains.
- Use type providers to access data, perform interactive data and time-series analysis on financial data using the Deedle library and create charts to visualize the results.
- How to use F# within a larger context, including interoperability with R and best practices for the encapsulation of F# components for .NET.
Lecture 1. Introducing F# and Functional Programming (Running Time: 1:45:40)
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.
Multiple Choice Quiz: Introducing F# and Functional Programming
Lecture 2. Working with Collections and Data Structures (Running Time: 1:47:28)
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.
Multiple Choice Quiz: Working with Lists and Data Structures
Lecture 3. Implementing Mathematical Calculations (Running Time: 1:53:52)
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.
Multiple Choice Quiz: Implementing Math Calculations using F#
Lecture 4. Explorative Data and Time-Series Analysis (Running Time: 1:42:43)
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.
Multiple Choice Quiz: Explorative Data and Time-Series Analysis
Lecture 5. Domain Specific Languages for Finance (Running Time: 1:35:05)
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.
Multiple Choice Quiz: Domain Specific Languages for Finance
Lecture 6. F# in the Larger Context (Running Time: 1:30:57)
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.
Multiple Choice Quiz: F# in the Larger Context: Integrating & Testing
About the Presenter:
Tomas Petricek is a long-term F# enthusiast, frequent conference speaker and an author of “Real-World Functional Programming”. He is a founder of DualNotion ltd. where he provides training and consulting services.
Tomas contributed to the development of F# as a contractor at Microsoft Research, authored Try F# tutorials on financial computing and recently spent 3 months in New York, working on financial data analytics tools for F# at BlueMountain Capital.
You will be able to receive up to 40 CPD points (10 hours of structured CPD and 30 hours of self-directed CPD)taking this course.
The CPD Certification Service was established in 1996 as the independent CPD accreditation institution operating across industry sectors to complement the CPD policies of professional and academic bodies. The CPD Certification Service provides recognised independent CPD accreditation compatible with global CPD principles.