Python for Public Policy

Python for Public Policy#

Alternate course title: How to Use a Bit of Code to Do Things That Would Be Really Hard in Spreadsheets

This site contains content for Columbia University’s Python for Public Policy class.

The materials are also available for public consumption. If you are not part of the class, see information about running the notebooks.

Produced and taught by Aidan Feldman. Largely based on a previous iteration by Hannah Kates.

Why this class?#

There are countless resources out there to learn Python and pandas — books, videos, etc. — and many are free. Relative to other Python/pandas courses, this class:

  • Doesn’t expect any prior technical experience

  • Puts the data/code in a public policy context

    • There’s a specific emphasis on learning coding for data analysis rather than software engineering

  • Teaches you how to work with open data

  • Optimizes for minimal setup

All the lectures and assignment templates are available for download through this site, so you could go through them on your own. The benefits of enrolling are:

  • Additional content

    • You get access to lectures, which includes commentary that isn’t available here

    • You get access to assignment solutions

  • Support

    • There is an instructor to answer questions, both during and between lectures

    • You get feedback on your assignments

    • You have peers you can work with

  • You invest money and are expected to show up to class and turn in assignments on time, which makes it far more likely you will complete it


This class has been extremely helpful and my only regret is that I didn’t take it sooner … In fact, I’ve already put python to use for my final thesis. … In writing my thesis, I used python for descriptive statistics that would have otherwise taken much longer in excel … Writing code for these analysis probably saved me about a day or two of work.

Thank you for an incredible semester. I truly took away a lot that I feel will help me dive deeper into a career in public service, while having unique skills that will help me deliver a much greater impact into the communities I’m serving.

The in-class assignments and homework provided many opportunities to practice the Python concepts we learned in class. … Professor Feldman was able to present difficult concepts in a way that was easy to digest as someone who knew very little about Python prior to this course. This course achieved its goal of removing the uneasiness I felt towards Python and coding in general, and for a 7-week course, that is no easy feat!

Everything controllable by the professor was fantastic. The objectives were straightforward and value-added. The professor helped make sure that we were coming away from assignments with real tangible understanding of the code rather than focusing on completion. I was challenged, but the professor was always around to answer questions.

From Tess Edwards:

Though I’ve only been in Python class for less than a month, I’ve already learned so much that has empowered me beyond the classroom. Since I was an intern in 2017, the office of Congresswoman Kathleen Rice (formerly D4-NY) has contacted me annually to judge submissions for the “Congressional App Challenge”. This challenge invites high school students to create apps and showcase their coding skills. Historically, I’ve graded these as an outsider with very little understanding for coding languages like Python (they knew that by the way!). However, this year is different. I am grading the submissions from a brand new perspective that is empowering and definitely making me a better judge. I’m so excited to be learning a skill that has already shown to be fruitful in such an unexpected way!