COMP1111 Programming (Gold) 20-21


Summative Assessment

Programming Assignment 1: Client-side scripting


Overview

Lecturer/Marker

Suncica Hadzidedic

[email protected]

Room E231

Hand-out date: 16 November 2020

Components marked: documentation, code

Total marks: 100

Weight: 40% of module mark

Expected workload: 15 days, 3-4 h/day = 60 h


Submission instructions

Hand-in/submission deadline            25 January 2021, 2 p.m.

Marks returned                                 22 February 2021

                                                       ●  DUO – Turnitin: documentation (converted into PDF file).

Format

                                                       ●  DUO: compressed (.zip or .rar) file comprising - coderesource files, readme .txt.


1. Learning Outcomes

Subject-specific Knowledge

  Interaction between JavaScript programme and the Document Object Model (DOM).

  Using control statements to loop and make decisions.

  Understanding of the nature of imperative programming in the object-oriented style.

  Knowledge and understanding of good programming practice (e.g. reuse, documentation and style).

Subject-specific and Key Skills - students will be able to demonstrate:

■  an ability to realise solutions to problems as working JavaScript programs

  an ability to use software tools related to programming

  an ability to recognize and apply the principles of abstraction and modelling

  an ability to communicate technical information.


2. Requirements

I. Develop a JavaScript programme that will:

■  include control statements, objects and include get/set operations

  include JavaScript classes, with: constructors

  showcase the principles of abstraction, modelling, prototypal inheritance

  apply imperative programming principles

■  apply DOM

II. Consider user interfacing

  present your programme as a web application, by writing a set of HTML pages and CSS files

  adapt your web application for mobile devices

III. Apply good programming practices by:

  using tools that support software development, i.e. web frameworks, Git, etc.

  demonstrating code reuse

  writing documentation - communicate technical information about your system by using JSDoc

  accounting for code quality (you can use ESLint rule below, standard or recommended).

ESLint rules for code quality: You can use this .eslintrc.js

module.exports = {

"extends": "standard",

"rules": {

"semi": [2, "always"],

"indent": "off"

}

}

Application domain

Develop a web application that will provide the latest information on Covid-19 in a specific area in the UK (or your country of origin). Note that you will not be evaluated on your data analytics skills; the focus here is on assessing your client-side scripting knowledge and skills.

Note: Alternatively, you can look for Covid-19 information with a greater focus on e.g. biological or medical aspects.

The application has to include the following functionality:

■  input interface, with an option for the user to input information (input text, select from options, etc.), e.g. on location, age, health condition, etc.

  and output interface, that will use a variety of methods to present output information to the user, including most of the following:

-  textual content

-  images, videos

-  image maps

-  maps

-  interactive visualizations – graphs, charts, diagrams.

Mandatory content to include on your web page/application:

■  number of infected and death cases (trends over a certain period of time) -> based on that to label the area as low, medium or high risk;

  government advice, restriction measures for individuals to follow (work, socializing, etc.);

  maps with the most affected locations/clusters;

  availability of hospitals.

Additionally, select any two of the following to also include:

  shops, restaurants, cafes, pubs opening times and other measures they abide by;

  effect on public transport services;

  effect on economy/business -> trends over a certain period of time;

  effect on population’s mental health -> trends over a certain period of time.

For the Covid-19 data to feed into the application, it is understandable it might not be the “latest information”. Also, you can merge several datasets if no single one provides all the data you want your application to give information on, or generate synthetic data for the variables/attributes you might be missing. You can find datasets on:

■  Office of National Statistics

■  AMiner

■  Registry of Open Data on AWS

  E.g. https://registry.opendata.aws/aws-covid19-lake/

  Google Dataset Search

■  Awesome public datasets

  kaggle

  opendatasoft

■  Microsoft Research Open Data

  UK data service


3. Marking Criteria

The following are four marking criteria and the total points that can be obtained for each criterion.


Mark /100
System functionality
30
-  The system did what it was expected to do (including: accepting input, processing data, presenting information in various formats)
-  Demonstrated use of: control statements, classes, abstraction, modeling, imperative programming, DOM
Code quality
25
-  Code quality was accounted for (including: reliability, testability, resolving defects/bugs, consistency, portability, code length)
-  Appropriate parameterization was used, including defaults
-  HTML page was valid
-  There is evidence of use of software development tools, e.g. Bootstrap framework
Documentation
25
 Usability and clarity
-  All methods and parameters were documented
-  Enough detail was provided to use the code without having to read it
-  Code would be clear to understand for maintainers
-  Referencing and acknowledgment of the source of original code and/or data (including licenses)
Interface
20
 Presentation, design and usability of user interface:
-  Interface style and design was attractive and appropriate for the domain of application (colours, fonts, page element position, etc.)
-  Appropriate on-page controls/interactivity were applied
-  Interface was usable: easy to use, easy to learn, intuitive, interactive, responsive