GRA 6670 Numerical Methods in Python with Applications

GRA 6670 Numerical Methods in Python with Applications

Course code: 
GRA 6670
Department: 
Economics
Credits: 
6
Course coordinator: 
Alfonso Irarrazabal
Course name in Norwegian: 
Numerical Methods in Python with Applications
Product category: 
Master
Portfolio: 
MSc in Quantitative Finance
Semester: 
2023 Autumn
Active status: 
Active
Level of study: 
Master
Teaching language: 
English
Course type: 
One semester
Introduction

The course will teach students basic numerical methods, and show how to solve problems that arise in business economics. The aim of the course is to teach basic numerical tools in Python often used in solving and analyzing models in economics, finance, industrial organization, marketing and related fields.

We divide the course in two parts. In the first part of the course, we cover the basic of Python programming and with the relevant scientific packages. We also discuss basic techniques in numerical methods, simulation methods and numerical mathematical programming. The second part of the course is on applications. We will use numerical methods to solve and analyze questions related to climate change, portfolio optimization and insurance markets, savings behavior, transportation choice, demand for products, planning problem etc.

The course will be applied. We cover basic theory related to different economic problems, but the emphasis is on how to solve and analyze a variety of models commonly used in economics and finance. We will solve, simulate and visualize models and explore alternative assumptions and extensions.

This is a course aimed at master students with some basic knowledge in programming and microeconomics/business economics at the master level. 

Learning outcomes - Knowledge
  • After taking the course students should have a basic understanding of numerical methods and how to apply them to solve economic models. The emphasis of the course is applying the methods to a range of topics of interest in business economics and finance such as: climate change, portfolio choice, planning/inventory problems, etc.
  • Students should be able to use the Python language to solve models that arise in business economics.
Learning outcomes - Skills
  • Students will learn basic numerical techniques in Python. They will also know how to apply several scientific packages normally used in applied work.
  • Students will learn how to solve and analyze economics models and produce quantitative answers to a variety of practical problems.
  • Students will also learn practical techniques in numerical methods in Python. The course is hands-on and they will learn by doing several scientific packages that are often used in practical applications in business economics.
General Competence

Students will reflect on the importance of economic reasoning in approaching practical questions of economic importance by the practice of solving and analyzing economic models. The course offers an opportunity to reflect on how effective a programming language can be to produce quantitative answers to many economic problems. 

Course content
  1. Python Programming I. Loops, Conditionals, Functions.
  2. Python Programming II. Numpy, Lists, Dictionaries.
  3. Scientific Packages. Scipy, Numba, Introduction to Object Oriented Programming.
  4. Basic Numerical Methods I. Nonlinear Equations, Integration, and Function Minimization. 
  5. Basic Numerical Methods II. Function Approximation.  Random Variables, Sampling from Distributions,
  6. Simulation Techniques. Simulation of Stochastic Processes.
  7. Mathematical Programming. Gurobi Package. Models with Constraints.
  8. Solving Equilibrium Models. Applications: Climate Change, International Trade.
  9. Topics in Finance and Risk Management. Applications: Portfolio Optimization, Insurance Markets
  10. Dynamic Programming. Applications: Saving Behavior, Non-Renewable Resources, Real Options Models.
  11. Continuous Time Methods. Method to solve Differential Equations, Optimization Problems.
  12. Methods for Machine Learning. Neural Networks, Machine Learning as a Constrained Optimization Problem.
Teaching and learning activities

The class will be practical. In most lectures, we will cover the basic theories in terms of numerical methods, the basic description of the economics model and a brief description of the solution method. Then, we will use the computer and Jupyter notebooks to illustrate in practice how to implement the solution of the model. Students will see in practice how a economics models are solved and analyzed.

Students are expected to participate actively in class. Work in groups is encouraged. There will be practical assignments in order to practice the techniques learned in class.

Software tools
No specified computer-based tools are required.
Additional information

Please note that while attendance is not compulsory in all courses, it is the student’s own responsibility to obtain any information provided in class.

Qualifications

All courses in the Masters programme will assume that students have fulfilled the admission requirements for the programme. In addition, courses in second, third and/or fourth semester can have specific prerequisites and will assume that students have followed normal study progression. For double degree and exchange students, please note that equivalent courses are accepted.

Disclaimer

Deviations in teaching and exams may occur if external conditions or unforeseen events call for this.

Assessments
Assessments
Exam category: 
Submission
Form of assessment: 
Written submission
Weight: 
100
Grouping: 
Group/Individual (1 - 2)
Duration: 
14 Day(s)
Comment: 
The exam will consist of an application of numerical methods to a business economic problem.
Exam code: 
GRA 66701
Grading scale: 
ECTS
Resit: 
Examination when next scheduled course
Type of Assessment: 
Ordinary examination
Total weight: 
100
Student workload
ActivityDurationComment
Teaching
36 Hour(s)
Prepare for teaching
20 Hour(s)
Seminar groups
24 Hour(s)
Student's own work with learning resources
60 Hour(s)
Examination
20 Hour(s)
Sum workload: 
160

A course of 1 ECTS credit corresponds to a workload of 26-30 hours. Therefore a course of 6 ECTS credits corresponds to a workload of at least 160 hours.