**"Really enjoyed the course, now I need to apply what I learned before I start forgetting things! Tomas was great, really hope he decides to put together a follow up class."**

**Gene Chiaramonte**

**Self-Paced Course****Location: Globally online****This course can be included as part of the Annual Subscription Service.****This course can be taken In House**

**Quick Summary:**

**Lecture 1. Introducing F# and Functional Programming (Running Time: 1:45:40)Multiple Choice Quiz: Introducing F# and Functional Programming **

**Lecture 1 Discussion Forum**

**Lecture 2. Working with Collections and Data Structures (Running Time: 1:47:28)Multiple Choice Quiz: Working with Lists and Data Structures **

**Lecture 2 Discussion Forum**

**Lecture 3. Implementing Mathematical Calculations (Running Time: 1:53:52)****Multiple Choice Quiz: Implementing Math Calculations using F#****Lecture 3 Discussion Forum**

**Lecture 4. Explorative Data and Time-Series Analysis (Running Time: 1:42:43)Multiple Choice Quiz: Explorative Data and Time-Series AnalysisLecture 4 Discussion Forum**

**Lecture 5. Domain Specific Languages for Finance (Running Time: 1:35:05)Multiple Choice Quiz: Domain Specific Languages for FinanceLecture 5 Discussion Forum**

**Lecture 6. F# in the Larger Context (Running Time: 1:30:57)Multiple Choice Quiz: F# in the Larger Context: Integrating & TestingLecture 6 Discussion Forum**

**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. **

##### Introduction:

Self-Paced online course: F# and Functional Programming in Finance with Tomas Petricek

The complete series of video lectures is available for you to view and study and will appear in your members area. You can also contact Tomas at any time with the F# forum.

##### Course Outline:

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:

The course requires no prior functional programming knowledge and is designed for both software developers and quants or actuaries. You will learn:

- 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.

##### Multi Choice Sample Questions:

Look at the following statements and check the ones that are true:

##### Quants Hub Programming School Self-Paced Format:

**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**

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 5. ****Domain Specific Languages for Finance**

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 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.

**Final Practical Project.**

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

##### 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.

**PRMIA Certification:**

The Professional Risk Managers' International Association (PRMIA) is a non-profit professional association, governed by a Board of Directors directly elected by its global membership, of nearly 90,000 members worldwide. PRMIA is represented globally by over 65 chapters in major cities around the world, led by Regional Directors appointed by PRMIA's Board

**The Programming School will be fully certified by PRMIA**

CPD Certification

You will be able to receive up to **27 CPD points** **(9 hours of structured CPD and 18 hours of self-directed CPD)** for completing 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.