CMP 161 -- Programming Assignment 2

Due date:
11:59pm, Wed, 3/13/2019

Objectives:

Hypothesis thesis, data collection, visual explanations. This is a less structured assignment wherein you get to form a hypothesis, find data that either supports or counters your hypothesis, and present the results in a convincing visual manner. Allowing more in-depth investigation is one of the keys of this assignment.

Update:

The visualizations of the data sets below have been moved to this archive site. Data in csv format, and county maps are available still.

Description:

The November mid-term elections in 2018 included several ballot measures in California. The election results of these ballot measures can be found in this Semi-Official Election Results site. The same site provides some basic map-based visualization such as which counties favor a democratic vs a republican governor, or which counties favor the repeal of the fuel tax. Note that the percentage split between yes/no votes for each county can be obtained by simply moving your mouse over the county.

Your task is to provide a more in-depth analysis of the election results. You could couch this as a purely academic exercise to learn more social behavior, or as a means to understand the psychology of why certain counties voted in a certain way and better prepare advertisements/arguments for future elections.

You don't need to analyze the entire result, but you can pick and chose. As an example, you may be wondering why the "inland" and also what appears to be mostly republican-leaning counties oppose proposition 12. You can form a hypothesis, of say, that these counties have more livestock than agriculture as source of income, perhaps include other factors such as accessibility to water, transportation costs, etc. You will then search for relevant data to test your hypothesis, and present those in conjunction with the results from the election website. Provide some interactivity for the user to either filter different contributing factors, tests the significance of different factors, and drill down to the supporting data.

There is no specification as to what programming language or software package to use to complete this assignment. Feel free to chose the best tool for the job.

Documentation

Each and every assignment should have proper documentation. Documentation includes: (i) code documentation, (ii) user documentation, (iii) technical writeup of the assignment. The 1st two items are self-explanatory and you should have experience with these from previous classes.

The 3rd item is a short technical paper, about 4-6 pages long, that describes the problem, your approach, and results. Especially for this assignment, the 3rd item is very important and accounts for half of the grade. Add relevant discussions about visualization choices that you've made, advantages/disadvantages of different methods, etc.

The technical paper should be a pdf file. Single spaced. You can use a single column or a double column format. Font size should be 8 or 10 points. If using single column, you can conserve space by laying out your images in a row (i.e. a row of images across the page).

Items To Submit:

Grading:

This program nominally accounts for 20% of your final grade. Programs turned in at least a full day early will earn 1% bonus credit. Late programs will not be accepted. Bonus credits may be accumulated up to a total of 50% toward program and final project credits. This program is graded 50% for functionality and correctness, and 50% for experimentation, readability, documentation/writeup. Additional points may also be earned for extra features.

Submission:

Submission must be done using the submit utility from CATS (e.g. unix.ic.ucsc.edu).

Last modified Sunday, 02-Jun-2019 10:38:32 PDT.