MF 703
Fall 2019

Programming for Mathematical Finance

Course Description

MF 703 develops computational problem-solving skills for mathematical finance in the Python programming language.

The course will cover the fundamentals of programming, including working with data (numbers, strings and lists), arithmetic, functions, recursion, iteration, data files, graphing, and object-orientation.

Finance-specific applications will include: the time value of money and bond pricing/analytics, descriptive statistics for quantifying risk/return in stock investments, matrix operations and linear algebra, options pricing algorithms, Monte-Carlo simulation, minimum variance portfolios and the efficient frontier.

Prerequisites
No prior experience is required. If you do have prior programming experience — including experience in Python — you will still benefit from the course. Among other things, it should help you to develop or strengthen problem-solving skills that are needed for further study in mathematical finance — including ways of thinking that are not typically emphasized or even covered in most introductory programming courses.
Class Meetings
  • section D1: TR, 9:30am - 10:45am, HAR 310
  • section D2: TR, 11:00am - 12:15pm, HAR 310
Instructor

(see the staff page for contact information and office hours)

Teaching/Learning Method

Learning to program is a skill that takes practice, similar to learning a sport or a musical instrument. You cannot learn to play basketball by simply watching the Celtics; rather, you need to go to the gym and practice your shots. This course is designed around a set of weekly assignments, which you must complete in order to master the material. It is not possible to learn how to program by simply “watching.” To become a programmer, you must actively program!

In general, this class will be teaching by examples. Students must come to class with a laptop computer and the required software installed and be prepared to follow along with and discuss the examples in class. All example code will be posted online after class, but students will obtain the greatest benefit from writing the example in class.

Assignments will often be very time consuming, so you must plan ahead and start early. Each week’s assignment is due on the Sunday following the week of class, and is a necessary building block for the following week’s material.

Online Textbooks

How to Think Like a Computer Scientist with Python 3 by Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers

Specific readings will be assigned each week. To get the most out of class time, you should read the assigned sections BEFORE coming to class.

Requirements
  • Weekly assignments (40% of the final grade)
  • Exams: one midterm exam (25%) and a final exam (25%)
  • Attendance and participation (10%)
  • To pass the course, you must earn a passing grade for each of the three components.*

December 10, 2019

Information and practice problems for the final exam.

October 3, 2019

Information and practice problems for the midterm exam.