CS101 - Homework 9: Data Analysis

Section 001: 55 points
Section 002: 45 points

Updates: None

Answer the questions stated in the following exercises by submitting plain-text or Java source code (.txt and .java extensions respectively) as stated in the exercises through NYU Classes. No word (.doc/.docx/etc.) or rich-text (.rtf) files please (in your text editor do "Save file as plain-text"). Java programs should be just the Java source code (not your .class files or Eclipse workspaces) unless otherwise stated.

In all files submitted include a documentation header using comments which include:

 * [Description of the class file]
 * @author: [Your Name]

Points will be deducted for bad coding style (up to 25% of your grade), so:

For more details regarding good coding style guidelines see the grading criteria.

Assignment Details

This assignment is broken into two parts.

Part 1: Data Mining and Data Analysis

Regular students: 30 points
Honors students: 40 points

Today more data is available than in any other time in the history of the world, and the amount of data being produced and collected is growing every day. Almost every organization is doing some form of data mining or data analysis. NYC Open Data provides a vast quantity of freely and publicly accessible data that we can use to do data mining and data analysis on.

Your Job: Choose a tabular data set from NYC Open Data and allow a user of your program to do some basic data mining on it.

Note: You are free to massage the data before using it as input to your program.

Hint: You can download data from NYC Open Data in a CSV (Comma-Separated Values) format by clicking on the "Export" link and "Download as".

Example session (user input is in bold):

Welcome to the Campaign Contribution Finder App.
This app mines data from:

We show you individual contributors to any candidate for public office, and how much they gave.

Please enter a candidate's first and last name: Anthony Weiner

Found 1,233 contributors to Anthony Weiner's campaign.  Showing results 1-10:
   Andrea, Mary,     $2,100
   Asher,  Mein,     $21
   Butter, Kyle,     $299 
   Fisher, Joel,     $36
   Gangi,  Roy,      $1
   Katz,   Harry,    $984
   Lau,    Julia,    $50
   Pagani, Marcos,   $841
   Russo,  Nicholas, $10
   Zelik,  Moshe,    $2
...hit enter to see the next 10...

Minimum Requirements for Regular Students

30 points

Minimum Requirements for Honors Students (Section 1 of the course)

Honors: 10 points
Some extra credit may be awarded for regular students, or honors students who complete multiple parts of this section

Part 2: Recursive Graphics

15+ points (extra credit awarded for impressive or original designs)

Write a Processing based program that will draw graphics using a recursive algorithm to the screen. Your algorithm should differ signficantly from ones we used in class (e.g. if we draw recursive squares in class, do not draw recursive squares and your base conditions must differ from the ones used in class).

There are lots of good ideas:

Extra credit ideas:

Hint: Always approach your base case!


Submit the following items on NYU Classes:

Acknowledgements: Part 1 of this assignment is based on work done by Amos Bloomberg