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 one (Friday 09:45) 3 5
D2A A2: Organize groups, assign roles 4 1
DXC Basic Competency Hurdle Assessment 5  
D2B A2: Analysis and design 6 3
DXM Mid Semester Exam 6 5
D2C A2: Completion of part one 7 4
D2D A2: Individual class and testing 8 4
D2E A2: Integration demo and code review 9 3
D2F A2: Final submission (Friday 09:45) 11 13
D2G A2: Final demo and presentation 12 2

D1A: Assignment 1 (5 Marks, Individual)

Due 09:45 Friday Week 3, 12 March 2021 (time remaining).

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 Piazza post to your tutor and me, asking for your assignment to be marked using that commit.

Evaluation for Assignment 1

Criterion Marks
Assignment 1 repository forked correctly.
Originality statement edited, committed and pushed.
1
Git log file reveals healthy use of Git (some useful advice here).
Edited classes compile correctly and the program runs, even if not correctly.
0.5
Completion of Pass-level requirements 1
Completion of Credit-level requirements 0.5
Completion of Distinction-level requirements 0.5
Completion of High Distinction-level requirements 1
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 tue12g (where the first five characters indicate the day and time of your lab (use 09, not 9 if your lab is 9am), and the letter is unique to your group, assigned by your tutor).
  • One (and only one) member of your group must fork the assignment repo, and then use GitLab to rename the repo to comp<1110|1140>-ass2-<group>, for example comp1110-ass2-tue12g, comp1110-ass2-wed09g, comp1140-ass2-thu09c, etc. You need to do this in two steps. First, change the project name (use ‘Settings’ at bottom left of GitLab page) rename Then, change the project path (expand the ‘Advanced’ section of the settings) rename Please be sure that you change both the Project name and the Path). Be sure that the name is precisely correct.

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 http://gitlab.cecs.anu.edu.au/<Above_Members_UID>/comp1110-ass2-<group_name>.git.

  • If you did the above step correctly, you should find that your group name appears in the URL for the project.
  • 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. ‘Select Settings’ -> ‘General’ then expand ‘General Project Settings’. In the ‘Project avatar’ section, select ‘Choose file…’ and upload an appropriate image to identify your repository.
  • Add all group members to your group’s repo as ‘maintainers’ (use the ‘Members’ tab at bottom left of GitLab page, then ‘Add members’).
  • Verify your repo name 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 tasks.md file.
  • Exchange contact information. Record this in 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 in week four 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 (3 Marks, Group)

Due 07:00 Monday Week 6, 29 March 2021 (time remaining).

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. This means that you need to think carefully about how you will build your solution. You can use any design tools you like, including paper. However, you must submit the outline/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.
You then need to create those classes, fields and methods, and give them some documentation. However, the methods do not need to have any useful code in them. You are merely submitting a skeleton (not a finished assignment!). Your implementation 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, however, you must show that you’ve thought carefully about it already.

You will find a template version of each of the administrative files within your group repository, which you should all be able to access. To access your group repository, follow similar instructions as for your personal repository used in lab 1.

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

File Description
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.5
Git log or other material provides evidence of healthy teamwork.
Your skeleton version of the game is appropriately designed.
1
Skeleton version of the game has well-selected class, method and field names.
Fields and methods are included in all of the classes.
1
Design is outstanding. 0.5

DXM: Mid-Semester Exam (5 Marks)

There will be a 45-minute mid-semester exam on Monday Week 6 at 12:00 AEDT.

D2C: Assignment 2, Stage C (4 Marks, Group)

Due 07:00 Monday Week 7, 19 April 2021 (time remaining).

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

Required Files for Stage C

The simple viewer you build for 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.

Evaluation for Stage C

Criterion Marks
Required admin files have been correctly filled in, committed and pushed, passing the CI compliance test.
Git log provides evidence of healthy teamwork and appropriate use of version control.
0.5
Completion of the Pass level requirements for Part One of the game. 1
Completion of the Credit level requirements for Part One of the game.
Your design shows evidence of modification or further reflection based on feedback received from your tutor for deliverable D2B.
1
Completion of the Distinction level requirements for Part One of the game. 0.5
The work is exceptional. 1

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 (4 Marks, Individual)

Due 07:00 Monday Week 8, 26 April 2021 (time remaining).

Note: 26 April is the ANZAC Day public holiday in the ACT.

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 20 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 originality statement has been edited, committed and pushed, passing the CI compliance test.
Git log provides evidence of healthy teamwork and appropriate use of version control.
Both code and tests compile.
0.5
Your code provides a reasonable implementation of the aspect of the problem you are addressing.
Your contribution comprises at least 20 statements of original code (in addition to the unit test).
1
A good test of the code you implemented (or if your tutor agrees, the test for some other code—see above). 1
Code is substantial and of high quality (well designed, well documented). 0.5
Your work is of an exceptionally high standard. 1

D2E: Assignment 2, Stage E (3 Marks)

Due 07:00 Monday Week 9, 3 May 2021 (time remaining).

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

D2E Group Integration (2 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 prior to your scheduled lab.

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 Board 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).
1
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
You show a very good understanding of the limitations of your code and you are able to discuss possible ways of improving the quality, functionality, and/or performance. 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 (13 Marks, Group)

Due 09:45 AEST Friday Week 11, 21 May 2021 (time remaining).

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
Criterion Marks
All of the required files are correct and have been committed and pushed, passing the CI compliance test.
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.).
Git log provides evidence of healthy teamwork and appropriate use of version control.
The game is executable on a standard lab computer from the game.jar file which resides in the root level of your group repository.
2.5
Your game correctly implements all of the Part One criteria.
Your game must have at least Pass-level functionality.
You have made appropriate use of object-oriented programming features.
3.75
Your game must have at least Credit-level functionality.
The program is well designed.
Comments are clear and sufficient.
Your coding style is good.
You make good / appropriate use of JUnit tests throughout the project.
2.25
Your game must have at least Distinction-level functionality.
Your design and code must be of very high quality.
Your game works well and is easy for a new user to run.
2.25
Your game must have at least High Distinction-level functionality.
Your program demonstrates interesting extensions that go beyond the basic tasks.
Your game must be exceptional.
2.25

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

Video and presentation slides due 07:00 Monday Week 12, 24 May 2021 (time remaining).

Presented in your scheduled lab, Week 12.

Marks will be distributed according to the relative contribution of each group member as documented in admin/contrib-H.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.
presentation.pdf Group presentation slides (to be used in Week 12 lab), in the base (root) directory of your repo.
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.pdf file 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 over Teams in your regular lab session. 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&gt.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).

Updated:    30 Jun 2021 / Responsible Officer:    Director, School of Computing / Page Contact:    Josh Milthorpe