Assignment Deliverables
| Stage | Deliverable | Week | Marks |
|---|---|---|---|
| 1 | Organize groups, assign roles | 2 | 1 |
| 2 | Analysis, design and part one | 4 | 3 |
| 3 | Individual class implementation | 6 | 1 |
| 4 | Individual class and testing | 8 | 4 |
| 5 | Integration demo | 9 | 3 |
| 6 | Final submission (Friday |
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 may 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 at the start of your lab, Week 4.
Marks will be distributed to group members according to the distribution of effort among the group members as documented in 2-contrib.txt.
Required Files for Stage 2
Aside from the UML diagram (which will be presented on paper), all parts of this assignment will be submitted via mercurial. Therefore the simple game you build as part of Stage 2, including all class files, must be pushed to mercurial.
You should find a template version of each of these 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, only your group repository will be named according to your group name (e.g. tue16a), rather than your uid.
You must edit each of the files, ensuring that they are filled in correctly, before committing and pushing the changes.
| File | Description |
|---|---|
| 2-orig.txt | Originality statement for Stage 2. |
| 2-contrib.txt | Contribution statement for Stage 2. |
Evaluation for Stage 2
In this stage you need to have generated a UML class diagram for your design of the game (as per the final deliverable for this semester, not the simple part one of the assignment). (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
- The required admin files have been correctly filled in, committed and pushed.
- The mercurial log file reveals healthy use of mercurial.
- Your class diagram is appropriately designed.
Criteria for gaining 2 / 3
The previous criteria plus...- Completion of the Pass level requirements for Part One of the game.
- The class diagram is clearly presented with well-selected class names.
Criteria for gaining 3 / 3
The previous criteria plus...- Completion of the Distinction level requirements for Part One of the game.
- Fields and methods are included in all of the classes in your UML diagram.
This completes Part One of the game. The remaining stages of the assignment are with respect to Part Two of the game.
Stage 3 (1 Mark, Individual)
Due at the start of your 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 edit, commit, and push the following to your group repository prior to the week 6 lab.
| File | Description |
|---|---|
| 3-orig-<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
- Your originality statement has been edited, committed and pushed.
- 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 at the start of your 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 |
|---|---|
| 4-orig-<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
- Your originality statement has been edited, committed and pushed.
- 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 test class 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 at the start of your lab, Week 9
Marks will be distributed to group members according to the distrubution of effort amoung the group members as documented in 5-contrib.txt.
Required Files for Stage 5
The group must edit, commit, and push the following to the group repository prior to the week 9 lab.
| File | Description |
|---|---|
| 5-orig.txt | Originality statement for Stage 5. |
| 5-contrib.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, in the root of your repository. |
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. See the howto video on how to create a jar. You should be able to your code 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
- All of the required files are correct and have been committed and pushed.
- 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, it should be absolutely clear to the reader which person or persons were responsible for the code and the ideas behind it.).
- 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:00 2:00pm Friday, Week 11
(Note the revised deadline of 2: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 2pm, 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 |
|---|---|
| 6-orig.txt | Originality statement for Stage 6. |
| 6-contrib.txt | Contribution statement for Stage 6. |
| 6-best-<uid>.txt | Statements of best code. |
| 6-features.txt | A concise list of the key features implemented by your game. Please use the 6-features.txt template, replacing - with X for each implemented feature. |
| All .java files | Complete source code for your assignment. |
| game.jar | A working executable jar file for your game (see howto video). |
| 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
- All of the required files are correct and have been committed and pushed.
- 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.).
- 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 during lab, Week 12
Marks will be distributed to group members according to the distrubution of effort amoung the group members as documented in 7-contrib.txt. Your presentation must use presentation.pdf, which was submitted as part of Stage 6.
Required Files for Stage 7
| File | Description |
|---|---|
| 7-orig.txt | Originality statement for Stage 7. |
| 7-contrib.txt | Contribution statement for Stage 7. |
Evaluation for Stage 7
Each group is expected to give a 10 min demonstration of their project (you must include in the 10 min 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
- All of the required files are correct and have been committed and pushed.
- 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!). This folder should have been in your repository since the begining.
- 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 begining (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 6-best-<uid>.txt, if your UID was u2345678, then your file should be called 6-best-u2345678.txt.
- You must have a working jar file named game.jar in your root directory.
- All of your source code must be in the repository (Eclipse will put it in a folder called src).


