Syllabus#
Python for Public Policy - Spring 2025
Course Information#
Course Number: INAFU6504
Course site: python-public-policy.afeld.me/en/columbia/
Class Meeting Times: Tuesdays 1/21-3/4
Section 1: 9-10:50am ET
Section 2: 11-12:50pm ET
Class Location: International Affairs Building (IAB), room TBD
Prerequisites: None
Textbooks: None
Students should bring a laptop to class
A tablet with a full keyboard is ok
Instructor Information#
Professor: Aidan Feldman, alf2215@columbia.edu
Readers:
Section 1: Muxi Li, ml4981@columbia.edu
Section 2: Sipeng Ye, sy3205@columbia.edu
Office Hours:
TBD, no appointment necessary
Other times by appointment; email the instructor
Description#
This seven-week course exposes the students to the application and use of Python for data analytics in public policy setting. The course teaches introductory technical programming skills that allow students to learn Python and apply code on pertinent public policy data. The majority of the class content will utilize the New York City 311 Service Requests dataset. It’s a rich dataset that can be explored from many angles relevant to real-world public policy and program management responsibilities.
Class will be split between:
Lecture
Demonstration
Hands-on time to:
Play with the code from lectures
Start on the homework
Ask questions
Homework#
Homework assignments will consist of two different formats:
Online tutorials: In advance of classes, online tutorials will be assigned as homework. These online tutorials will introduce students to critical Python concepts. The following lecture will then focus on applying those concepts to real public policy data questions.
Coding: Students will complete Python coding exercises that apply new concepts they have learned in lecture. Coding assignments will build off of concepts covered in previous assignments.
These are expected to take 5-10 hours per week.
Learning Objectives#
By the end of the course, students will know:
Python fundamentals
Common data types
Functions
Reading technical documentation
Troubleshooting
How to use pandas and other packages for data exploration, manipulation, visualization, and analysis
How to use Jupyter as a coding environment
How to work with open data
How these tools and skills can be leveraged in a policy context
Schedule#
Date |
Lecture |
Homework due |
Late submission deadline |
---|---|---|---|
1/21 |
none |
||
1/28 |
|||
2/4 |
|||
2/11 |
|||
2/18 |
|||
2/25 |
|||
3/4 |
|||
3/7 |
none |
none |
|
3/11 |
none |
In general, assignments are due at the time class starts. These will all be reflected in the Assignments in CourseWorks.
Communications#
All assignments will be delivered through the CourseWorks site.
Assignments, due dates, and other aspects of the course may be modified mid-course.
As much advance notice will be given as possible.
Troubleshooting and other communications between class sessions will be through Ed Discussions, so that other students can respond and/or benefit from the answers.
Email is also an option, though please only use for questions that aren’t appropriate for others to see.
The instructor/Reader will try to respond within 24 hours, 48 hours max, if someone else hasn’t already.
Assignments and Evaluation#
The Course Grade is based on the following:
Assignments: 64%
Homework 0: 13%
Homework 1: 13%
Homework 2: 13%
Homework 3: 6%
Homework 4: 13%
Final Project: 20%
Attendance: 6%
The overall grade is curved; see the methodology.
Assignment scoring#
Late work: -10% per day
Syntax errors: -10 points
Incomplete Steps / Steps with logic errors: -2 to -5 points
Visualizations incomplete, e.g. missing meaningful title/labels: -3 points
Unattempted Steps: -10 points
If the submission showed effort, feedback will be given through comments in the notebook.
Final Project#
The Final Project score will be the median of peer grades. For the Final Project peer review score, the following apply per review:
Minimal feedback: -10 points
Not reviewed: -20 points
Extensions#
Requests for extensions will only be considered if made via email before the deadline, up to the late submission cutoff shown above. Late submission deadlines will only be extended if there is accomodation requested through the school.
Participation#
To encourage cosnsistent, deeper thought about the Assignments, relevance to the broader world, etc., students are expected to do Between-Class Participation. This includes:
Asking a question of substance
Answering a question
Posting a useful/interesting resource
Sharing an insight
in either:
Office hours
-
When starting a new Conversation, please use a descriptive Title to make them easier to navigate
Suggest checking your notifications settings to make sure you see conversations that come through
Email
A student’s overall Between-Class Participation score is calculated based on some form of participation every week. The following don’t count:
In-class participation, due to:
The difficuly of tracking participation live
Some students being more shy
Homework revisions
Communications about grades or other administrivia
Letter Grades#
Letter grades for the entire course will be assigned as follows:
Letter Grade |
GPA Points |
Description |
Criteria |
---|---|---|---|
A |
4.0 points |
Excellent |
Exceptional work for a graduate student. Work at this level is unusually thorough, well-reasoned, creative, methodologically sophisticated, and well written. Work is of exceptional, professional quality. |
A- |
3.7 points |
Very good |
Very strong work for a graduate student. Work at this level shows signs of creativity, is thorough and well-reasoned, indicates strong understanding of appropriate methodological or analytical approaches, and meets professional standards. |
B+ |
3.3 points |
Good |
Sound work for a graduate student; well-reasoned and thorough, methodologically sound. This is the graduate student grade that indicates the student has fully accomplished the basic objectives of the course. |
B |
3.0 points |
Adequate |
Competent work for a graduate student even though some weaknesses are evident. Demonstrates competency in the key course objectives but shows some indication that understanding of some important issues is less than complete. Methodological or analytical approaches used are adequate but student has not been thorough or has shown other weaknesses or limitations. |
B- |
2.7 points |
Borderline |
Weak work for a graduate student; meets the minimal expectations for a graduate student in the course. Understanding of salient issues is somewhat incomplete. Methodological or analytical work performed in the course is minimally adequate. Overall performance, if consistent in graduate courses, would not suffice to sustain graduate status in “good standing.” |
C+ |
2.3 points |
Deficient |
Inadequate work for a graduate student; does not meet the minimal expectations for a graduate student in the course. Work is inadequately developed or flawed by numerous errors and misunderstanding of important issues. Methodological or analytical work performed is weak and fails to demonstrate knowledge or technical competence expected of graduate students. |
C |
2.0 points |
“ |
“ |
C- |
1.7 points |
“ |
“ |
F |
0.0 points |
Fail |
Work fails to meet even minimal expectations for course credit for a graduate student. Performance has been consistently weak in methodology and understanding, with serious limits in many areas. Weaknesses or limits are pervasive. |
Class Policies#
All submissions must be made from a Jupyter notebook file, following these instructions.
Attendance#
Attending class is mandatory, but most importantly, important. Learning programming requires commitment from the part of the student and the skills are built out of practice. If you miss an experience in class, you miss an important learning moment and the class misses your contribution.
Missing class counts as an absence, regardless of the reason or notifying the instructor(s) beforehand. Missing more than 20 minutes of a class session will be treated as an absence. The first absence is treated as a “freebie”, each subsequent absence will result in a 1% deduction from the overall grade.
If you do miss class, we trust that it’s for a good reason. If you’re sick, please use that freebie and stay home and rest.
You are responsible for getting caught up on what was covered in class. You may want to ask a classmate for notes.
Generative AI#
For this course, generative AI tools like ChatGPT, Copilot, Gemini, etc. are treated the same as other sources. For any code that’s copied, reference the use of the tool and link to the discussion (where supported).
Generative AI tools can be incredibly useful, but the code they provide is often incomplete or wrong. Knowing enough about code to critically interpret their results can turn them from a crutch to a superpower.
SIPA Academic Integrity Statement#
The School of International & Public Affairs does not tolerate cheating or plagiarism in any form. Students who violate the Code of Academic & Professional Conduct will be subject to the Dean’s Disciplinary Procedures.
Please familiarize yourself with the proper methods of citation and attribution. The School provides some useful resources online; we strongly encourage you to familiarize yourself with these various styles before conducting research. Cut and paste the following link into your browser to view the Code of Academic & Professional Conduct and to access useful resources on citation and attribution: https://bulletin.columbia.edu/sipa/academic-policies/
Violations of the Code of Academic & Professional Conduct should be reported to the Associate Dean for Student Affairs.
SIPA Disability Statement#
SIPA is committed to ensuring that students registered with Columbia University’s Disability Services (DS) receive the reasonable accommodations necessary to participate fully in their academic programs. If you are a student with a disability and have a DS-certified accommodation letter, you may wish to make an appointment with your course instructor to discuss your accommodations. Faculty provide disability accommodations to students with DS-certified accommodation letters, and they provide the accommodations specified in such letters. If you have any additional questions, please contact SIPA’s DS liaison at disability@sipa.columbia.edu or 212-854-8690.