根据作业提供的Trip data,编写程序分析数据,最后回答关于数据的十几个问题即可。
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 assignment, 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:
- Trip Data for the third quarter of 2016
- 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. - How many Walk-Up trips were there in 2016?
- How many stations that had a Go-Live Date in 2015 are still Active?
- What percentage of trips started in Rittenhouse Square?
- What percentage of trips made by Indego30 riders are round trips?
- What is the ID of the bike that has traveled the most in terms of duration?
- On 8/3/16 at 7:00am, how many bikes were being used?
- 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.
- 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.
- Wild card - come up with an interesting question. List the question and find the answer to it.
Software Design: An important part of this homework 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:
- 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.
- What is the least popular end station?
- 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 assignment 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 homework submission would be swapneel.zip. Please submit this zip file via
canvas.