Course Feature: Online Only

Kotlin Bootcamp for Programmers

Learn the essentials of the Kotlin programming language from Kotlin experts at Google. Kotlin is a modern and concise JVM language that supports functional programming paradigms. Whether you’re a Java developer or a programmer in another object-oriented language, this course will teach you the essential language features that has made Kotlin so popular with developers. By the end of this course, you’ll gain the skills you need to build your next project in Kotlin.

Executive Programme in Algorithmic Trading (EPAT®)

Learn Algorithmic Trading

Build your Career in Algorithmic Trading

Audience participation is as important to the learning experience as the instructor. I find the participants at QuantInsti’s courses highly motivated and many came prepared with insightful questions. This made for a great experience for all.

Dr. Ernest P. Chan



VBA for Financial Modeling

How many times have you…

  • Had to clean up your financial model to share with clients?
  • Had to reconfigure Excel display settings because they got messed up?
  • Lost sleep because you didn’t keep your financial model’s log up to date?
  • Had to repeatedly go through the financial model to manually remove sensitive information?
  • Wasted time keeping track of all the defined names in your model?
  • Had to lose time manually saving files for every case and scenario you calculate?

Learn how to build your own Excel automation routines to take over the repetitive grunt work you always knew was a job for a machine.

This course teaches you VBA to help automate Excel by guiding you through 7 automation tools built for financial modeling.

Stairway to Scala Applied Part 3

Scala Applied, part 3 is the final part of this Scala programming language course. The course in its entirety is aimed at giving you a full, day-to-day working knowledge of Scala programming, including some of the most common core library APIs.

This part starts with a final language feature for Scala (continuing from the other language features covered in parts 1 and 2). Pattern matching, partial functions and case classes are examined, how they can be used together, and how partial functions can help you avoid certain runtime errors by validating input to a function before you call it.

Then we delve into the collections API in the core libraries (a very in-depth 2 module examination of the capabilities and performance tradeoffs of the various collection options), and finish up with a look at using Scala on Java projects, using Java libraries from Scala and how to harness build tools (particularly SBT) to build your project and even write custom settings and tasks. Following that we look at the Futures API in the core libraries.

This course is also a good lead-in to the Stairway to Scala Advanced 3 part course which concentrates on in-depth language features, higher level functional abstractions, common patterns and idioms, type theory and other more advanced Scala concepts that will be particularly helpful for anyone writing their own libraries and APIs in Scala.


Stairway to Scala Applied Part 2

Scala Applied, Part 2 covers Scala features that are different from other languages or maybe unique to Scala. It is intended to follow on from Part 1, and dovetails nicely into that flow. In particular, by following this course you will:

  • Understand Scala’s composition and inheritance features
  • Create abstract classes and pure abstract members (methods and fields)
  • Override and overload methods
  • Create primary and auxiliary constructors
  • Call superclass constructors and methods
  • Understand and use parametric fields
  • Create factory methods in companion objects
  • Construct simple DSLs (Domain Specific Languages)
  • Understand top and bottom types and how Scala uses them
  • Write correct equals and hashCode methods
  • Use traits to mix behavior into classes
  • Know the different styles of packages and visibility modifiers
  • Be able to import anything from anywhere
  • Write pre-conditions and post-conditions
  • Test your code with unit testing

Who this course is for:

  • Anyone wanting to learn the Scala programming language
  • This is part 2 of a 3 part course, please check you have skills equivalent to part 1 before taking this course
  • We do assume the student has some programming knowledge in a modern programming language


  • Students should follow and complete the Stairway to Scala Setup instructions, available for free on Udemy, before starting this course
  • Students should have also completed Stairway to Scala Applied Part 1 or have equivalent skills before starting this course
  • Students will need a laptop or desktop computer with sufficient performance and resources to compile and run the coding exercises

Stairway to Scala Applied Part 1

The course is half theory, half practice with hands on coding exercises built around test driven development examples. If you complete all three parts, with all the exercises, you will find that in addition to a strong grounding in the language theory, you will have the practical skills and comfort to code in Scala, as well as having the tools necessary to do so.

Unlike many other courses that teach a specific aspect of the Scala language, for example reactive programming or functional concepts, Stairway to Scala Applied provides a balanced and thorough introduction to the whole language and its concepts, including libraries like Actors and Collections. It is intended to accelerate your Scala learning curve and make you able to use Scala productively by the end of the course.

The course is taught by two highly experienced Scala developers who use Scala on a daily basis for real world commercial projects, and have done so for several years each.

Most of the lectures are practical demonstrations accompanied by a slide. You can download the slide deck and follow along on your computer, but the lectures are also presented using Udemy mashups, so the slide and practical demo can be switched between at will. If you hear typing, it’s best to bring up the practical demo screencast instead of the slide in order to follow along.

Who this course is for:

  • Anyone interested in programming using the Scala programming language
  • Students should have some programming experience in another language, but no prior Scala language knowledge is assumed.
  • Developers wanting to get to a good working knowledge of Scala as quickly as possible

The Rust Programming Language – Introduction

This course will teach you the fundamentals of Rust, a modern programming language that has the both the power of native code as well as the safety of some managed languages. In this course you will learn the following:

  • How to download and install Rust; how to compile programs and (optionally) work with an IDE.
  • Learn about fundamental data types and how to use them to declare variables.
  • Undersand arrays, vectors and strings, the concept of slices.
  • Learn to create functions, methods, closures, higher-order functions.
  • Understand how to create various data structures such as structs and enums; also traits.
  • Master Rust’s explicit take on the concept of lifetime with ownership, borrowing, lifetime specifiers, lifetime elision.
  • Learn how to safely share data around your (possibly multithreaded) application with Rc, Arc and Mutex.
  • Use Rust’s package managent using Cargo.
  • Learn about other useful topics: documentation, conditional compilation, testing.

This course, like all my other courses, will be supplemented with additional lectures based on participants’ requests.

Fundamentals of Parallelism on Intel Architecture

This course will introduce you to the multiple forms of parallelism found in modern Intel architecture processors and teach you the programming frameworks for handling this parallelism in applications. You will get access to a cluster of modern manycore processors (Intel Xeon Phi architecture) for experiments with graded programming exercises.

This course can apply to various HPC and datacenter workloads and framework including artificial intelligence (AI). You will learn how to handle data parallelism with vector instructions, task parallelism in shared memory with threads, parallelism in distributed memory with message passing, and memory architecture parallelism with optimized data containers. This knowledge will help you to accelerate computational applications by orders of magnitude, all the while keeping your code portable and future-proof. Prerequisite: programming in C/C++ or Fortran in the Linux environment and Linux shell proficiency (navigation, file copying, editing files in text-based editors, compilation).

Advanced Finite Difference Method (FDM) for Computational Finance

The goal of this distance learning course is to approximate the solution of partial differential equations (PDEs) by the Finite Difference Method (FDM) with applications to derivative pricing in computational finance. This course is an in-depth introduction from PDE model specification through efficient and accurate finite difference schemes for a range of one-factor and two-factor option pricing problems. The focus is on understanding the financial, mathematical and numerical skills needed in order to set up the discrete system of equations that we can then implement in C++11, for example.

This course is suitable for front-office and middle-office quant developers who wish to learn the finite difference method for computational finance. The contents of the course is also relevant to other disciplines such as science and engineering.

Who should attend?

This course has been developed so that you can use the theory to solve existing problems as well as applying the knowledge to the pricing of new financial instruments. In particular, the course is for professionals with a strong mathematical background:

  • Financial engineers who design new pricing models
  • Analysts and quants
  • Other professionals who wish to understand and apply advanced numerical methods to derivatives pricing

C# for Numerical Analysis in Applied Finance

This course will teach the student the full gamut of C#. It is a basic introduction to C# and programming and progresses through advanced techniques as well. The student will have a plethora of examples, although, the focus will be to go through financial modeling (specifically, numerical analysis) and learn how to code such examples efficiently in C#.

What you’ll learn.

  • Students will learn C# and Financial Modeling
  • An in-depth approach to various models
  • Generics, LINQ, SQL and more
  • Options: Binomial Tree, BSM, and Monte Carlo
  • Portfolio Optimization
  • Design Patterns