辅导案例-CSSE2002/7023
School of ITEECSSE2002/7023 — Semester 2, 2019Assignment 1 (10%)Due: 30 August 2019 18:00Revision: 1.1AbstractThe goal of this assignment is to implement a set of classes and interfaces1 to be used in later as-signments. You will implement precisely the public and protected items described in the supplieddocumentation (no extra public/protected members or classes). Private members may be addedat your own discretion.Language requirements: Java version 11, JUnit 4PreambleAll work on this assignment is to be your own individual work. As detailed in Lecture 1, codesupplied by course staff (from this semester) is acceptable, but there are no other exceptions. Youare expected to be familiar with “What not to do” from Lecture 1 and https://www.itee.uq.edu.au/itee-student-misconduct-including-plagiarism. If you have questions about whatis acceptable, please ask course staff.Supplied Material• This task sheet• Code specification document (javadoc).2• A subversion repositiory for submitting your assignment.3JavadocCode specifications are an important tool for developing code in collaboration with other people.Although assignments in this course are individual, they still aim to prepare you for writing codeto a strict specification by providing a specification document (in Java, this is called Javadoc). Youwill need to implement the specification precisely as it is described in the specification document.The Javadoc can be viewed in either of the two following ways:1. Open https://csse2002.uqcloud.net/assignment/1/ in your web browser. Note that thiswill only be the most recent version of the Javadoc.2. navigate to the relevant assignments folder under Assessment on Blackboard and you willbe able to download the Javadoc .zip file containing html documentation. Unzip the bundlesomewhere, and open doc/index.html with your web browser.1From now on, classes and interfaces will be shortened to simply “classes”2Detailed in the Javadoc section3Detailed in the Submission section1Tasks1. Fully implement each of the classes described in the Javadoc.2. Write JUnit4 tests for the methods in the following classes:• PacmanBoard (in a class called PacmanBoardTest)• ScoreBoard (in a class called ScoreBoardTest)MarkingThe 100 marks available for the assignment will be divided as follows:Symbol Marks Marked DescriptionF 55 Electronically Functionality according to the specificationR 25 Course staff Code review ( Style and Design )J 20 Electronically Whether JUnit tests identify and distinguish between correct andincorrect implementationsThe overall assignment mark will be A1 = F +R+ J with the following adjustments:1. If F < 5, then R = 0 and code style will not be marked.2. If R > F , then R = F .For example: F = 22, R = 25, J = 17⇒ A1 = 22 + 22 + 17.The reasoning here is to place emphasis on functional code and to not to give marks to well styledcode and well implemented JUnit tests when the code is not functional.Functionality MarkingThe number of functionality marks given will beF =Tests passedTotal number of tests· 55Each of your classes will be tested independently of the rest of your submission. Other requiredclasses for the tests will be copied from a working version of the assignment.Code ReviewYour assignment will be style marked with respect to the course style guide, located underLearning Resources > Guides. The marks are broadly divided as follows:Naming 5Commenting 6Structure and Layout 10Good Object-Oriented Practices 4Note that style marking does involve some aesthetic judgement (and the marker’s aesthetic judge-ment is final).2JUnit Test MarkingMarks will be awarded for test sets which distinguish between correct and incorrect implementa-tions4. A test class which passes every implementation (or fails every implementation) will likelyget a low mark. This will be assessed by running your JUnit test classes on a number of correct andincorrect assignment implementations. Marks will be rewarded for tests which pass or fail correctly.There will be some limitations on your tests:1. If your tests take more than 20 seconds to run, or2. If your tests consume more memory than is reasonable or are otherwise maliciousthen your tests will be stopped and a mark of zero given. These limits are very generous, (e.g.your tests shouldn’t take anywhere near 20 seconds to run).Electronic MarkingThe electronic aspects of the marking will be carried out in a linux environment. The environmentwill not be running Windows, and neither IntelliJ nor Eclipse (or any other IDE) will be involved.It is also critical that your code compiles. If one of your classes does not compile, you will recievezero for any electronically derived marks for that class.SubmissionSubmission is via your subversion repository. Details for how to submit your assignment is avail-able in the Version Control Guide. Your repository url is:https://source.eait.uq.edu.au/svn/csse2002-s???????/trunk/ass1.Your submission should have the following internal structure:src/ folders (packages) and .java files for classes described in the Javadoctest/ folders (packages) and .java files for the JUnit test classesA complete submission would look like:src/pacman/util/Position.javasrc/pacman/util/Direction.javasrc/pacman/ghost/Clyde.javasrc/pacman/ghost/Phase.javasrc/pacman/ghost/Ghost.javasrc/pacman/ghost/Pinky.javasrc/pacman/ghost/GhostType.javasrc/pacman/ghost/Blinky.javasrc/pacman/ghost/Inky.javasrc/pacman/score/ScoreBoard.javasrc/pacman/hunter/Speedy.javasrc/pacman/hunter/Hungry.javasrc/pacman/hunter/HunterType.javasrc/pacman/hunter/Phasey.javasrc/pacman/hunter/Hunter.javasrc/pacman/hunter/Phil.javasrc/pacman/board/BoardItem.javasrc/pacman/board/PacmanBoard.javasrc/pacman/game/Entity.javasrc/pacman/game/Moveable.javatest/pacman/score/ScoreBoardTest.java4And get them the right way around3test/pacman/board/PacmanBoardTest.javatest/pacman/JdkTest.javaEnsure that your assignments correctly declare the package they are within. For example, PacmanBoard.javashould declare package pacman.board.Do not submit any other files (e.g. no .class files) other than test files ( in test directory ) butnote that ScoreBoardTest and PacmanBoardTest will be compiled without the rest of your files.PrechecksPrechecks will be performed on your assignment repository multiple times before the assignmentis due. They will assess whether your folders and files are in the correct structure and whetheryour public interface aligns with the expected public interface. Successfully passing a precheckdoes not guarantee any marks. No functionality or style is assessed.Precheck #1: Approximately 6pm on the 18/08Precheck #2: Approximately 6pm on the 21/08Precheck #3: Approximately 6pm on the 25/08Precheck #4: Approximately 6pm on the 28/08Please endeavour to have code written and in your repository before at least one of these prechecksin order to make the most of them. No additional prechecks will be run for people who did notstart the assignment in time, or who neglected to commit their code to their repository. Prechecksare valid only for currently released version of the Javadoc, if an update is made it may invalidatethe precheck results.Late SubmissionAssignments submitted after the due date will recieve a mark of zero unless an extension is grantedas outlined in the ECP — see the ECP for details.Remark RequestsTo submit a remark of this assignment please follow the information presented here:https://my.uq.edu.au/information-and-services/manage-my-program/exams-and-assessment/querying-result.RevisionsIf it becomes necessary to correct or clarify the task sheet or Javadoc, a new version will be issuedand a course announcement will be made on Blackboard. No changes will be made on or after26/08/2019.4