Programming Practices for Research Students

Course Co-designer

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 maintainance 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 two popular choices for data- and computationally intensive computing. We also introduce a tool kit designed to improve the replicability of your code. The programming languages and tools introduced in the course are not the only choices available but some knowledge of these languages and best practices will make picking up others on your own relatively easy by providing a solid basic training.

Lachlan Deer
Lachlan Deer
Assistant Professor

My research interests include quantitative marketing, digital marketing and public policy.