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 |