Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

Assignment 1: Javascript

COMP 315: Cloud Computing for E-Commerce

March 5, 2024

1 Introduction

A common task in cloud computing is data cleaning, which is the process of taking an initial data set that may contain erroneous or incomplete data, and removing or fixing those elements before formatting the data in a suitable manner. In this assignment, you will be tested on your knowledge of JavaScript by implementing a set of functions that perform data cleaning operations on a dataset.

2 Objectives

By the end of this assignment, you will:

• Gain proficiency in using JavaScript for data manipulation.

• Be able to implement various data cleaning procedures, and understand the significance of them.

• Have developed problem-solving skills through practical application.

3 Problem description

For this task, you have been provided with a raw dataset of user information. You must carry out the following series of operations:

• Set up a Javascript class in the manner described in Section 4.

• Convert the data into the appropriate format, as highlighted in Section 5

• Fix erroneous values where possible e.g. age being a typed value instead of a number, age being a real number instead of an integer, etc; as specified in Section 6.

• Produce functions that carry out the queries specified in Section 7.

Data name   Note

Title   This value may be either: Mr, Mrs, Miss, Ms, Dr, or left blank.

First name   Each individual must have one. The first character is capitalised and the rest are lower case, with the exception of the first character after a hyphen.

Middle name   This may be left blank.

Surname   Each individual must have one.

Date of birth   This must be in the format of DD/MM/YYYY.

Age   All data were collected on 26/02/2024, and the age values should reflect this.

Email   The format should be [first name].[surname]@example.com. If two individuals have the same address then an ID is added to di↵erentiate them eg john.smith1, john.smith2, etc

Table 1: The attributes that should be stored for each user

4 Initial setup

Create a Javascript file called Data_Processing.js. Create a class within that file called Data_Processing. Write a function within that class called load_CSV that takes in the filename of a csv file as an input, eg load_CSV (”User_Details”). The resulting data should be saved locally within the class as a global variable called raw_user_data. Write a function called format_data, which will have no variables are a parameter. The functionality of this method is described in Section 5. Write a function called clean_data, which will also have no parameters. The functionality of this method is similarly described in Section 6.

5 Format data

Within the function format data, the data stored within raw_user_data should be processed and output to a global variable called formatted_user_data. The data are initially provided in the CSV format, with the delimiter being the ’,’ character. The first column of the data is the title and full name of the user. The second and third columns are the date of birth, and age of the user, respectively. Finally, the fourth column is the email of the user. Ensure that the dataset is converted into the appropriate format, outlined in Table 1. This data should be saved in the JSON format (you may use any built in JavaScript method for this). The key for each of the values should be names shown in the ’Data name’ column, however converted to lower case with an underscore instead of a space character eg ’first name’.

6 Data cleaning

Within the function clean_data, the data cleaning tasks should be carried out, loading the data stored in formatted_user_data. All of this code may be written within the clean_data function, or may be handled by a series of functions that are called within this class. The latter option is generally considered better practice. Examine the data in order to determine which values are in the incorrect format or where values may be missing. If a value is in the incorrect format then it must be converted to be in the correct format. If a value is missing or incorrect, then an attempt should be made to fill in that data given the other values. The cleaned data should be saved into the global variable cleaned_user_data.

7 Queries

Often, once the data has been processed, we perform a series of data analysis tasks on the cleaned data. Each of these queries are outlined in Table 2. Write a function with the name given in the ’Function name’ column, that carries out the query given in the corresponding ’Query description’. The answer should be returned by the function, and not stored locally or globally.

Function name   Query description

most_common_surname   What is the most common surname name?

average_age   What is the average age of the users, given the values stored in the ’age’ column? This should be a real number to 3 significant figures.

youngest_dr   Return all of the information about the youngest individual in the dataset with the title Dr.

most_common_month   What is the most common month for individuals in the data set?

percentage_titles   What percentage of the dataset has each of the titles? Return this in the form of an array, following the order specified in the ’Title’ row of Table 1. This should included the blank title, and the percentage should be rounded to the nearest integer using bankers rounding.

percentage_altered   A number of values have been altered between formatted_user_data and cleaned_user_data. What percentage of values have been altered? This should be a real number to 3 significant figures.

Table 2: The queries that should be carried out on the cleaned data