[Solved] COSC2452 Assignment3

$25

File Name: COSC2452_Assignment3.zip
File Size: 188.4 KB

SKU: [Solved] COSC2452 Assignment3 Category: Tag:
5/5 - (1 vote)

There is no book containing the music to every song that will be written. There is no book containing the answers to every mathematical calculation that we will need to perform. Similarly, there is no book, set of lecture slides, video, etc. that will give a programmer (you) the solutions to every programming problem. A programmer is able to take fundamental programming concepts and, with the experience they have gained from analysis, evaluation and problem solving, put them together to solve new problems.

A programmer is also a developer who can plan, minimise risks, iteratively develop, test and deliver programs to a client. As a part of this, a programmer should be able to show snapshots of the various stages of the development. The snapshot should be a runnable Java program that does not need to have all of the features that will be there in the final version of the program.

For this assignment, assume that you are a freelance programmer creating a small tool or a utility program of your own choosing to add to your portfolio of simple Java applications. With this project you aim to demonstrate to potential employers or clients how you can:

  1. Create a small tool or utility program using (exclusively) a limited set of fundamental code concepts.
  2. You are able to analyse and evaluate your implementations against possible alternatives in your code documentation.

Note: You must not just throw in the concepts to your program just because they need to be there; it should be clear from the code why a certain concept should be there and you must further explain these through your comments. You will also need debug your code on your own and document any issues, etc. You are given marks on your ability to fulfill all requirements of this document.

You can convert your Assignment 2 program to suit the requirements of Assignment 3.

If there are questions, you must ask via the CanvasDiscussionsAssignment 3 forum in a general manner (replicate your problem in a different context in isolation before posting). Do not show your assignment code to anyone as this could violate Academic Integrity requirements set by the University.

  1. Assessment Criteria

This assessment will determine your ability to:

  1. Follow coding, convention and behavioral requirements provided in this document and in the lessons.
  2. Independently solve a problem by using programming concepts taught over the first several weeks of the course.
  3. Write and debug Java code independently.
  4. Document code.
  5. Ability to provide references where due.
  6. Meeting deadlines.
  7. Seeking clarification from your supervisor (instructor) when needed via discussion forums.
  8. Create a program by recalling concepts taught in class, understanding and applying concepts relevant to solution, analysing components of the problem, evaluating different approaches.
  1. Learning Outcomes

This assessment is relevant to the following Learning Outcomes:

  1. Demonstrate knowledge of basic concepts, syntax and control structures in programming
  2. Devise solutions to simple computing problems under specific requirements
  3. Encode the devised solutions into computer programs and test the programs on a computer
  4. Demonstrate understanding of standard coding conventions and ethical considerations in programming.
  1. Assessment details

Note: Please ensure that you have read sections 1-3 of this document before going further.

You must meet Functional Requirements (4.1), Code+Justification Requirements (4.2) and Documentation Requirements (4.3) to obtain the full mark for this assignment. You can also attempt the Bonus Requirements (4.4). You may receive 0 (zero) if you do not meet the submission requirements (see section 6).

4.1) Functional Requirements:

Important: The functional requirements below must be implemented and justified by following the 4.2 Code+Justification requirements.

F1) Allows the user to store an arbitrary number of records. May store more than 1 type of record.

F2) Allows the user to add, remove, modify such records.

F3) Allows the data for the records to be loaded from files and saved later in to a file.

F4) Has no restrictions on how many user interfaces can be used simultaneously in the system.

Tip: As you are not given marks for creativity or the usefulness of the program, do not spend too much time thinking of what is a

good program. What is good depends on how well the code is written, justified and documented (refer to sections 4.2 and 4.3).

4.2) Code+Justification Requirements (20 marks):To receive marks for Code+Justification requirements, you must use the following Application.java template and code concepts to make a functionally cohesive program that also meets the functional requirements.
public class Application { private BackEnd backEnd; private FrontEndGTerm uiGT; private FrontEndConsole uiConsole;public Application() { this.backEnd = new BackEnd();this.uiGT = new FrontEndGTerm(this.backEnd); this.uiConsole = new FrontEndConsole(this.backEnd);}public static void main(String[] args) {Application app = new Application();}}
The above file must not be changed by it should be possible to create multiple FrontEndGTerm objects to use the same BackEnd.Concepts must be used exclusively as demonstrated by Gayans weekly live lectures in this course offering. Code without justification in the given format would attract no more than 50% of the mark allocated for that component. Comments without code will not attract any marks.An important note on Java code validity: A program with even one red dot (compilation error) cannot be tested and therefore will attract 0 marks for the entire submission. Test your code thoroughly.
Code concept Code requirements below must also be justified as required
CJ1) Muti classObject OrientedCode(0..6 marks) Requirements: +3 marks each for each + below when implemented as shown during Gayans live lectures+ Correctly uses the provided Application.java template to organise code by following OO concepts covered in main weekly live lectures by Gayan. (Application+BackEnd+FrontEndGTerm+FrontEndConsole and additional justifiable class(es) in the BackEnd) + Must create at least one more class to reduce code/logic duplication and have an array of this type in the BackEnd.Other deductions: -2 marks for each below The Application class submitted (the version provided in this document will be added by marker at time of marking) or has more than one class per submitted .java file. Application class has been split further in to additional class(es). One or more FrontEnd classes have been split further in to additional class(es). GTerm or user interface mentioned outside of FrontEndGTerm class. Scanner, System.out, System.err, etc. mentioned outside of FrontEndConsole class. Has at least one object member variable that is not explicitly private.
CJ2) Other general (0..1 marks) Requirements: +0.5 marks each for each + below when implemented as shown during Gayans live lectures+ Descriptive identifier names which are relevant to their purpose. Follows naming conventions shown in lectures, other standard class materials and common ones in the Java API.+ Consistent formatting used. Comments and justifications start on the line before the documented block/statement (e.g. no in-line comments).Other deductions: -0.5 marks for each below Includes irrelevant or unreachable code+comments. Uses break, continue, System.exit or similar branching anywhere in the code Uses return in the middle of methods- Has at least one mention of static. Has at least one mention of static. Paths contain folders/slashes (e.g. addImageIcon, file I/O, etc.)
CJ3) Variables (0..1 marks) Requirements: +0.5 marks each for each + below when implemented as shown during Gayans live lectures + Demonstrates understanding of suitability of primitive data types vs. class.+ Declares variables in blocks where they need to be declared (avoids unnecessary sharing of declarations)Other deductions: -0.5 marks for each below Uses variables when literals would have been suitable. Uses literals when variables would have been suitable.
CJ4) Methods (0..1 marks) Requirements: +0.25 marks each for each + below when implemented as shown during Gayans live lectures + Each class has exactly one constructor+ Methods are created when absolutely necessary or when they reduce duplication of code. + Methods return values when suitable (e.g. accessor/get methods) + Methods take parameters when suitable (e.g. mutator/set methods).Other deductions: -0.25 marks for each below Not all object member variables, arrays, etc. declarations are explicitly initialised in this constructor before any other operations (e.g. there are no equal signs where member variables are declared). Has examples of methods referring to an object member variable without using this. (this dot)
CJ5) User interface(FrontEnd) classes(0..2 marks) Requirements: +1 marks each for each + below when implemented as shown during Gayans live lectures+ FrontEndGTerm uses GTerm exclusively for inputs and takes most, if not all, inputs via text fields/text areas/password fields (vs. getInputString). FrontEndGTerm uses GTerm exclusively for outputs and displays most, if not all, outputs within the GTerm window (as opposed to using .showMessageDialog)+ FrontEndConsole uses Scanners .nextLine() exclusively for inputs (e.g. must not use other .next methods).FrontEndConsole shows text-based menus and formats outputs in to tables, etc. as shown in weekly live lectures.Other deductions: -1 marks for each below FrontEnd classes do not offer an identical set of functionalities to the end-user. A FrontEnd class has awareness of another FrontEnd class/object. A FrontEnd class has awareness of a custom class/object that should only be used by BackEnd (e.g. A FrontEnd must not communicate with a custom class type used by BackEnds primary array.) Creates multiple Scanner objects.
CJ6) Conditional execution and repetition (0..1 marks) Requirements: +0.5 marks each for each + below when implemented as shown during Gayans live lectures+ Uses if/else/else if appropriately and exclusively for non-repeating conditional execution and at least one reachable else if statement.+ Uses while-loops appropriately and exclusively for repetition. Loop condition describes all situations under which the loop will repeat and condition fails eventually.Other deductions: -0.5 marks for each below Conditions include tautologies. Redundant conditions. Unreachable blocks.
CJ7) Arrays(not ArrayLists, etc.)(0..2 marks) Requirements: +1 marks each for each + below when implemented as shown during Gayans live lectures+ All array manipulation performed using loops, if-statements, etc. (as shown in weekly live lectures by Gayan)+ The size of the array mentioned in CJ1.Addition.2 should be able to vary at run-time. Run-time expansion allowed.Other deductions: -1 marks for each below Uses Arrays class Uses System.arraycopy Uses other classes (not covered in weekly live lectures) for array manipulation
CJ8) Fileinput+output fromBackEnd(0..6 marks) Requirements: +3 marks each for each + below when implemented as shown during Gayans live lectures + Allows the user to load records from files specified at run-time. + Allows the user to save all data to a file specified at run-time.Other deductions: -1 marks for each below Does not use CSV when appropriate. File reading code not in the most appropriate class. File writing code not in the most appropriate class. Does not use only BufferedReader+FileReader when reading. Does not use only BufferedWriter+FileWriter when writing. Keeps files open when not necessary to do so.
Justification RequirementsNote: You will not receive full marks for the CJ requirements unless each occurrence is justified as required below.
Type of code Compare and justify your choice over other possible alternative
Declarations(also applies to class and method definitions) Identifier names Data typesLocality of declaration (why object-level vs. parameter-level vs. method-level vs. block-level, etc.).
Contents of code blocks Formulations (is there a simpler way to meet requirements without creating this code block?)Inclusions (what you have added and why?)Sequences (why are these in this order?)Exclusions (what you havent added and why)
Conditions Formations of the logic
  • Documentation Requirements (5 mark penalty if not met):

Important note: Documentation must match with testable, functional and justified code to attract marks.

D1. Create an illustrated PDF user guide (one file). Must have side-by-side instructions on how to perform the same functionalities on both interfaces. Shows screenshots of sample inputs. Shows screenshots of corresponding sample outputs. Must include examples of using files to load and save. Include instructions on what the user can and cannot do (e.g. what they can and cant input). Does not include any references to code as the guide is intended for a user who is not a programmer. This document needs to be professionally presented, more structured, starting with a table of contents, page numbers, clearly marked sections, etc.

  • Bonus Requirements

Important note: The total mark of A1+A2+A3 is capped at 45 (for a full break-down, see CanvasAssignments). To obtain any bonus marks, you need to be able to get full marks for the non-bonus/standard requirements of this assignment.

B1: Submit your final version of Assignment 3 one day before the deadline for +0.1 marks or 2 days before the deadline for +0.2 marks, etc.

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[Solved] COSC2452 Assignment3
$25