Note: all deliverable deadlines are in Canberra time using a 24-hour clock.

All assignment deliverables must be submitted with a completed originality statement (see details below). Any deliverable that does not include a completed originality statement will not be marked.

Del. Deliverable Week Marks
D1A A1: Assignment 1 4 5
D2A A2: Organize groups, assign roles 4 1
DXC Basic Competency Hurdle Assessment 5  
D2B A2: Analysis and design 5 1
D2C A2: Completion of part one 7 5
D2D A2: Individual class and testing 8 1
D2E A2: Integration demo and code review 9 2
D2F A2: Final submission 11 18
D2G A2: Final demo and presentation 12 2

D1A: Assignment 1 (5 Marks, Individual) #

Assignment 1 will be made available on Monday of week 2.
Due 17:00 Monday Week 4, 15 August 2022.

You must edit, commit, and push the following to your GitLab repository before the deadline:

File Description
originality.yml Originality statement for Assignment 1.

D1A checklist #

Please check that you have done the following before you submit.

  • Read and understand the statement on academic integrity.
  • Read and understand the statement on deadlines.
  • 24 hours before the deadline, do an upstream pull of the assignment.
  • 24 hours before the deadline, confirm that your assignment includes a complete and truthful originality statement.
  • Push all code to GitLab and confirm that CI tests pass for the tasks you have completed. You will be marked according to the results of the CI tests.
  • After you commit and push your final changes confirm that you’ve followed the statement on academic integrity, that you have correctly completed the originality statement, that you have pushed all your work to GitLab, and that the CI result for your last push is what you expect. If things go badly wrong and you end up breaking things right at the deadline, there will be no extension. However, if you made good use of Git and you have a previous commit that works (even if not fully), you may send a private ed post to your tutor and me, asking for your assignment to be marked using that commit.

Evaluation for Assignment 1 #

Criterion Marks
1. Assignment 1 repository forked correctly. 0.5
2. Originality statement edited, committed and pushed. 0.5
3. Git log file reveals healthy use of Git (some useful advice here). 0.25
4. Edited classes compile correctly and the program runs, even if not correctly. 0.25
5. Completion of Pass-level requirements. 1
6. Completion of Credit-level requirements. 0.5
7. Completion of Distinction-level requirements. 0.5
8. Completion of High Distinction-level requirements. 1
9. Solution is outstanding in its design and implementation. 0.5

Partial marks may be awarded for each criterion.

D2A: Assignment 2, Stage A (1 Mark, Group) #

Due in your scheduled lab, Week 4.

The same mark will be awarded to all group members.

The main objective of this first stage is to meet your group and create your group repo. Your group will have two or three members, selected at random from your lab group. Your tutor will let you know the members of your group.

Meet your group members and get to know them a little by asking some basic questions. The following might help you get started.

  • What degree are you doing?
  • Did you do much computer science before coming to ANU?
  • Where did you grow up?
  • Where does your family live?
  • What do you think you want to do in your future career?

Once you have met your group members, you should do the following:

  • Find out your assigned group name by asking your tutor. It should be something like tue08a1, where the first six characters indicate your lab tutor group, and the last character is identifies your assignment 2 project group within that.
  • One (and only one) member of your group must fork the assignment repo.
  • Use GitLab to add a description to the forked project which contains your unique group name. Go to Settings -> General, then under Naming, topics, avatar add to Project description your group name, e.g., tue08a1, thu16c3, etc… Your group name should be the only text in the field and should be displayed exactly as given by your tutor, including preserving all lower case.
  • Add all group members to your group’s repo as ‘maintainers’ (use the ‘Members’ tab at bottom left of GitLab page, then ‘Add members’).

NOTE: From this point on, no group member should fork any version of the assignment 2 repo, even the fork just produced. All members should push, pull and clone exclusively from the fork just produced. This means that the URL all members work on should be https://gitlab.cecs.anu.edu.au/<Above_Members_UID>/comp1110-ass2.git.

  • To help identify your group’s repository and distinguish it from other versions (including the class assignment repository), you may wish to set an avatar. Underneath where you set the project description, for Project avatar select ‘Choose file…’ and upload an appropriate image to identify your repository.
  • Verify your repo description and membership with your tutor before continuing.
  • Each person should clone your group’s repo using IntelliJ.
  • Assign tasks within the group. The design of the system should be shared by all members, and every member of the group should write some code. Record this in your admin/tasks.md file.
  • Exchange contact information. Record this in admin/members.yml (for each member add “contact: ").
  • Arrange a weekly meeting time (this should be one hour and outside your normal lab time). Record your meeting time at the top of your tasks.md file.

Be sure that you complete each of the above and have your tutor check it off before you finish your week 4 lab.

All files for all deliverables in Assignment 2 must be committed and pushed to the master branch of your group repository. Files in other branches of the repository may not be marked unless your tutor has specifically agreed to consider these in marking.

Evaluation for Stage A #

Criterion Marks
Your group has forked the assignment repo, all members are maintainers.
You have recorded: members, UIDs, and contact details in your members.yml file and weekly meeting time in your tasks.md file, and have passed the CI compliance test.
1

DXC: Basic Competency Hurdle Assessment #

Assessed in your scheduled lab, Week 5.

In your lab you will be assessed to determine whether you have achieved a level of basic competency in the course. You will need to be able to demonstrate to your tutor that you can write a basic program that covers material from units J1, J2, J3, J4, J5, J6, J7, and O1. Because this is a hurdle assessment, failure of this assessment will automatically mean failure of the course.

If you achieve a mark of 10/20 or better in the lab test, you will automatically be exempt from this hurdle assessment.

D2B: Assignment 2, Stage B (1 Mark, Group) #

Complete this assessment before your scheduled lab in Week 5.

Marks will be distributed according to the relative contribution of each group member as documented in B-contribution.yml.

Required Files for Stage B #

All parts of this assignment must be submitted via GitLab.

This deliverable is the design of your game, which will be manifest two ways:

  • A pdf file containing a sketch of your design, admin/B-design.pdf
  • A design skeleton consisting of one or more Java classes without any code.

To deliver this, you need to think carefully about how you will build your solution. The design sketch is exactly that – it will be a diagram, prepared using which ever tools you want (it’s perfectly fine to draw it on paper and photograph it). The diagram should indicate how the major elements of your game will fit together. You are free to use whatever notation you feel works. The goal is to capture your group’s design in a simple diagram. You must also submit the skeleton of what you plan to build. This means deciding on what classes you think you’ll need and what fields and methods you will most likely want, and brief JavaDoc outlining their purpose.
You need to create those classes, fields and methods, and give them some documentation. However, the methods must not have an implementation in them. You are merely submitting a skeleton (not working code!). Your classes and pdf must be pushed to GitLab by the deadline.
Your tutors will assess how well your design captures the key concepts and functionality required for the game. It is perfectly OK to change your design later in the semester. The goal here is to demonstrate that you’ve carefully considered the design before you’ve started coding.

You will find a template version of each of the administrative files within your group repository, which you should all be able to access (there is no B-design.pdf file – you will need to create that and add that).

You must edit each of the relevant admin files, ensuring that they are filled in correctly, before committing and pushing the changes.

File Description
admin/B-design.pdf Pdf file containing a design sketch.
admin/B-originality.yml Originality statement for Stage B.
admin/B-contribution.yml Contribution statement for Stage B.

Evaluation for Stage B #

In this stage you need to have generated a sketch/skeleton version of your game which reflects your intended design of the game.

Criterion Marks
Required admin files have been correctly filled in, committed and pushed, passing the CI compliance test. 0.25
Your skeleton version of the game is appropriately designed. 0.25
Skeleton version of the game has well-selected class, method and field names.
Fields and methods are included in all of the classes.
0.25
Design is outstanding. 0.25

D2C: Assignment 2, Stage C (5 Marks, Group) #

DUE DATE: 17:00 Monday Week 7, 19 September 2022

Marks will be distributed according to the relative contribution of each group member as documented in C-contribution.yml.

Required Files for Stage C #

Part One of the assignment, including all class files, must be pushed to GitLab.

You must edit each of the files, ensuring that they are filled in correctly, before committing and pushing the changes.

File Description
admin/C-originality.yml Originality statement for Stage C.
admin/C-contribution.yml Contribution statement for Stage C.
admin/C-best-<uid>.yml Statements of best code for Stage C.

Your statements of best code should simply indicate which code the given group member is most proud of.

A convenient way to list your best code is to provide a gitlab link. To do this, navigate to your group’s repo on gitlab, find the file containing the code you wish to highlight, click on the line number of the first line of your code (eg 29 in the example below), then shift-click on the last line of your code (eg 31 in the example below), and then you should find a URL in the browser navigation bar that captures this information. Open a new browser tab and paste in the URL, and be sure that the code you wish to indicate is correctly highlighted. Once it is correctly highlighted, paste the URL in your best code yaml file. For example, the highlighted code below, for the method isGameStringWellFormed() generates the following URL: https://gitlab.cecs.anu.edu.au/comp1110/comp1110-ass2/-/blob/master/src/comp1110/ass2/IQStars.java#L29-31 (notice that this URL is for the class repo, not yours, and notice the line numbers encoded at the end of the URL).

Evaluation for Stage C #

Criterion Marks
1. Required admin files have been correctly filled in, committed and pushed, passing the CI compliance test. 0.25
2. Git log provides evidence of healthy teamwork and appropriate use of version control. 0.25
3. Completion of the Pass level requirements for Part One of the game. 1.25
4. Completion of the Credit level requirements for Part One of the game. 1.25
5. Completion of the Distinction level requirements for Part One of the game. 0.75
6. The work is exceptional. 1.25

This completes Part One of the game. The remaining stages of the assignment are with respect to Part Two of the game.

D2D: Assignment 2, Stage D (1 Marks, Individual) #

Complete this assessment before your scheduled lab in Week 8.

Each group member will be assessed separately. The purpose of this deliverable is to determine that each individual is deeply engaged with the project and has demonstrated the ability to write meaningful unit tests.

Required Files for Stage D #

Each group member must be able to discuss with their tutor a section of code (at least 10 statements, but not substantially more) that they authored, plus demonstrate a good unit test that they authored. They must upload the following to the group repository before their scheduled lab.

File Description
admin/D-originality-<uid>.yml Originality statements for Stage D, each student using their own UID.
admin/D-newcode-<uid>.md List of new code developed for Stage D, each student using their own UID.

Evaluation for Stage D #

Along with your working code, you must show your tutor working JUnit tests that you created. You should write the unit test for code that you developed yourself. However, if the original code you develop is JavaFX code, you may write tests for other code within your project, providing that: a) you have the agreement of your group members, and b) the code you write the test for does not already have sufficient tests. (The reason for this exception is that it is difficult to write JUnit tests for JavaFX code.)

Criterion Marks
Your code provides a reasonable implementation of the aspect of the problem you are addressing.
Your contribution comprises at least 10 statements of original code (in addition to the unit test).
0.5
A good test of the code you implemented (or if your tutor agrees, the test for some other code—see above). 0.5

D2E: Assignment 2, Stage E (2 Marks) #

Complete this assessment before your scheduled lab in Week 9.

Note: There are two elements to this deliverable, a group component and an individual component.

D2E Group Integration (1 Marks, Group) #

Marks for this part of the deliverable will be distributed according to the relative contribution of each group member as documented in E-contribution.yml.

Required Files for Stage E - Group Integration #

The group must edit, commit, and push the following to the group repository by the deadline.

File Description
admin/E-originality.yml Originality statement for Stage E.
admin/E-contribution.yml Contribution statement for Stage E.
All .java files All source code for your assignment.
game.jar A working executable JAR file for your game, in the base directory of your repository.

Evaluation for Stage E - Group Integration #

This week you must demonstrate that all of the classes work together. You should package your program as a JAR file called game.jar. You should be able to run your code using:

java --module-path ${PATH_TO_FX} --add-modules=javafx.controls,javafx.fxml,javafx.media -jar game.jar

Note - getting your program working as a JAR file can sometimes be tricky, particularly getting the images loading properly, so make certain you work this out plenty of time before the lab time. You should be able to do so using the following steps:

  1. Select File->Project Structure.
  2. Select “Artifacts”
  3. Add a JAR: “+” -> JAR -> From modules with dependencies…
  4. Select the “Main class” to be your Game class, and ensure “extract to target JAR” is selected
  5. Change the output directory to be your project’s root directory, not the src directory or any other (you can click the “…” and navigate there)
  6. Check the “Include in project build” checkbox.
  7. Ensure that the “Output directory” field is the root of your project, not a subdirectory.
  8. Change the file name by selecting the JAR at middle of window, under “Output layout”, and right click, “Rename”, then type “game.jar”
  9. Press “OK”
  10. Build game JAR: Build -> Build Artifacts…, select build.

Your JAR should now be visible in your project’s root directory. Ensure that you can run the JAR (right click on the JAR, select “Run game.jar”. Your game should run, creating a new window. Ensure the JAR is added to Git (select it, right click, Git->Add). Be sure to check that your JAR is up to date with any changes you make (repeat step 10 if in doubt). If you run into troubles with these steps, you can start over by doing steps 1 and 2 and then using the “-“ sign to delete the artifact.*

Also see IntelliJ documentation on how to build a JAR.)

Criterion Marks
All required files are correct and have been committed and pushed, passing the CI compliance test.
Git log provides evidence of healthy teamwork and appropriate use of version control.
All classes compile without error and the game works (or at least partly works).
0.5
All the code contains authorship details and is commented well, and is formatted properly. (Note: ‘authorship details’ is fairly open-ended. It may mean stating that the code was written by the group, or by one or two members, or that it was heavily adapted from some third party. Either way, it should be absolutely clear to the reader which person or persons were responsible for the code and the ideas behind it.).
The game executes correctly from the JAR file on the lab machines (although it may not yet be a complete implementation of all tasks).
0.5

D2E Code Review (1 Mark, Individual) #

Each group member will be assessed separately for this part of the deliverable.

Required Files for Stage E - Individual Code Review #

Each group member must upload the following to the group repository prior to their scheduled lab.

File Description
admin/E-originality.yml Originality statement for Stage E. (Only one statement required for D2E.)
admin/E-review-<uid>.md Code review for Stage E.

Each member of the group must review a substantial (>20 lines) contribution from another member. Reviewers must be assigned in a round-robin fashion, i.e. for a group of three, author A reviews a contribution of author B, author B reviews a contribution from author C, and author C reviews a contribution from author A. If you do not have any code to review because your teammates have not contributed to the assignment, contact the lecturer who will provide some alternative code to review.

Your review should address the following questions:

  • What are the best features of this code?
  • Is the code well-documented?
  • Is the program decomposition (class and method structure) appropriate?
  • Does it follow Java code conventions (for example, are methods and variables properly named), and is the style consistent throughout?
  • If you suspect an error in the code, suggest a particular situation in which the program will not function correctly.

Evaluation for Stage E - Individual Code Review #

Criterion Marks
Your originality statement has been edited, committed and pushed, passing the CI compliance test.
You have reviewed another group member’s contribution, and the review file has been committed and pushed.
0.5
Your review comments are appropriate and actionable. 0.5

D2F: Assignment 2, Stage F (18 Marks, Group) #

Due 17:00 Friday Week 11, 21 October 2022.

This is the major deliverable. Aside from the demo and presentation, all elements of the assignment will be assessed.

Marks will be distributed according to the relative contribution of each group member as documented in admin/F-contribution.yml.

A snapshot of your group’s Git repository will be taken at the deadline. It is essential that you strictly follow the instructions on the structure of your Git repository and the list of required files below. Files that are misnamed or are not included in the stipulated location may not be marked.

It is your responsibility to check that the version of your system in Git at the deadline is working correctly.

Required Files for Stage F #
File Description
admin/F-originality.yml Originality statement for Stage F (this must reflect assignment in its entirety, not just changes since the previous stage).
admin/F-contribution.yml Contribution statement for Stage F. (This covers each team member’s contribution to everything that is assessed in this stage of the assignment i.e. not just work completed since D2D.)
admin/F-best-<uid>.yml Statements of best code.
admin/F-features.md A concise list of the key features implemented by your game. Please use the F-features.md template, replacing “-“ with “X” for each implemented feature, using the feature lists provided for your assignment, as appropriate.
All .java files Complete source code for your assignment, in the provided src directory.
game.jar A working executable JAR file for your game, in the base (root) directory of your repo.

Your statements of best code should simply indicate which code the given group member is most proud of.

Evaluation for Stage F #
Level Criterion Marks
P 1. Passes CI checksum. 0.25
P 2. All of the required files are correct and have been committed and pushed, passing the CI compliance test. 0.5
P 3. Authorship of each class needs to be clearly stated in a comment of each class. (Note: ‘authorship details’ is fairly open-ended. It may mean stating that the code was written by the group, or by one or two members, or that it was heavily adapted from some third party. Either way, it should be absolutely clear to the reader which person or persons were responsible for the code and the ideas behind it.). 0.75
P 4. Git log provides evidence of healthy teamwork and appropriate use of version control. 0.75
P 5. The game is executable on a standard lab computer from the game.jar file which resides in the root level of your group repository. 0.75
P 6. Your game correctly implements all of the Part One criteria. 3
P 7. Your game has at least Pass-level functionality. 2
P 8. You have made appropriate use of object-oriented programming features. 1
CR 9. Your game has at least Credit-level functionality. 2
CR 10. The program is well designed. 0.25
CR 11. Comments are clear and sufficient. 0.25
CR 12. Your coding style is good. 0.25
CR 13. You make good / appropriate use of JUnit tests throughout the project. 0.25
D 14. Your game has at least Distinction-level functionality. 2
D 15. Your design and code must be of very high quality. 0.5
D 16. Your game works well and is easy for a new user to run. 0.5
HD 17. Your game has High Distinction-level functionality. 1.5
HD 18. Your program demonstrates interesting extensions that go beyond the basic tasks. 0.5
HD 19. Your game is exceptional. 1

D2G: Assignment 2, Stage G (2 Marks, Group) #

Video due 17:00 Monday Week 12, 24 October 2022.

Presented in your scheduled lab, Week 12.

Marks will be distributed according to the relative contribution of each group member as documented in admin/contribution-G.yml.

Required Files for Stage G #
File Description
admin/G-originality.yml Originality statement for Stage G.
admin/G-contribution.yml Contribution statement for Stage G.
admin/G-presentation.yml Link to presentation video on OneDrive.
Evaluation for Stage G #

Each group is expected to give a 10 min demonstration of their project (5 minutes for a presentation video and 5 minutes for a few questions). In this demonstration, you should: explain the problem you looked at, run a demonstration of your program, describe your design approach, describe interesting aspects of your game.

Your presentation must be suitable for viewing on a 1280x720 screen, and must include the following:

  • Names of all students who contributed.
  • A summary of what you did.
  • Screen shots of your game.

We will run the presentations in the regular lab session, in-person or on teams for the remote labs. Each team must record a video presentation that your tutor can show during the session. Every member of the team should contribute to preparing the video. (You can choose one member to speak)

One member of your group should upload the file to OneDrive:

  • Select “Share the selected item with other people”
  • Change the sharing settings from “Anyone with the link can edit” to “People in Australian National University with the link” and uncheck “Allow editing”
  • Select “Copy Link” and record the link in the file G-presentation.yml

You should attend your regular lab session to view others’ presentations and answer questions on your own presentation. You will be marked both on the quality of the presentation and on your answers to questions during the lab.

Criterion Marks
All of the required files are correct and have been committed and pushed, passing the CI compliance test.
The video presentation must be in mp4 file format, no more than 5 min long, and uploaded to ANU OneDrive at the location nominated in the file G-presentation.yml.
0.5
The presentation must appear well planned and rehearsed.
Group members are able to answer questions on the presentation and engage in discussion of the work.
0.5
The presentation must be engaging and clearly summarize your project. 0.5
The presentation must be outstanding. 0.5

Required Structure For Your Git Repository #

For the most part, the details of how you manage your repository are up to you. However, you must observe the following requirements strictly:

  • You must have a folder called admin in your base directory (not “Admin” or any other variation). This folder should have been in your repository since the beginning.
  • Your admin folder must contain each of the files listed in the deliverables above, using exactly the file names specified. These should have been in your repository since the beginning (although you must fill in the details).
  • Your admin folder should not have any sub-folders in it.
  • In the above, when the file name says something like best-<uid>.yml, if your UID was u2345678, then your file should be called best-u2345678.yml.
  • You must have a working JAR file named game.jar in the base directory of your repo.
  • All of your source code must be in the repository (IntelliJ will put it in a folder called src).
bars search caret-down plus minus arrow-right times arrow-up