Computational Crash Course for Economics PhD Students, Summer 2024 (UMN)

Authors
Affiliation

Adam A. Oppenheimer

University of Minnesota-Twin Cities

Xing Xu

University of Minnesota-Twin Cities

Disclaimer: this site is a work in progress!

Welcome to the 2024 summer course on computational economics at UMN! It will be a 3-week crash course consisting of 2 Julia and 2 Python lectures each week. The Julia lectures will be taught by Xing Xu and the Python lectures will be taught by Adam Oppenheimer. Find the detailed syllabus and information below.

All the notebooks for lectures and assignments can be downloaded from Github repo.

Course Overview

The course offerings are designed to cater to varying interests and skill levels. The Julia lectures will primarily concentrate on fundamental dynamic programming, demonstrating applications across a range of classical economic models. These include the neo-classical growth model, job search, the Aiyagari model, and firm dynamics. The homework will involve hands-on practice with basic Julia coding and provide exposure to some practical methods, including interpolation, continuous optimization, and parallelization. Lecture 5 on June 18th will feature Professor Kim Ruhl as a guest lecturer to talk about the model part.

In contrast, the Python lectures are tailored to those new to programming. These sessions will focus on establishing a solid foundation in programming basics. Students will progressively build their skill set, and by the end of the course should be able to solve a simple dynamic programming model. For those who are new to programming, this will complement the Julia lectures by helping reinforce good coding practices that are necessary for the more complicated models covered in that course. On the other hand, those who are already experienced in programming can benefit from the focus on Python-specific subtleties that are required for highly optimized Python code.

Both courses are structured as introductory, requiring no prior experience in programming. While the courses are comprehensive, they intentionally do not delve into advanced methodologies found at the cutting edge of computational economics. Such topics are reserved for the official computational field courses usually taken in the second year.

It’s important to note that the skills developed in these classes are broadly applicable and will provide a strong foundation for those interested in advancing to more specialized computational sequences. However, students already familiar with basic or intermediate programming and computational economic skills may find some of the content less interesting. Thus, students equipped with those skills might prefer to direct their attention toward more advanced courses that align with their existing skill levels.

Schedule

The class will last three weeks from June 3rd - June 21st, 2024. The class will be online and zoom links will be provided to those who intend to participate. There will be 6 lectures and accompanying problem sets for each language.

Here is the proposed timeline of the lectures. All lectures will be from 9:30 am - 11:00 am CDT.

Julia Lectures Dates
Julia Fundamentals Tuesday, June 4th
Neoclassical growth model (RBC) Thursday, June 6th
Root finding, Interpolation, and Continuous optimization Tuesday, June 11th
Incomplete market model with heterogeneous household Thursday, June 13th
Firm dynamics with an example of exporter dynamics Guest Lecturer: Kim Ruhl Tuesday, June 18th
McCall’s Job search model Thursday, June 20th

(To get started with the Julia lectures, please set up with Quantecon tutorial)

Python Lectures Dates
Basics: Conditionals, Loops, Functions, etc. Monday, June 3rd
Nesting, Scope, and Lists Wednesday, June 5th
Assignment 1 Review Friday, June 7th
Tips & Tricks Monday, June 10th
Assignment 2 Review Wednesday, June 12th
Classes and Queues Friday, June 14th
Numpy Monday, June 17th
Assignment 3 Review Wednesday, June 19th
Pandas Friday, June 21st
Assignment 4 Review Wednesday, June 26th
Assignment 5 Review Wednesday, July 3rd

Office Hours

We will provide links to sign up for weekly office hours.

Assignments

Here are the links to the assignments:

Julia Assignments Due Dates
Assignment 1 June 10th
Assignment 2 June 17th
Assignment 3 June 24th
Python Assignments Due Dates
Assignment 1 Friday, June 7th
Assignment 2 Wednesday, June 12th
Assignment 3 Wednesday, June 19th
Assignment 4 Wednesday, June 26th
Assignment 5 Wednesday, July 3rd
Assignment 6 Monday, July 1st