Kevin Wayne - Princeton University
In this assignments, students create a Purple America map to visualize U.S. presidential elections. The map is a mashup of geographic and election return data, where each county is colored in a shade of red, green, and blue, according to the proportion of votes received by the Republican, Independent, and Democratic candidates. The results reveal that the U.S. is not as polarized as some political pundits would have us believe.
purple-america.html – Assignment handout
PurpleAmerica.pdf – Slides about this assignment (Kevin's Nifty SIGCSE talk)
purple-america-data.zip – Geographic and election return data files (5MB)
Summary | Students write a program to visualize U.S. presidential election results. |
Topics |
Data visualization, graphics, parsing data files, object-oriented programming, associative arrays. |
Audience |
Students late in CS 1, after they know how to use graphics and how to parse data from a text file. |
Difficulty |
Moderate. |
Strengths |
Students generate striking visualizations, using real data (and no starter code). |
Weaknesses |
Real data can be messy, so we have pre-scrubbed the data (e.g., Kings County and the Borough of Brooklyn refer to the same geographic region in New York). Having students access in their original formats proved too cumbersome. |
Dependencies |
Works well with the graphics library from Introduction to Programming in Java but any graphics library that can draw filled polygons should suffice. The assignment is well suited to object orientation and associative arrays, but neither is required. |
Variants |
The assignment offers extensive opportunities for extensions, ranging from screen scraping to map projections to GUIs. |