EC 410/510 – Computational Economics
Course Information
| Term: | Spring 2026 |
| Schedule: | TTh 12:00pm – 1:20pm |
Professor
| Instructor: | Dr. David G. Evans |
| Title: | Associate Professor, Department of Economics |
| Email: | devans@uoregon.edu |
| Office: | PLC 538 |
| Office Hours: | Th 10am–11am and Fridays 1pm – 2pm and by appointment |
Additional Office Hours
Sonan Memon will be holding hours Monday from 2-4pm in room 418 PLC.
Course Description and Objectives
This course provides an introduction to modern computational economics. The ability to study economic models on a computer has become commonplace in academic research, private sector consulting, and policy work (see https://github.com/FRBNY-DSGE/DSGE.jl) as computational economics allows us to tackle problems that would be impossible or too time-consuming to solve by hand. This course will provide students with an introduction to computational modeling in economics and how to apply this approach to interesting economic problems. This course will teach students how to use dynamic programming to solve dynamic optimization problems, construct a structural model of the economy, and use data to inform that model.
By the end of this course students will:
- Learn how to model and simulate random variables on a computer.
- Understand how to write dynamic optimization problems recursively as a Bellman equation and then solve that equation on a computer.
- Identify how to break down complicated economic models into component parts that can be easily solved on a computer.
- Understand how to use economic data to calibrate parameters of an economic model.
Course Text
No formal text, however many lectures will be based on examples in http://quantecon.org/ by Thomas Sargent and John Stachurski. All lecture notes will be provided via Canvas.
Software
We will be using the Julia programming language as well as many scientific libraries. The first problem set will contain a guide to installing Julia and the tools we will be using for homework submission.
Grading Criteria
You are expected to: attend class; complete required readings; take notes during class; complete biweekly assignments and turn them in on the dates they are due; and take the midterm and final exams.
Final course grades will be determined by the following point distribution (depending on enrollment in 410 (Undergraduate) or 510 (Graduate)):
| Undergraduate | Graduate | |
|---|---|---|
| Problem Sets: | 40% of grade | 40% of grade |
| Midterm Exam: | 30% of grade | 25% of grade |
| Final Exam: | 30% of grade | 25% of grade |
| Final Project: | NA | 20% of grade |
Except for truly exceptional cases, incompletes or deferred grades will not be given. At my discretion I may give extra credit assignments or take into account improvement over the term.
Letter grades correspond to the following percentage ranges:
| Grade | Range | Grade | Range | Grade | Range |
|---|---|---|---|---|---|
| A+ | 98–100% | B+ | 88–89% | C+ | 78–79% |
| A | 93–97% | B | 83–87% | C | 73–77% |
| A- | 90–92% | B- | 80–82% | C- | 70–72% |
| D+ | 68–69% | D | 63–67% | D- | 60–62% |
| F | <60% |
Problem Sets
Approximately every two weeks students will be expected to turn in a problem set covering the topic we have been studying. See the course schedule below for detailed dates. Every problem set is due by 11:59pm on their due date. These problem sets are designed to help familiarize yourself with the topic and provide additional practice in writing code. Do not expect to be able to complete a problem set in one day. This is especially true if you are new to programming. These are designed to take time and be completed via trial and error. If you run into difficulty, please, do not hesitate to reach out via email or come to my office hours. Working in groups is permitted but make sure that all material submitted is your own work.
Each problem set provides the numerical results you should expect to obtain. Problem sets are graded on a check plus, check, check minus or zero scale with the following rubric:
- Check Plus: (100/100) All of the problems have been completed correctly.
- Check: (85/100) Most of the problems have been completed correctly and code (when incorrect) demonstrates a clear understanding of the concepts.
- Check Minus: (70/100) Some of the problems have been completed correctly and most of the code (when incorrect) demonstrates an understanding of the concepts.
- Zero: (0/100) Problem set has either not been submitted or code does not demonstrate an understanding of the material.
Late Policies for Problem Sets
I appreciate you sticking to due dates because it helps the class run smoothly and ensures you stay on track with the material. However, I recognize that life is complicated and there will be times when turning a problem set in on time is genuinely infeasible.
Problem sets can be turned in late, but please be aware that falling behind in this course is very difficult to recover from. Each problem set builds on prior material, and coding skills accumulate: a missed assignment is not just a missed grade, it is missed practice that will affect your ability to complete future work. If you need to turn in a problem set late, you must contact me first with a concrete plan for how you will catch up. I will work with you to find a reasonable path forward, but I need to hear from you proactively. Do not simply go silent and fall further behind.
Please communicate with me early if you are struggling — via email or office hours. I believe every student can succeed in this course and I care about your success.
Exam Policies
For each exam, you will be allowed one 8.5x11 sheet of paper with notes on it. Front and back In addition, I will provide you with a sheet of paper covering the code syntax necessary for the exam. In the case of a missed midterm due to unanticipated emergency situations, the student will be allowed to put the weight of the midterm on the final exam. Do not take this class if you already know you cannot make one of the scheduled exams.
Midterm Exam
The midterm exam will be held in-class on Thursday April 30th.
Final Exam
Final exam is scheduled for Monday June 8th at 8:00am.
Graduate Student
For those enrolled in 510, you will be expected to complete all the material required for the undergraduate version of the course. At the end of the quarter, I will provide you with a list of standard economic models which we have not covered in class. You will be expected to develop and implement a computational strategy to approximate the equilibrium of one of those models. Graduate students will not be required to provide any instruction for the course.
University Policies and Resources
The UO has a variety of general policies and resources you should be aware of. Please visit https://provost.uoregon.edu/standard-university-syllabus-language for full information on the following:
- Academic Disruption due to Campus Emergency
- Access and Accommodations (Accessible Education Center: 360 Oregon Hall, 541-346-1155, aec.uoregon.edu)
- Academic Misconduct (conduct.uoregon.edu)
- Inclement Weather: https://hr.uoregon.edu/content/inclement-weather-immediate-updates
- Reporting Obligations
- Mental Health and Wellness: https://counseling.uoregon.edu
- Basic Needs: https://blogs.uoregon.edu/basicneeds/food/
- Accommodation for Religious Observances: https://registrar.uoregon.edu/calendars/religious-observances
Outline of Course Material
The following is a tentative schedule of lectures and may be subject to change. For reading assignments on Quant Econ visit https://julia.quantecon.org/intro.html. See Canvas modules for additional details.
| Week | Content | Assignments |
|---|---|---|
| 1 | Julia Basics and Linear Algebra | Assignment 0 Due on Monday April 6th at 11:59 pm |
| Readings: Julia Basics (Canvas), Linear Algebra (Canvas), Julia Essentials (Quant Econ) | ||
| 2 | Linear Algebra Finite State Markov Chains | Assignment 1 Due on Monday April 13th at 11:59 pm |
| Readings: Markov Chains (Canvas), Finite Markov Chains (Quant Econ) | ||
| 3 | McCall Search Model (Introducing Bellman Equations) | Assignment 2 Due on Monday April 20th at 11:59 pm |
| Readings: McCall Search Model (Canvas), Job Search I (Quant Econ) | ||
| 4 | McCall Search Model (continued) | Assignment 3 Due on Monday April 27th at 11:59 pm |
| Readings: Job Search II (Quant Econ) | ||
| 5 | Rust (1987) Optimal Stopping | Midterm – In Class April 30th |
| Readings: Rust 1987 (Canvas) | ||
| 6 | Rust (1987) Optimal Stopping (continued) | Assignment 4 Due on Monday May 11th at 11:59 pm |
| Readings: Rust 1987 (Canvas) | ||
| 7 | Kydland & Prescott (1982): Real Business Cycles | 510 Students: Select project this week |
| Readings: Kydland Prescott 1982 (Canvas) | ||
| 8 | Kydland & Prescott (1982) (continued) | Assignment 5 Due on Monday May 25th at 11:59 pm |
| Readings: Kydland Prescott 1982 (Canvas) | ||
| 9 | Sovereign Default | |
| Readings: Sovereign Default (Canvas) | ||
| 10 | Sovereign Default (continued) | Assignment 6 Due on Sunday June 7th at 11:59 pm |
| Readings: Sovereign Default (Canvas) |
510 Students: Final projects will be due on the last day of finals week.