COSC2542 Introduction To Programming Assignment 3 solution

$29.99

Original Work ?
Category: You will Instantly receive a download link for .ZIP solution file upon Payment

Description

5/5 - (5 votes)

1. Overview
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 Canvas→Discussions→Assignment 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.
Page 1 of 5
,
2. 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.
3. 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.
4. 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();
}
}
Page 2 of 5
,
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 Gayan’s 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 class
Object Oriented
Code
(0..6 marks)
Requirements: +3 marks each for each + below when implemented as shown during Gayan’s 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 Gayan’s 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 Gayan’s 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 Gayan’s 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 Gayan’s 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 Scanner’s .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 BackEnd’s primary array.)
– Creates multiple Scanner objects.
Page 3 of 5
,
CJ6) Conditional
execution and
repetition
(0..1 marks)
Requirements: +0.5 marks each for each + below when implemented as shown during Gayan’s 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 Gayan’s 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) File
input+output from
BackEnd
(0..6 marks)
Requirements: +3 marks each for each + below when implemented as shown during Gayan’s 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 Requirements
Note: 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 types
Locality 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 haven’t added and why)
Conditions Formations of the logic
4.3) 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 can’t 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.
4.4) Bonus Requirements
Important note: The total mark of A1+A2+A3 is capped at 45 (for a full break-down, see Canvas→Assignments). 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.
Page 4 of 5
,
5. Referencing guidelines
What: This is an individual assignment and all submitted contents must be your own. If you have used sources of information
other than the contents from the lectures and tutorials, you must give acknowledge the sources and give references using IEEE
style.
Where: Add a code comment near the work to be referenced and include the reference in the IEEE style.
How: To generate a valid IEEE style reference, please use the citethisforme tool if unfamiliar with this style. Add the detailed
reference before any relevant code (within code comments).
6. Submission format
Via Canvas→Assignments→Assignment 3, submit all of the following in one go, each time you submit:
1. All .java files except Application.java (see section 4.2)
2. All required images, data files, etc. (see section 4.2)
3. PDF user guide (see section 4.3)
It is the responsibility of the student to correctly submit their files. Please verify that your submission is correctly submitted by
downloading what you have submitted to see if the files include the correct contents. It is not an issue if Canvas renames your
submission.
7. Academic integrity and plagiarism (standard warning)
Academic integrity is about honest presentation of your academic work. It means acknowledging the work of others while
developing your own insights, knowledge and ideas. You should take extreme care that you have:
 Acknowledged words, data, diagrams, models, frameworks and/or ideas of others you have quoted (i.e. directly copied),
summarised, paraphrased, discussed or mentioned in your assessment through the appropriate referencing methods,
 Provided a reference list of the publication details so your reader can locate the source if necessary. This includes material
taken from Internet sites.
If you do not acknowledge the sources of your material, you may be accused of plagiarism because you have passed off the work
and ideas of another person without appropriate referencing, as if they were your own.
RMIT University treats plagiarism as a very serious offence constituting misconduct. Plagiarism covers a variety of inappropriate
behaviours, including:
 Failure to properly document a source
 Copyright material from the internet or databases
 Collusion between students
For further information on our policies and procedures, please refer to the University website.
8. Assessment declaration
When you submit work electronically, you agree to the assessment declaration.
Page 5 of 5