Computational Crash Course for Economics PhD Students, Summer 2024 (UMN)
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 |