Assignment Deliverables
| Stage | Deliverable | Week | Marks |
|---|---|---|---|
| 1 | Organize groups, assign roles | 2 | 1 |
| 2 | Analysis and design | 4 | 3 |
| 3 | Individual class implementation | 6 | 1 |
| 4 | Individual class and testing | 8 | 4 |
| 5 | Integration demo | 9 | 3 |
| 6 | Final submission (Friday 5pm) | 11 | 15 |
| 7 | Final demo and presentation | 12 | 3 |
Stage 1 (1 Mark, Group)
Due in lab, Week 2.
The same mark will be awarded to all group members.
The main objective of this first stage is to form the group. It should contain three members (two if you are unable to form a group of three). Your tutor will help in this process. People may self-select groups.
Once you have formed a group you should do the following:
- Assign roles within the group. The key roles, such as desiging the system and writing code will be done by all members. Special roles assigned to specific members include:
- Manager/Chairperson – they are responsible to make certain everything is on track.
- Software librarian – they should be a thorough, reliable, and careful person who responsibility that all code is carefully maintained in mercurial. They should also check that the project fulfills all the requirements at each stage.
- Record Keeper – keeps track of decisions/plans/designs that are made at meetings.
- Exchange contact information.
- Arrange a weekly meeting time (this should be at minimum 1 hour and outside your normal lab time).
Criteria for gaining 1/1
- The record keeper has made a note of: members, uids, roles, weekly meeting time, and contact details. This information has been put in an email and sent to your tutor and all members of the group.
Stage 2 (3 Marks, Group)
Due in lab, Week 4.
Marks will be distributed to group members according to the distrubution of effort amoung the group members as documented in contrib2.txt.
Required Files for Stage 2
At this stage (Mon 13/8/12), the mercurial repository for each group is not yet online. Please ensure that you have created and completed the two deliverable files prior to your lab, and that they are accessible within at least one group member's account.
Once the mercurial repository comes online you should add these files to the repository according to instructions that will be posted here. If that has not happened before your lab, then one member of your group should email the two files to your tutor at (or before) the start of your lab.
Sorry for this inconvinience. The technical staff have run into some challenges in getting it all working.
| File | Description |
|---|---|
| orig2.txt | Originality statement for Stage 2. |
| contrib2.txt | Contribution statement for Stage 2. |
Evaluation for Stage 2
In this stage you need to have generated a UML class diagram for solving the basic part of the problem you take on. (It must be completed before the lab and be on paper. By having it on paper the tutor can add comments and recommend changes.)
Criteria for gaining 1 / 3
- A class diagram which is appropriately designed.
Each class is assigned to a member of the group for implementation.(This is unnecessary. I do not expect each class to be implemented by only one person.)
Criteria for gaining 2 / 3
The previous criteria plus...- The diagram is clearly presented with well-selected class names.
Criteria for gaining 3 / 3
The previous criteria plus...- The fields and methods are included in all of the classes.
Stage 3 (1 Mark, Individual)
Due in lab, Week 6
Each group member will be assessed separately. Your code should be in your group repository, so that your tutor can see your code when they clone your repository.
Required Files for Stage 3
Each group member must add the following to your group repository prior to the week 6 lab. Note: One member of your group should create a folder called admin in your group repo. Please add your contribution and originality statements to this folder, commit and push them. Now that your group repository is online, you should also add your stage 1 and stage 2 contribution and originality statements to the admin folder within your repo.
| File | Description |
|---|---|
| orig3<uid>.txt | Originality statements for Stage 3. |
Evaluation for Stage 3
Each member of the group must show the tutor the implementation of one of the classes that they are working on. You will need to select a class such that it has some original code in it (at least 10 statements of new code). You must be able to explain your code to your tutor, justifying your programming decisions. Your tutor will give you feedback.
Criteria for gaining 1 / 1
- The mercurial log file will reveal healthy use of mercurial.
- The class must compile without any errors.
- It must be a reasonable implementation of what is required.
Stage 4 (4 Marks, Individual)
Due in lab, Week 8
Each group member will be assessed separately.
Required Files for Stage 4
Each group member must upload the following to the group repository prior to the week 8 lab.
| File | Description |
|---|---|
| orig4<uid>.txt | Originality statements for Stage 4. |
Evaluation for Stage 4
Along with your working class you must show your tutor a test class.
Criteria for gaining 2 / 4
- The mercurial log file will reveal healthy use of mercurial.
- Both the class and the test class compile.
- Your class provides a reasonable implementation of the aspect of the problem you are addressing.
- Your class contains at least 20 statements of original code.
Criteria for gaining 3 / 4
The previous criteria plus...- The testing class that provides a good test of the class you implemented.
Criteria for gaining 4 / 4
The previous criteria plus...- Your code is substantial and of a high quality (well designed, well documented).
Stage 5 (3 Marks, Group)
Due in lab, Week 9
Marks will be distributed to group members according to the distrubution of effort amoung the group members as documented in contrib5.txt.
Required Files for Stage 5
The group must upload the following to the group repository prior to the week 9 lab.
| File | Description |
|---|---|
| orig5.txt | Originality statement for Stage 5. |
| contrib5.txt | Contribution statement for Stage 5. |
| All .java files | Complete source code for your assignment. |
| game.jar | A working executable jar file for your game. |
Evaluation for Stage 5
This week you must demonstrate that all of the classes work together. You should package your program as a .jar file called game.jar. Instructions on how to create a jar file are here. Also, you should be able to run it using:
java -jar game.jaror
java -Djavafx.runtime.path=/usr/local/javafx/rt -jar game.jarif necessary.
(Note - getting you 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.)
Criteria for gaining 1 / 3
- Mercurial log files reveal healthy use of mercurial.
- All the classes must compile without error and that the game works (or at least partly works).
Criteria for gaining 2 / 3
The previous criteria plus...- 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, the reader of the code should know which person or persons wrote a given class.).
- The game should execute correctly from the jar file (although it may not yet be complete).
Criteria for gaining 3 / 3
The previous criteria plus...- You show a very good understanding of the limitations of the performance of your code and you are able to discuss possible ways of improving the performance.
Stage 6 (15 Marks, Group)
Due 5:00pm Friday, Week 11
Marks will be distributed to group members according to the distrubution of effort amoung the group members as documented in contrib6.txt.
A snapshot of your group's mercurial repository will be automatically taken at 5pm, Friday, Week 11. It is essential that you strictly follow the instructions on the structure of your mercurial repository and the list of required files below. Files that are not included in the stipulated location will not be marked.
Required Files for Stage 6
| File | Description |
|---|---|
| orig6.txt | Originality statement for Stage 6. |
| contrib6.txt | Contribution statement for Stage 6. |
| best<uid>.txt | Best code statments. |
| features.txt | A concise list of the key features implemented by your game. Please be sure to order this list in the same ordering as the feature list here. |
| All .java files | Complete source code for your assignment. |
| game.jar (updated 17/10/12, had incorrectly said game.java) | A working executable jar file for your game. |
| presentation.pdf | Group presentation (to be used in week 12 lab). |
Your presentation pdf file must be suitable for viewing on the lab projectors, and must include the following:
- Names of all students who contributed.
- A summary of what you did.
- The class diagram as part of a design section.
- Screen shots of your game.
Evaluation for Stage 6
It is your responsibility to check that the version of your system in Mercurial at the deadline is working correctly.
Criteria for gaining 8 / 15
- 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, the reader of the code should know which person or persons wrote a given class.).
- Mercurial logs must indicate appropriate use of version control.
- The program must compile and run (from the .jar file).
- Your game must have at least pass-level functionality.
- You have used an enum type and inheritance.
- Your presentation pdf must have all required components.
Criteria for gaining 9-11 / 15
The previous criteria plus...- The program is well designed.
- Comments are clear and sufficient.
- Your game must have at least credit-level functionality.
- Your coding style is good.
Criteria for gaining 12-15 / 15
The previous criteria plus...- Your design and code must be of very high quality.
- Your program demonstrates interesting extensions that go beyond the basic task.
- Your game must have at least distinction-level functionality.
- Your game works well and is easy for a new user to run.
Stage 7 (3 Marks, Group)
Due in lab, Week 12
Marks will be distributed to group members according to the distrubution of effort amoung the group members as documented in contrib7.txt. Your presentation must use presentation.pdf, which was submitted as part of Stage 6.
Required Files for Stage 7
| File | Description |
|---|---|
| orig7.txt | Originality statement for Stage 7. |
| contrib7.txt | Contribution statement for Stage 7. |
Evaluation for Stage 7
Each group is expected to give a 10 min demonstration of their project (this includes time 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.
Criteria for gaining 2 / 3
- The presentation needs to be well organized and effectively communicated.
- The presentation must be no more than 10 mins long, this includes time for a few questions.
Criteria for gaining 3 / 3
The previous criteria plus...- The presentation must be engaging and clearly summarize your project. It also must appear well planned and rehearsed.
- Your presentation must be visually engaging.
Required Structure For Your Mercurial 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 root folder (not "Admin" or any other variation!).
- Your admin folder must contain each of the files listed in the deliverables above, using exactly the file names specified.
- Your admin folder should not have any sub-folders in it.
- In the above, when the file name says something like best<uid>.txt, if your UID was u2345678, then your file should be called bestu2345678.txt.
- You must have a working jar file named game.jar in your root directory.
- Your source code must be in the repository (Eclipse will put it in a folder called src).
