New data sources are a potential goldmine for urban planners and policy makers. But sometimes they are large, sometimes they are messy, sometimes they are awkward to access, and often they are all of these things. In this hands-on course, we’ll develop skills in scraping, processing, and managing urban data, and using tools such as natural language processing, geospatial analysis, and machine learning. We’ll use examples from transit, housing, and equity planning, and build competence in open-source tools and languages such as Python and SQL. We’ll also consider the limits to data science, and the biases and pitfalls that “big data” can entail.

Syllabus for enrolled UCLA students

Learning Objectives

  • Expand your urban data analysis, visualization, and Python skills, regardless of your starting point
  • Identify applications of these techniques to urban planning challenges
  • Know how to read API documentation and where to get more information
  • Understand how to collaborate using git and other software tools
  • Critically analyze the constraints to data science methods, particularly in terms of ethics and causal inference

Course Structure

Each module consists of:

  • Readings, which provide examples of the data science techniques applied to urban planning. Use our course Slack channel to discuss the readings [enrolled students only]. Due each week, before class.
  • Video lectures, which you should watch interactively and experiment with the code. Do this each week, before class.
  • Quizzes, which help you assess your understanding of the lectures. Due each week, before class.
  • Exercises, which we’ll work through in class each week, or if you aren’t enrolled, you can do on your own.
  • Biweekly homeworks, which provide more practice. Due every other Tuesday.

Graded assignments

  • Biweekly homeworks (25%). You must submit at least 4 out of 5 homeworks on time (but please do them all). We’ll spend some time in class on Wednesdays working through the homeworks, so please make a start on it before then.
  • Challenge problems (25%). Most homeworks will include a challenge problem, which is more open ended. You must do at least 2 of these, and (optionally) present one in class.
  • Final project (35%). Working in groups of 2-3, you’ll conceptualize and implement an urban data science project. You’ll submit a proposal (Week 3), and make lightning presentations of your interim (Weeks 6-7) analysis.
  • Weekly quizzes (5%). Make sure to complete each quiz before class on Wednesday.
  • Class participation (10%). Your class participation grade will consider attendance and active participation in class and on Slack.


  • Instructor: Adam Millard-Ball
  • Web design: Natasha Timmons
  • Instructional designer: Mark Kayser
  • Video production and editing: Paul Kimball, Barry Bishop, and Dan Alvarado

Thanks to Juan Matute and Claudia Bustamante, and for support from a UCLA Instructional Improvement Grant.