Motivation

Much of a researchers live in modern economic research is spent in front of a computer -- be it to analyze data or to simulate economic models.

Unfortunately, it is rare that we have been taught how to do this in a structured and efficient way. Class exposure to programming languages is most often limited to the simple use of Stata and Matlab to solve `toy' examples designed to illustrate a theoretical result or implement a method with known properties and ex-ante known results. These skills, like copy and pasting pieces of code repeatedly, do not scale up in a straightforward manner to handle complex projects that make up research papers, PhD theses or typical work in government or private business settings. As a result, young economic researchers spend too much time wrestling with software and too little time doing economics -- our comparative advantage. Even with large investments in software wrestling and self-learned skills, we typically have no idea how reliable or efficient our programs are.

This course is designed to improve learners' programming abilities. It is aimed at PhD students who expect to write their theses in a field that requires modest to heavy use of computation. Examples include applied microeconomics, econometrics, macroeconomics, computational economics and any field that either involves real-world data or does not generally lead to models with simple closed-form solutions.

The course introduces students to a set of industry standard tools and programming methods that aim to reduce time spent programming while at the same time making programs more dependable and results reproducible. It draws extensively on basic techniques and tools that are the backbone of modern software development and have enabled the development and maintenance of Windows or the Google search engine. At the same time, these tools are simple enough to be used in small research projects, too. The course shows the usefulness of these techniques and trains the student in them by means of hands-on examples for a wide variety of economic and econometric applications.

Target Audience

This course is intended for PhD students who are transitioning from coursework to research. Next to your economics background, we will only assume that you have written small pieces of code before, like Stata .do-files or Matlab .m-files for problem sets in your Masters degree or first-year PhD classes. Knowledge of a specific programming language is not required.

A large part of this course is really about tool choice. We will take care in pointing out which language is most appropriate for which problem, and provide you with introductions to three popular choices for data- and computationally intensive computing. These are not the only choices available but some knowledge of these languages will make picking up others on your own or through our PhD computing seminars relatively easy.

Course Objectives

This course has two closely intertwined objectives:

  1. Enhancing students' programming efficiency.
  2. Providing the tools to make data analysis and computation reproducible.