Program Description
This assignment forms a major part of the assessment (up to 30%) for the Program Design and Implementation
unit. Please keep up-to-date with announcements on Blackboard to ensure that all that is required is submitted at the appropriate time.
Please read this document carefully, as extensions will not be granted due to the misreading of this document. If you are unsure of something, please contact the teaching staff for clarification.
Background
Different organisations throughout the world make large amounts of data publicly accessible for free –
what is commonly known as “open data”. The Joint Research Centre (JRC) of the European Commission is
one such organisation, with a current project gathering information regarding the spread of COVID-19. To find out more about this project, please visit the following GitHub repository (https://github.com/ec-jrc/COVID-19).
One of the outputs of this project is a dataset detailing the active and historical cases of COVID-19 by country and category (available for download at
this link). The dataset is updated frequently (you can see daily updates in the repository) and contains the volumes of cases over time.
The Big Picture
In this assignment, you will design (using pseudocode) and implement (using Java) a program that will allow
users to interrogate a cleaned subset of the data to understand the spread of COVID-19 throughout the
world. In the real world, we may wish to understand all (or most) of the data attributes (i.e. ‘columns’) and
records (i.e. ‘rows’) in the dataset and keep the data up to date each day. However, there is no need to
worry; you can relax, we won’t need to go this far.
You will only need to use the specified extract.
There is a lot of data in the file which can be analysed. An important thing to know is that there
are six different continents where countries can be located within (with notations in brackets):
- Asia (AS);
- Europe (EU);
- Africa (AF);
- South America (SA);
- North America (NA);
- Oceania (OC).
For this assignment, the other important breakdowns are by country and date.
Your program will create knowledge by generating
statistics in response to user requests, using the data within the provided .csv file. The data will need to be processed through the creation of objects and then the appropriate calculations performed.
The Tasks
The following details the tasks that form the basis of the assignment. Please continUe to tfie next page to read tfie tasks.
1. The Data
Here is a screen capture showing a sample of the data that is in the .csv file to be processed. The data will be extracted from the file and loaded into your program for processing.
Note: the data file you have been provided with has been modified, with some data (columns and rows) removed and column names changed. Hence, if you go
to the JRC GitHub repository listed above and download a more up-to-date version, you will need to either delete several columns or ignore them when you process the data.
Figure 1: A screenshot of (a portion of) the data file.
2. Required Classes and Class Fields
For this program, you are required to write two classes:
- CovidRecord class;
- Country class.
The CovidRecord class will have the following class fields (instance variables):
- date (String)
- cumulativePositive (Integer)
- cumulativeDeceased (Integer)
- cumulativeRecovered (Integer)
- currentlyPositive (Integer)
- hospitalized (Integer)
- intensiveCare (Integer)
- country (a Country object)
The Country class will have the following class fields (instance variables):
- iso3 (String)
- continent (String)
- countryName (String)
- nuts (String)
- lat (Real Number)
- long (Real Number)
Note: CovidRecord class contains a Country class as one of its class fields.
You are required to design these classes in pseudocode and implement them in Java to be used within your program.
3. Menu System
As you have done in the practical worksheets, you will implement a menu system that provides the user with the options to select what areas they will carry out
an analysis on and what specifics will be in the analysis.
The first menu will ask users for which grouping they would like to interrogate, where ‘XYZ’ will be replaced with the number of records loaded:
Welcome to the JRC COVID-19 Analysis Program. There are a total of ‘XYZ’ records loaded. Please make a selection from the Menu below to choose which area (or date) to analyse:
> All countries
> Countries in South America
> Countries in North America
> Countries in Oceania
> Countries in Asia
> Countries in Africa
> Countries in Europe
> Enter a Country
> Enter a Date
Enter selection:
You are required to design this menu in pseudocode and implement it in Java within your progra
DescriptionIn this final assignment, the students will demonstrate their ability to apply two ma
Path finding involves finding a path from A to B. Typically we want the path to have certain properties,such as being the shortest or to avoid going t
Develop a program to emulate a purchase transaction at a retail store. Thisprogram will have two classes, a LineItem class and a Transaction class. Th
1 Project 1 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of
1 Project 2 Introduction - the SeaPort Project series For this set of projects for the course, we wish to simulate some of the aspects of a number of