[SOLVED] COSC2452 Assignment 3

24.99 $

Programming resource
Digital learning resource
Category:
✓ Practical programming resource
✓ Suitable for guided study and reference
✓ Tutor guidance available when needed

Description

Rate this product

School of Sci

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.

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 Object Oriented (OO) Java applications. With this project you aim to demonstrate to potential employers or clients how you can:

  1. Demonstrate OO concepts as taught in class and create a small tool or utility program using (exclusively) a limited set of fundamental code concepts (detailed in section 4.1 below) and,
  2. You are able to analyse and evaluate in your code documentation (see requirements in section 4.2 below).

Note: You can turn your non-OO assignment 2 in to an OO oversion for this assignment, if you so prefer. As before, 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.

There are code requirements (8 marks) and documentation requirements (2 marks) for a total of 10 marks.

Develop this assignment in an iterative fashion (as opposed to completing it in one sitting). You can and should get started now as there are concepts from the week 1 lessons that you can incorporate from now itself.

If there are questions, you must ask via the relevant Canvas discussion forums in a general manner (replicate your problem in a different context in isolation before posting).

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.

 

        Inadequate                                              Partial

C1 More than one one of the criteria in the                   No more than one of the criteria in the ‘complete’ level ‘complete’ level missing or incorrect or does             missing/incomplete/incorrect but demonstrated as a serve overall functional aims of program.                  part of meeting overall functional aims of program.

C2 More than one one of the criteria in the                   No more than one of the criteria in the ‘complete’ level ‘complete’ level missing or incorrect or does             missing/incomplete/incorrect but demonstrated as a serve overall functional aims of program.                  part of meeting overall functional aims of program.

C3 More than one one of the criteria in the                   No more than one of the criteria in the ‘complete’ level ‘complete’ level missing or incorrect or does             missing/incomplete/incorrect but demonstrated as a serve overall functional aims of program.                  part of meeting overall functional aims of program.

C4 More than one one of the criteria in the                   No more than one of the criteria in the ‘complete’ level ‘complete’ level missing or incorrect or does             missing/incomplete/incorrect but demonstrated as a serve overall functional aims of program.                  part of meeting overall functional aims of program.

C5 More than one one of the criteria in the                   No more than one of the criteria in the ‘complete’ level ‘complete’ level missing or incorrect or does             missing/incomplete/incorrect but demonstrated as a serve overall functional aims of program.                  part of meeting overall functional aims of program.

C6 More than one one of the criteria in the                   No more than one of the criteria in the ‘complete’ level ‘complete’ level missing or incorrect or does             missing/incomplete/incorrect but demonstrated as a serve overall functional aims of program.                  part of meeting overall functional aims of program.

D1 Lacks one or more of the ‘partial’ level         Identifies concepts required and application of each

criteria                                                                           concept is discussed with respect to the overall aims of

OR                                                                                             the program.

documentation not within .java file.                 Has an even spread of the above near code blocks and important variables in plain English where possible.

D2 Does not discuss potential issues in the code     Identification (without discussion) of the criteria stated OR documentation not within .java file.             under ‘complete’ or discussions exclude some of the criteria under ‘complete’.

Complete (Uses only the concepts covered in class materials for meeting stated criteria)

Has multiple classes with one class per .java file. All identifiers and names are appropriate to their purpose (no names like Assignment3.java). Follow conventions shown in Tutorial 8 lesson, other standard class materials and common ones in the Java API.

The classes must be in 0-to-many or 1-to-many composition (“has-a”) relationships between each other using object member arrays of class types created by student. The sizes of these arrays are determined at run-time and they must be manipulated exclusively using while loops.

Only one of the classes (the “application” class) must have the main method and the main method should have only one line to create an object of the main application class (as shown in Tutorial 8 lesson). All other methods must be explicitly public and not static.

Avoids hard-coding when appropriate. Formatting is consistent. Only relevant code and comments included. All code reachable. Does not use break, continue, System.exit or similar branching anywhere in the code. Every method has one return statement as the final statement of the method (to avoid spaghetti code and to demonstrate understanding of the return statement).

All classes have object member variables (including arrays) that are explicitly private and non-static. Demonstrates understanding of primitive data types vs. class types where relevant. There are no = (equals) signs where member variables are declared. Whenever a method refers to a member variable, it uses this. (i.e. “this dot”, e.g. this.name).

Every class has one constructor. Each constructor must have parameters that take minimum information required for creating an object of that class. All member variables, arrays, etc. are explicitly initialised in the constructors.

One or more classes have get methods (accessors with return values). One or more classes has set methods (mutators with parameters). There are also other methods that perform actions relevant to the classes that contain them in order to reduce repetition of code. All methods are explicitly public and non-static.

Uses only BufferedReader+FileReader when reading. BufferedWriter+FileWriter when writing. Follows concepts shown in Tutorial 10 lesson. Uses only .txt or .csv files and these are placed in the default/current folder (paths do not contain folder/directory names).

Uses if/else/else if appropriately and exlusively for non-repeating conditional execution. Contains at least one reachable else if statement.

Uses while loops appropriately and exlusively for repetition. Loop condition describes all situations under which the loop will repeat and condition fails eventually.

Conditions do not include tautologies. Pathways are not redundant. Every code block in every if/else/else if/while structure is reachable. Does not use break, continue, System.exit or return within if/else/else if/while statements.

Further to ‘partial’ level criteria…

Analyses the breaking down of the programming task to smaller parts (e.g. methods and other blocks) and organisation to achieve the overall goals of the program.

Evaluates strategies used to meet requirements and compares the quality of one approach to another approach. Has an even spread of the above near code blocks and important variables in plain English  possible.

Explains any code requirements that have not been met, situations that might cause the program to crash or behave abnormally. Able to identify the approximate locations of any issues within the code and comments are given in those locations. Bugs imposed by limitations in the lesson topics discussed.

Page 4 of 5

 

,

10. List of Approved Topics for Bonus Option B2

 

 6.1  Coding theory

 6.2  Digital signal processing

 6.2.1  Image processing

 11.3.1  Disk scheduling

Page 5 of 5

Resource details

Understand the Task Before You Use the Resource

Review the requirements, identify the programming concepts involved, study the implementation and test your understanding with your own examples and modifications.