COMP2140 Web/Mobile Programming A1

Hello, if you have any need, please feel free to consult us, this is my wechat: wx91due

COMP2140 Web/Mobile Programming

A1 - Functional Javascript Programming Assessment Item (Overall Weighting 30%)

Attention to Detail (30%)

No Marks

Half Marks

Full Marks

The submission to Gradescope does not include a project folder containing

JavaScript file(s), missing both the static data files and cached real-time data.

0.0

The submission to Gradescope includes a project folder containing JavaScript file(s), but is missing either the static data files or cached real-time data.

2.0

The submission to Gradescope includes a project folder containing JavaScript file(s),

the static data files and cached real-time data.

4.0

The project folder does not feature an appropriate file/folder naming/structure, and the starting file is difficult to locate.

0.0

The project folder features a mostly appropriate file/folder naming/structure.

2.0

The project folder features the specified file/folder naming/structure, with a starting file that is easy to locate.

4.0

The app does not run via Node.js in the terminal, requiring significant modifications to get it running.

0.0

The app does not run via Node.js in the terminal, but only requires minor modifications to get it running.

2.5

The app runs via Node.js in the terminal, without any issues.

5.0

The user-facing portion of the app

demonstrates little to none of the expected functionality.

0.0

The user-facing portion of the app

demonstrates half of the expected functionality.

6.0

The user-facing portion of the app

demonstrates all of the expected functionality.

12.0

No Planning Document is provided.

0.0

The Planning Document details some of the expected data joins.

2.5

The Planning Document details all expected data joins.

5.0

Functional Programming (40%)

No Marks

Half Marks

Full Marks

Does not demonstrate an understanding of functional programming techniques,

relying too heavily on imperative logic with side effects.

0.0

Demonstrates some understanding of functional programming techniques, with occasional reliance on imperative with some management of side effects.

2.5

Demonstrates a strong understanding of functional programming techniques,

balancing the use of declarative &

imperative logic where appropriate and managing side effects.

5.0

Does not demonstrate an understanding of declaring, defining & transforming immutable data, relying too heavily on redefining values.

0.0

Demonstrates some understanding of declaring, defining & transforming

immutable data, with occasional reliance on redefining values.

2.5

Demonstrates a strong understanding of declaring, defining & transforming immutable data.

5.0

Does not demonstrate an understanding of recursive techniques, relying too heavily on iterative logic over recursive logic.

0.0

Demonstrates some understanding of recursive techniques, with occasional reliance on iterative over recursive logic.

2.5

Demonstrates a strong understanding of recursive techniques, balancing the use

of recursive & iterative logic where

appropriate.

5.0

Does not demonstrate an understanding of modularity through nested functions, composition and function chaining where variable scoping is too broad.

0.0

Demonstrates some understanding of modularity through nested functions, composition and function chaining, and variable scoping could be narrowed.

5.0

Demonstrates a strong understanding of modularity through nested functions, composition and function chaining including appropriate variable scoping.

10.0

Does not demonstrates any ability to develop a modular dataframe library or includes no required functionality.

0.0

Demonstrates some ability to develop a modular dataframe library with partial functionality to load CSV files, join, select columns, find distinct column values and filter.

2.5

Demonstrates strong ability to develop a modular dataframe library with full functionality to load CSV files, join, select columns, find distinct column values and filter.

15.0

Asynchronous Programming and Integrations (15%)

No Marks

Half Marks

Full Marks

Does not use Node.js modules to support prompting, Fetch API, CSV parsing, and

file system access.

0.0

Uses Node.js modules to support

prompting, Fetch API, CSV parsing, and file system access, but could be better integrated into the code.

1.0

Integrates Node.js modules, or

demonstrates suitable bespoke

alternatives, to support prompting, Fetch API, CSV parsing, and file system access.

2.0

Demonstrates little to no use of

asynchronous programming techniques, or does not use Promises and appropriate

syntax (e.g. async/await) to action them.

0.0

Demonstrates an occasional use of asynchronous programming techniques, using Promises, and appropriate syntax

(e.g. async/await) to action them.

1.5

Demonstrates a holistic approach to

asynchronous programming, using

Promises, and appropriate syntax (e.g. async/await) to action them.

3.0

Does not integrate live data derived from the web API proxy (using the Fetch API) and local data via CSV files.

0.0

Integrates live data derived from the web API proxy (using the Fetch API) and local data via CSV files, but it could be more selectively filtered.

5

Integrates live data derived from the web API proxy (using the Fetch API) and local data via CSV files, with selective filtering applied.

10.0

Code Quality and Testing (15%)

No Marks

Half Marks

Full Marks

Demonstrates little to no consideration of an easy to understand program structure,

with variables & functions not following a consistent naming scheme.

0.0

Demonstrates some consideration of an easy to understand program structure, with variables & functions following a consistent naming scheme.

1.0

Demonstrates consideration of an easy to understand program structure, with variables & functions following a consistent naming scheme.

2.0

Demonstrates little to no consideration of code neatness (e.g. tabbing, whitespace)

or consistency (similar to common style guides).

0.0

Demonstrates some consideration of code neatness (e.g. tabbing, whitespace) and consistency (similar to common style guides).

1.0

Demonstrates consideration of code neatness (e.g. tabbing, whitespace) and consistency (similar to common style guides).

2.0

Demonstrates little to no understanding of the code through comments, with comments above function declarations excluding @param and @returns.

0.0

Demonstrates some understanding of the code through comments, with comments above function declarations including

@param and @returns.

1.0

Demonstrates understanding of the code through comments, with comments above function declarations including @param

and @returns.

2.0

Demonstrates little to no use of shorthand syntax (e.g. arrow function expressions)

where appropriate.

0.0

Demonstrates some use of shorthand syntax (e.g. arrow function expressions)

where appropriate.

1.0

Demonstrates regular use of shorthand syntax (e.g. arrow function expressions)

where appropriate.

2.0

Demonstrates little to no understanding of creating test cases in Jest.

0.0

Demonstrates some ability to write tests but not all test cases are covered using Jest.

3.5

Demonstrates strong ability to write comprehensive test cases using Jest.

7.0

发表评论

电子邮件地址不会被公开。 必填项已用*标注