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.