MATH 5800-030 (MATH 5670): Financial Programming & Modeling


This course provides students with knowledge and skills in data structures and algorithms, such as primitive types, arrays, strings, linked lists, stacks, queues, binary trees, heaps, hash tables, searching, sorting, binary search trees, recursion, dynamic programming, graphs, and parallel computing. Students learn modeling techniques such as Monte-Carlo simulation, constrained and unconstrained optimization, linear and non-linear programming, heuristic optimization, sampling, regression, and time series analysis.

In financial applications, students develop code for optimizing investment portfolios using various optimization algorithms, pricing options, evaluating investment efficiency, scoring credit risk, and forecast time series. Code is developed from scratch as well as based on freely available packages for optimization.

The course uses external educational materials such as books, code, videos, and websites to support teaching, and accelerate student learning. Students are expected to spend significant amount of time to digest the assigned materials.

This 3-credit course is allowed as an elective for Applied Financial Math and for Actuarial Science. It is to create necessary programming skills and knowledge for MATH 5671, and train students for the programming portion in job interviews.


Slides are provided by the instructor.

Reference Books

1. Elements of Programming Interviews in Python – The Insiders’ Guide by Adnan Aziz, Tsung-Hsien Lee, Amit Prakash
2. Simulation and Optimization in Finance: Modeling with MATLAB, @Risk, or VBA by Frank J. Fabozzi
2. Numerical Methods and Optimization in Finance by Manfred Gilli, Dietmar Maringer, Enrico Schumann
5. Numerical Methods in Finance and Economics: A MATLAB-Based Introduction (Statistics in Practice) by Paolo Brandimarte