English   Danish

2026/2027  KAN-CFIAV1002U  Python for the Financial Economist

English Title
Python for the Financial Economist

Course information

Language English
Course ECTS 7.5 ECTS
Type Elective
Level Full Degree Master
Duration One Semester
Start time of the course Autumn
Timetable Course schedule will be posted at calendar.cbs.dk
Max. participants 150
Study board
Study Board for Finance, Economics & Mathematics
Programme MSc in Economics and Business Administration - Finance and Investments (FIN)
Course coordinator
  • Claus Munk - Department of Finance (FI)
  • Johan Stax Jakobsen - Department of Finance (FI)
Main academic disciplines
  • Finance
  • Statistics and quantitative methods
Teaching methods
  • Blended learning
Last updated on 20-03-2026

Relevant links

Learning objectives
Use Python and methods related to the ones presented in the course and exercises to perform quantitative analysis and solve problems of similar difficulty as the problems solved in the excercises of the course.

The exam may be formulated as a more broad topic requiring the students to read academic papers and explore methods not directly covered in the course.
  • Performing quantitative analysis using Python.
  • Being able to implement mathematical and statistical formulas using Python.
  • Presenting results obtained using quantitative analysis in an academic report.
  • Applying the relevant the techniques to solve a specific problem in financial economics
Course prerequisites
The course is oriented towards master-students with solid quantitative skills and the following background:

1. Master course in portfolio theory

2. Master course in bond and option analysis

3. Undergraduate course in statistics

4. Mathematics course covering optimization and basic matrix algebra.

Some experience with scientific computing in coding languages such as Python, R, VBA, Matlab or similar would be an advantage. It will be assumed that students have knowledge about basic concepts (e.g. "for loops" and "if statements") from scientific computing.
Examination
Python for the Financial Economist:
Exam ECTS 7,5
Examination form Oral exam based on written product

In order to participate in the oral exam, the written product must be handed in before the oral exam; by the set deadline. The grade is based on an overall assessment of the written product and the individual oral performance, see also the rules about examination forms in the programme regulations.
Individual or group exam Oral group exam based on written group product
Number of people in the group 2-4
Size of written product Max. 25 pages
2 students 15 pages max.
3 students 20 pages max.
4 students 25 pages max.

An exemption is required in order to write the project alone. If a student is granted an exemption to write alone, the max number of pages is 10, and the oral exam is 20 minutes.
Assignment type Project
Release of assignment An assigned subject is released in class
Duration
Written product to be submitted on specified date and time.
10 min. per student, including examiners' discussion of grade, and informing plus explaining the grade
Grading scale 7-point grading scale
Examiner(s) Internal examiner and second internal examiner
Exam period Winter, Take-home exam is published at least 2 weeks prior to hand-in deadline.
Make-up exam/re-exam
Same examination form as the ordinary exam
If a student fails the ordinary exam, then the student will have to hand in a new project.
Course content, structure and pedagogical approach

The aim of this course is to enable students to implement financial models using realistic data. Several topics in financial economics will be covered and the students will at the end of the course be able to implement financial models from scratch in Python. This will be highly relevant when writing academic papers and/or working in the financial industry.

 

The teaching format will be different than the traditional teaching format at CBS and requires a high degree of self-motivation and self-management from the students.

 

The course is very exercise based. The students will learn Python by solving a range of different problems in financial economics. This includes implementation of different models from academic research papers. Examples of potential topics include

 

  • Modelling financial returns, e.g.
    • Return properties and distributional assumption
  • Public available data sources and how to access them using Python
  • Calculation of portfolio risk measures using Python, e.g. 
    • Marginal CVaR and VaR
  • Option pricing using Monte Carlo
  • Robust portfolio optimization, e.g.
    • Classical mean-variance optimization and its drawbacks
    • The Black-Litterman model
    • Resampling methods
    • Bayesian approach to robust portfolio optimization
    • Ledoit and Wolf (2004), A Well-Conditioned Estimator for Large-Dimensional Covariance Matrices
  • Volatility modelling, e.g.
    • RiskMetrics, ARCH and GARCH models
  • Term structure and Interest rate modelling, e.g.
    • Specifications of the yield curve such as the Nelson-Siegel model
    • Short rate models such as the Vasicek and CIR model

 

In the beginning of the course there will be a general introduction to Python and exercises that familiarise the students with relevant Python functionalities used in the course.

Research-based teaching
CBS’ programmes and teaching are research-based. The following types of research-based knowledge and research-like activities are included in this course:
Research-based knowledge
  • Classic and basic theory
  • New theory
  • Models
Research-like activities
  • Analysis
  • Discussion, critical reflection, modelling
Description of the teaching methods
The course is very exercises based and the main workload consists of solving exercises using Python.

The objectives of the lectures are two-fold. First, lectures are used to present solutions to the solved exercises which may be pre-recorded videos. This will enable students to assess their ability to solve the exercises. Second, some lectures are held as Q&A sessions that will cover certain topics in more details and where the students can get answers to specific questions.
Feedback during the teaching period
The lectures involve discussions with students about the solution of pre-assigned problems as well as Q&A sessions in which students are able to ask and discuss individual questions and problems.
In addition, students may book individual meetings if needed during weekly office hours which will be held online.
Student workload
Hours of lectures / tutorials 30 hours
Preparation / exam 176 hours
Expected literature

No required literature. Notes and exercises introduce relevant material. 

 

Relevant literature:

 

Yves Hilpisch, Python for Finance

Attilio Meucci, Risk and Asset Allocation

Claus Munk, Fixed Income Modelling

 

Last updated on 20-03-2026