CIT591-Philadelphia-Bike-Share-Data-and-Jeopardy

Part 1 - Philadelphia Bike Share Data and Jeopardy

Analyzing Data from the Internet: Real-world data sets are becoming increasingly available for a large variety of domains. E.g., www.data.gov has datasets ranging from education and agriculture to manufacturing and energy. https://www.opendataphilly.org/ provides a lot of datasets for the Philadelphia region.

For this request, we will use the Indego Bike Share Data on bike rentals and trips in Philadelphia. You
can download the datasets and read more about what’s available here https://www.rideindego.com/about/data/. In particular, you’ll need to download and use the following two files:

  1. Trip Data for the third quarter of 2016
  2. Station Table

You’ll write a program in Java to read and analyze this information Once you have a basic program that can read in the data files, use it to answer the following questions. Describe in detail the algorithm you used for each question and the answers in your readme.txt file.

  1. How many Walk-Up trips were there in 2016?
  2. How many stations that had a Go-Live Date in 2015 are still Active?
  3. What percentage of trips started in Rittenhouse Square?
  4. What percentage of trips made by Indego30 riders are round trips?
  5. What is the ID of the bike that has traveled the most in terms of duration?
  6. On 8/3/16 at 7:00am, how many bikes were being used?
  7. Print all the trip information for the longest trip by distance. To make things easier (and not worry about spherical geometry), we’ll assume that the latitude and longitude are points in 2-d space and use Euclidean distance.
  8. Print the list of trip ids of all trips that involved a station which was the only station to go live on its respective go-live date.
  9. Wild card - come up with an interesting question. List the question and find the answer to it.

Software Design: An important part of this request is designing your classes and methods. Using the “Nouns and Verbs” approach and keeping good design principles in mind, create CRCs. This should be done before you start implementing your code in Java and you need to submit the original CRCs as part of the submission.

When you start implementing your code, it’s perfectly fine to go back and change the design, if needed.

You should explain what you changed and why in the readme.txt file.

Note: For the italicized parts in the above, your code should be able to deal with any similar input (e.g., from a user). This should not be hard coded.

Part 2 - Extra Credit

In addition to the questions above, answer the following questions:

  1. Stations can be located using the longitude and latitude coordinates provided in the dataset. We can define “closeness” as follows: Two stations are considered close to each other if the average difference between their longitudes and latitudes, i.e., (difference longitude + difference latitude) / 2, is less than 0.02 points. Find all pairs of stations that are considered close to each other.
  2. What is the least popular end station?
  3. Wild card - come up with an interesting question. List the question and find the answer to it.
    As before, for the EC part, you cannot have any help from the TAs/instructor.

Submission Instructions

We recommend submitting the theory part electronically also. However, you can turn in a physical copy at the start of class, if you prefer. Please do not print out the Java source.

In addition to the theory writeup, you should also submit a text file titled readme.txt. That is, write in plain English and instructions for using your software. You should also include explanations/rationale for why you chose to design your code the way you did and whether you deviated from your original design and why. The readme.txt file is also an opportunity for you to get partial credit when certain requirements of the request are not met. Think of the readme as a combination of instructions for the user and a chance for you to get partial credit.

Please create a folder called YOUR_PENNKEY. Places all your files inside this - theory writeup, the Java files, the CRCs, the readme.txt file, the ec.txt file. Zip up this folder. It will thus be called YOUR_PENNKEY.zip. So, e.g., my request submission would be swapneel.zip. Please submit this zip file via canvas.