Site Navigation

Table Of Contents

Previous topic

Research

Next topic

Hans-Martin v. Gaudecker


Teaching

I have been in the fortunate position of being able to teach some courses that I felt were lacking in my own postgraduate education. Dealing with computers and making credible causal claims in the resulting work takes up most of my research time; the skills for these activities are often just glanced over in statistics and econometrics courses. Consequently, I have been teaching courses aiming at increasing students’ software development skills and a course dedicated to the quest for identifying causal relations in economics and econometrics.

Why teach computing skills?

The pace at which computational power has increased has not led to a similar reduction of execution times for typical computations. Instead, the data and methods handled by academic economists have become ever more complex, which in turn means that verification of correctness can (and should!) not be checked by comparing the results to what we expected. (What did we expect, anyhow? Are we doing science or what?) Instead, we need to make sure that the programs we write are as correct and efficient as possible. Do we have reason to believe that this is the case?

A clear no from at least two angles. First, we largely rely on students learning how to program by osmosis, but the best evidence we have from other fields suggests that this is not working. Second, several top-published results in economics have shown to be wrong because of computational errors (here’s a short selection) — and the papers I am aware of were fairly simple (in terms of computational requirements, that is).

So why do people make errors? Well, we’re human and no robots. Our comparative advantage does not lie in repeating simple tasks a great number of times in exactly the same way. But that’s what you have to do when you, say, add another wave of your favourite panel data to your project and your tool chain involves a lot of copy & paste. And in zillions of other circumstances. The computer can be much better at these tasks and at others like tracking the history of your research project or checking whether small chunks of your code produce the same result each time. Teaching such things is what the Effective programming practices for economists course is all about.

We all learned how to manipulate formulas in grad school — but few models have analytic solutions and we need to translate others into something that the computer understands. I taught techniques for this in the Computational Econometrics course.

Effective programming practices for economists

Autumn 2011
Here is an outline of the latest run of the course; the lecture slides are on the course homepage.
Autumn 2010
This is the first time I ever taught this course and I smoothed a number of the rough edges for the 2011 run. I’ll leave the slides here for completeness; or in case anybody is interested in some of the tools that have not made the cut (SCons, in particular).
Acknowledgements
Erik Sørensen got me interested in these topics over many conversations we had while sharing an office in Amsterdam. He ran a one-day-course touching similar issues in Norway. The course is deeply influenced by Greg Wilson and his Software Carpentry project — do check out its blog for interesting stuff.

Computational Econometrics

Spring 2011
This used to be a core course in the Mannheim Ph.D. programme and carrying the official name Advanced Econometrics II; it did not make it past a re-design of the curriculum. I taught the first part with two hands-on examples contrasting the two main approaches in empirical economics these days: “Natural experiments” and “structural econometrics”, both quite broadly defined. Then Carsten Trenkler took over with time series topics. The course was quite traditional with some stronger influence from the computing side than what is typically taught. The current version of the slides is not suitable for making them available on the web, but if I should teach it again as an elective course this may change.