Skip to content

CAPP 30239: Data Visualization for Policy Analysis

Course Description

Data visualizations are powerful tools that can be used to explore, explain, convince and mislead. When working with data in a policy context, the clarity of a visualization and choices made during its design can have repercussions on the people that find themselves represented by pixels on a screen.

This course introduces important theoretical concepts for data visualization, focusing on explanatory visualization— building visualizations to explain or persuade. We will cover theory related to visualizations like perception of color and common visualization programming paradigms, primarily grammar of graphics.

In addition to the theory-focused content the course will have a significant programming component: starting with a major Python visualization library (Altair), and providing an introduction to the ubiquitous D3 library. The latter will require picking up a bit of HTML, CSS, and JavaScript as we go.

What to Expect

While lecture content will focus on theoretical concepts, expect to write a significant amount of code independently.

You will be writing quite a few visualizations in Python, and may need to clean & prepare some data as a prerequisite to producing your visualizations.

In the latter half of the course we will cover some HTML/CSS/JavaScript, with the expectation that you will spend some time outside of class learning these from online materials.

Two major assignments will have you building out a data visualization portfolio related to policy areas of your own choosing. These assignments will include peer critique— productive critique and incorporation of feedback is essential to building effective visualizations.

Goals

  • Understand & appreciate what makes a good data visualization.
  • Learn practical visualization techniques that will apply in any language & library.
  • Build a portfolio of static & interactive visualizations using real-world policy data.
  • Gain exposure to useful libraries in Python and JavaScript.

Prerequisites

  • CAPP 30122 (Computer Science with Applications 2) or equivalent
  • CAPP 30235 (Databases for Public Policy) or equivalent

Course Staff

James Turk

Email: jturk@uchicago.edu

Office: JCL 398E

Teaching Assistant: Nguyen Tran

Office Hours

Who Where When
James Turk JCL 398E Tuesday 3:30-5:00pm
James Turk JCL 398E Thursday 3:30-4:30pm
Nguyen Tran JCL JCL Common Area 2A Friday 10:30am-11:30am
Nguyen Tran Zoom (See Ed Post) Saturday 10:30am-11:30am

Note

James also has openings for appointments available: https://cal.com/jamesturk/autumn-office-hours

Please note that these are limited and they are shared between multiple classes. Please be considerate in your usage and favor the drop-in office hours for help on assignments.

Schedule

Time: Tuesday & Thursday, 2:00pm-3:20pm

Location: Ryerson 276

Week Tuesday Thursday
1 Sep 30
The Value of Data Visualization
Oct 2
Grammar of Graphics with Altair
2 Oct 7
Perception and Color
Oct 9
Color on the Screen
3 Oct 14
Chart Design
Oct 16
Models of Good Visualization
4 Oct 21
Evaluation & Critique: Practice Discussion
Oct 23
Narrative
5
Web Week 1
Oct 28
HTML/CSS
Oct 30
SVG
6
Web Week 2
Nov 4
JS
Nov 6
D3
7
Nov 11
Uncertainty
Nov 13
Animation & Interaction
8 Nov 18
Mapping in the Browser
Nov 20
More Animation & Interaction
Thanksgiving No Class
9 Dec 2
Special Topics
Dec 4
Wrap-Up

See Coursework for more details on assignments.

Textbook

There is no required textbook for this class. Instead, readings will be provided to supplement course content.

Software

This course will be using Altair and D3.js for instruction and assignments.

For your project, you will be free to use other libraries.

Pre-approved options:

  • Altair
  • Seaborn
  • plotnine
  • D3 (JS)
  • Vega (JS)
  • P5.js (JS)

If you'd like to use a framework not already on this list, please ask first.

You may not use:

  • matplotlib (except as a dependency to other libraries, like Seaborn)
  • streamlit
  • Plotly Dash

Warning

If you choose a library other than Altair or D3, please understand that course staff will be more limited in their ability to provide assistance.

Acknowledgments

Thanks to Andrew McNutt and Alex Kale for providing resources that were invaluable in the creation of these materials.