辅导案例-COSC2452-Assignment 3
,School of Science COSC2452 Introduction To Programming (OUA) Assignment 3 (v.2020.05.04) Assessment Type: Individual assignment; no group or collaborative work. Submit online via Canvas→Assignments→Assignment 3. Marks awarded for meeting requirements as closely as possible. Clarifications/updates/permissions may be made via Gayan’s announcements/relevant discussion forum by Gayan. For consistency, your tutors can only help you with general programming concepts covered in the course. Due date: Deadlines will not be advanced but they may be extended. Please check Canvas→Assignments→Assignment 3 for the most up to date information. As this is a major assignment in which you demonstrate your understanding, a university standard late penalty of 10% per each working day applies for up to 5 working days late (submissions will not be accepted afterwards), unless special consideration has been granted. All new extensions must be applied for directly via RMIT Special Consideration. Weighting: 25 marks (excluding bonus marks) 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. There must be two versions of your code (detailed further below). You are given marks on your ability to fulfill all requirements of this document. If there are questions, you must ask via the Canvas→Discussions→Discussions→Assignment 3 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. Page 1 of 4 ,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. Also listen to the explanation given in the 04/May/2020 Monday lecture. Your code must meet the following code and documentation (CD) requirements. You may take the application from your Assignment 2 and modify it to fit the requirements below. Alternatively, you can develop a complete different idea to meet the requirements of Assignment 3. In places where this specification may not tell you how exactly you should implement a certain feature, the programmer (you) need to use your judgment to choose and apply the most appropriate concepts from class materials. Follow answers given by your “client” or “supervisor” (your coordinating instructor) under Canvas→Discussions→’Assignment 3’ when in doubt. 4.1) Demonstrate the following Java code concepts to create a functionally cohesive program of our own choosing and document justifications of your implementation against possible alternative implementations. CD1) Multi-class object oriented relationships and code format. [10 marks] CD2) Object member variables (including arrays). [3 marks] CD3) Constructors. [3 marks] CD4) Accessors, mutators and other methods. [3 marks] CD5) File reading and writing. [3 marks] CD6) Conditional execution and repetition. [3 marks] Notes: Refer to rubric in section 9 for full details. Ask via Canvas→Discussions→Assignment 3 when in doubt. 4.2) Bonus requirements You can attempt either B1, B2 or both but to obtain any bonus marks, you must meet all requirements of the non-bonus/standard requirements. The total mark for assignments+weekly work is capped; The online test will always be 15 marks out of your final mark). For a full break-down, see Canvas→Announcements->Assessment Changes in Intro To Programming OUA. B1. If you make your submission 1 day before the standard deadline, receive +0.1 mark, or 2 days early for +0.2 marks, etc. B2. Include a PDF “user guide” with screenshots of your program and instructions how to use it (+2 bonus marks). 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 directly under Canvas→Modules, 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. Page 2 of 4 ,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 Submit just the relevant .java files and any required .csv/.txt data files via Canvas→Assignments→Assignment 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. 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 3 of 4 ,9. Rubric/assessment criteria for marking Code must be valid, runnable Java to be given a mark (non-compilable code such as JavaScript, pseudocode, incomplete Java code cannot be marked). Run-time errors will incur up to a 50% penalty (run-time errors due to data type mismatches in inputs are acceptable). Inadequate Partial Complete All code blocks and member variable declarations must have documentation that compares against alternative implementations. Also, marks will not be awarded if concepts are “thrown in” to make a program that is not functionally cohesive. Must exclusively use approaches taught in Canvas→Modules and lectures (Monday night) when using the concepts below. CD1 Justifications and comparisons of alternative implementations not discussed in relevant places or not present or not presented along with relevant code. OR Code requirements present but program does not have a cohesive functional aim. OR Uses concepts not covered in class materials. Justifications and comparisons of alternative implementations present and code concepts demonstrated as a part of meeting overall functional aims of the program but one or more code requirements missing/incomplete/incor rect. • Has at least 2 classes with one class per .java file. • 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 the above arrays vary at run-time and they must be manipulated exclusively using while loops. • All identifiers and names are appropriate to their purpose (e.g. no names like Assignment3.java); Follows conventions shown in IIE solution lectures, other standard class materials and common ones in the Java API. • 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 IIE solution lectures). • Uses GTerm exclusively for user interactions (excluding file I/O). • Uses GTerm components textfields/textareas, button(s), list(s). • Formatting is consistent. Documentation comments start on the line before the documented block/statement (e.g. not in-line comments). • Only relevant, reachable code+comments included. • Does not use break, continue, System.exit or similar branching anywhere in the code does not return from the middle of methods. CD2 • Each class has object member variables (including arrays) that are explicitly private and non-static. • Demonstrates understanding of primitive data types vs. class types where relevant. • Whenever a method refers to a member variable, it uses this. (i.e. “this dot”, e.g. this.name). CD3 • Each class has one constructor. • Must take parameters for minimum information required for creating an object of that class. • All member variables, arrays, etc. are explicitly initialised in the constructors (e.g. there are no equal signs where member variables are declared). CD4 • One or more classes have methods that return values (e.g. accessor/get methods); One or more classes have methods that take parameters (e.g. mutator/set methods). • There are also other methods that are not simple get/set type methods that perform actions relevant to the classes that contain them (e.g. in order to reduce repetition of code). • All methods are explicitly public and non-static. CD5 • Uses only BufferedReader+FileReader when reading. • Uses only BufferedWriter+FileWriter when writing. • Uses only .txt or .csv files and these are placed in the default/current folder (paths do not contain folder/directory names). CD6 • 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. • Conditions do not include tautologies. Pathways are not redundant. Every code block in every if/else/else if/while structure is reachable. Page 4 of 4