Module 6 PA Instructions
Module 6 PA Instructions
This assignment completes the project for this course. It builds on the assignments you did in the previous
modules. As usual, you will not submit your code for grading, but you should do it because you'll learn and
it's fun! This time our starter code is simply our solutions to module 5 (minus the optional content) so if you
would like to simply copy your module 5 code over into the module6 files that we provide, please feel free.
As before, we still we recommend you copy in individual methods just to be safe, rather than replacing
whole files.
As before, you'll want the UnfoldingMaps javadoc and the Processing reference page open. IF YOU ARE
WORKING OFFLINE, make sure you've got this downloaded.
Learning outcomes
• Use sorting to answer questions about data sets
1. Find and open the starter code: You will add functionality to the classes you developed in the previous
part of the project: EarthquakeCityMap.java , EarthquakeMarker.java , CityMarker.java ,
CommonMarker.java, LandQuakeMarker.java , OceanQuakeMarker.java. You will find these files (with our
implementations) in the module6 package. You will also find three new files: AirportMap.java,
AirportMarker.java and LifeExpectancy.java. These are files you might use in the extension (step 5,
below). IF YOU ARE WORKING OFFLINE, you should once again make sure the variable offline is set to
true.
2. Compare our implementation to yours. Look at the code and notice any differences between the way
you implemented the functionality in module 5 and the way we did. Find at least one difference between
your code and ours (could be helper method organization, variable names, the way we implemented a
method, etc) and be ready to reflect on it for the quiz.
5. Add your own extension! This is the fun part and the main part of this final programming assignment.
Add any extension you choose to the earthquake program as it stands. You will submit this extension for
peer grading, as described in the Peer Review Assignment at the end of this module, following the
Programming Assignment Quiz.
The only conditions for this piece is that your extension be (1) something you are interested in doing and (2)
something that was not required in any of the previous programming assignments in this course. Also, you
will be asked to submit a Peer Review assignment talking about your extension, so it would be a good idea
to read over the requirements for that assignment before you get started programming. (It's the last
assignment in this module).
We encourage you to get creative, but if you need a little inspiration, here are some ideas you are welcome
to use along two different lines: direct extensions to the earthquake application, and working with other
data sets. Again, these are just ideas. You are not required to use any of them.
These extensions will be a little more difficult than just working within the earthquake application because
you will have to work with new data and understand how it is represented. Depending on what you want to
do, you might even write your own data parsing functions, or modify ours. However, even though these
extensions are challenging, we think they will be a lot of fun.
New data source idea 1: Work with the airport and route data: There are two data files in the data
directory: airports.dat and routes.dat which contain information about all of the airports in the world and
routes between these airports, respectively. There are also two methods in ParseFeed.java for loading the
data in these files, and we provide a starter file AirportMap.java that shows how to use the parser to read in
the data from these files. Once you’ve read in the data, what you do with it is up to you. You might:
• Display all the airports in the world as features, and then display additional information about them
when the user hovers over them.
• Display only a subset of the airports in the world, based on some criteria.
• Display airports, and when the user clicks on one, display the routes out of that airport.
New data source idea 2: Work with data from the World Bank: The World Bank maintains a large
number of datasets with some really interesting international data. You saw Mia work with one such
dataset: life expectancy. We have included this data in your eclipse package as well as a method in
ParseFeed to load its data. We also have a class called LifeExpectancy.java that implements the example
Mia showed in module 3. You cannot use this as your extension, but you can modify it to do something
different, and this would be a fine extension.
If you want to use other data from the World Bank, that’s great too! You can find other data sources here:
http://data.worldbank.org/ You will probably need to add a method to the ParseFeed class to read in that
data you choose. You can do this following the examples that are already there.
Finishing up
Once you've completed your extension, you are done with this programming assignment and almost done
with this course! Go on to take the quiz, write up and submit your peer review assignment, and do some
peer reviews, and that's it. Congratulations!