The aim of this class is to provide students with a set of computational skills for future positions both in the financial industry and in academia. The first part of the course provides an intermediate introduction to Python focusing on the numerical capabilities of the programming language. The second part of the course focuses on the collection, processing, and analysis of financial data. In particular, it introduces concepts of portfolio, risk management, statistics, and optimization, while teaching the students how to build a functional API to analyze and distribute data relevant for investment decisions.
1. Introduction and Basic Programming: History, Variables, Control Flow, Conditional Evaluation, Arrays, Functions, Generators (3h)
2. Intermediate Programming: Numerical Python (numpy), Linear Algebra (3h)
3. Data Analysis: Dataframes (pandas), cleaning and processing data through a Financial Example. (3h)
4. Portfolio Management I: Statistics and Simulation (3h)
5. Portfolio Management II: Optimization and Heuristics (3h)
6. Web Scrapping: How to automatize data collection online through a Financial Example. (3h)
7. Data Distribution: How to build a functional API to distribute data (3h)
8. A grasp of advanced Python usage: Coding Standards, General User Interfaces, Extending Python's Functionality with C and C++ (3h)
Python 3.9 and other pydata libraries from Anaconda: https://www.anaconda.com/distribution/
Recommended material if the student has no experience coding: 1 hour Python beginner tutorial - See the video
Final Exam 70 % - Individual Project 20 % - Problem sets and quizzes (10%)
Recommended prior knowledge
Basic concepts of programming, statistics, linear algebra and convex optimization.