This project is about football. More specifically, it is about turnovers in football. A turnover in football is when one team mistakenly gives the football to the other team. There are two basic ways this happens: a player with the ball drops it and the other team jumps on top of the loose ball, or a pass is caught by the other team. The value (number of turnovers by the losing team minus number of turnovers by the winning team), is "turnover differential" or "turnover margin."
We will provide a data file in which each line, for our purposes, is
int turnoverDiff String otherStuff
The program will read the data file and present a Swing GUI with the following major parts:
1. An "underlying data" part that shows the dataset's low value, high value, and number of data points.
2. A "user section," that lets the user enter floor and ceiling values, and shows the number of data points in that subset. Floor and ceiling values will be inclusive.
3. A “results” section that shows the number of games below the floor, in between the floor and ceiling, and above the ceiling.
Some possible questions this UI could shed light on are
number of games in which turnover differential had no affect on the outcome: floor = 0, ceiling = 0.
number of games where the winner had a positive turnover differential (floor = 1, ceiling = data set high value) versus the number of games with a negative turnover differential (floor = data set low value, ceiling = -1).
Design constraints:
Students should separate the Swing UI from the data analysis engine. The data store (DataSet) keeps the data, supplies the low and high values, and the number of data points above, below and in between the floor and ceiling. It has no user knowledge or interaction at all.
The Swing UI uses this data store for its analysis without (much) understanding that we're talking about football games verses "high temperatures for days in January." (Maybe the text labels will be different, but not the data manipulation.)