Lecture 1. Python and Tools

The first lecture shows how to efficiently set-up a Python and develeopment environment for Quant Finance. It also introduces into IPython, and in particular into the Notebook version which allows interactive, browser-based financial analytics with Python

Lecture 2. Introductory Financial Use Cases

This lecture immediately dives into three canonical use cases: calculating and plotting implied volatilities, implementing performant Monte Carlo simulations, backtesting a trend based trading strategy. These use cases illustrate the benefits of the major Python libraries (NumPy, pandas), explained in detail in later lectures.

Lecture 3a. Data Types & Structures 

Lecture 3b. Data Visualization

This lecture is all about data modeling and storage with Python and the visualization of data. It introduces the basic data types and structures in Python, shows how to make use of NumPy's array capabilities and how to write vectorized numerical code with Python/NumPy.

Lecture 4. Financial Time Series

This lecture is about the use of the pandas library for the management and analysis of financial time series. It shows examples implementing simple and advanced analytics as well as time series visualization. It also shows how to work with High Frequency data.

Lecture 5. Input-Output Operations

Financial analytics and financial application development mainly rests on the efficient and performant management and movement of (large, big) data. This lecture illustrates how to make sure that data reading and writing (to HDDs, SSDs) takes place at the maximum speed that any given hardware component allows. Examples also illustrate how to make use of compression techniques in such a context.

Lecture 6. Performance Python

The Python ecosystem has to offer a number of powerful performance libraries. For example, using the Numba dynamic compling library allows to compile Python byte code at call-time to machine code by using the LLVM infrastructure. The resulting compiled functions are directly callable from Python. Similarly, using the Multiprocessing module of Python makes parallelization of Python function executions a simple and efficient task.