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
|