Teaching and Learning
Semester-Long Courses
- Econometrics I at UC Berkeley (EC140), 2022. Teaching materials
- Introduction to Environmental Economics & Policy at UC Berkeley (EEP1/EC3), 2020
- Econometrics I at Universidad de Chile, 2007, 2008, 2010
Additionally, below you can find a collection of courses I have built to teach/refresh myself a collection of tools and methods relevant for industry jobs relevant for someone with my background.
Self-Directed Courses
I am also exploring private-sector positions in the Bay Area. To support this transition, I have been building a series of short, self-directed courses to refresh and develop skills relevant to the roles I’m targeting — policy researcher, applied policy economist and data scientist positions at technology platforms.
The courses below were built using Claude Code. Each course is a set of xaringan slide decks with worked examples, R/Python/SQL exercises, and interview-style practice questions, all threaded through industry-related applications.
- ML Refresher: Discrimination and Fairness — Bias-variance tradeoff, linear models, model evaluation, fairness frameworks, and the impossibility theorem. Every module pairs an ML concept with a discrimination scenario.
- Discrimination in Labor Economics Refresher — Becker, Phelps, audit studies (Ge et al. 2016), Oaxaca-Blinder decomposition (Cook et al. 2021), algorithmic audits, and the practitioner playbook.
- Intro to Experiments in Industry — Potential outcomes and the experimental ideal, SUTVA and interference, cluster/switchback designs, regression adjustment and CUPED, ITT vs LATE, and external validity.
- Causal Inference Beyond A/B — Deep-dive course on causal inference for platform settings: modern DiD, synthetic control, causal forests, policy learning, and matrix completion.
- Intro to SQL — SELECT through window functions, drilled on a synthetic ride-sharing schema. Five modules of interview-style questions designed to be answerable from a cold start in under two minutes each. One pager.
- Python for an R User — The pandas + statsmodels stack, framed as a dplyr-to-pandas translation. Covers data wrangling, joins, OLS, A/B test inference, and difference-in-differences, with end-to-end interview scenarios.
Promises and Perils of AI for Teaching and Learning
My current thinking, which I expect to keep revising as the tools change.
Over the past year I have used AI coding agents (mainly Claude Code) to build every course in the Self-Directed Courses section above, and a set of math materials for my children. That experience has left me both more optimistic and more cautious than when I started.
Promises
- Tailoring at almost no cost. A course can be built around one learner’s goal, level and running example. Materials that once took a semester to prepare now take days, so it becomes realistic to write a course for an audience of one.
- Explanations that adapt. When an explanation does not land, the tool can rewrite it immediately with a concrete worked example. I keep a running log of the concepts that confused me, and the assistant uses it to explain related ideas more plainly the next time.
- Practice on demand. Drills, worksheets, mock interviews and interactive explorers can be generated from a single source, so the bottleneck for practice is no longer the instructor’s time.
Perils
- Fluent is not the same as correct. AI-generated materials look finished long before they are right. In one batch of seven slide decks, every deck passed the tool’s own checks and every deck still had visible errors. Someone who can actually check the material has to do so.
- Outsourcing the struggle. Much of learning happens in the effort of working a problem out. An assistant that always supplies the answer removes that effort, and with it the feeling of not understanding that tells a learner where to focus.
- Output without understanding. A student, or an instructor, can now produce a polished artifact they cannot explain. Assessments that grade the artifact can no longer tell the two apart.
What I do about it
- Teach verification as a skill. Checking AI output against golden datasets, reproducing results independently and reviewing changes to the data, not only the code, is a module in its own right in my Administrative Data Pipelines course.
- Keep the thinking with the learner. I use AI to build materials and generate practice, but the learner works the problem and explains the answer back.
- Disclose how AI was used, object by object. Who conceived something, who executed it and who checked it are different questions. This is the same transparency principle behind my work on Open Policy Analysis.