Assignment 2

This is your second assignment that will contribute to your grade for the semester. It is worth 40% of your overall grade. You are asked to write a more involved working animation / game.

Assignment 2

This will detail, for your second assignment:

  • Specification: What is expected from your code.
  • Marking: The marking scheme for the assignment.
  • Submission: Submission details including submission date.

Assignment Advice

Read the specification carefully.

Start working on the assignment early.

When you think you are ready to submit check the following:

  • Ensure you have all covered all the elements mentioned in the marking scheme.

  • Ensure specifically that your indentation is consistent.

  • Write comments to explain what your animation does and particularly how tricky code works and what it does.

  • Ensure that your name, student number and description of what your code does is written at the top of the main sketch file.

  • Ensure that you have named the submission (zip) file according to the prescribed naming convention.

Specification

In your second assignment, you are asked to write code to produce a more complex dynamic animation / game of your choice with user interaction of your choice in Processing (Java).

The aim of the assignment is for you to demonstrate your understanding of all the structures seen so far. Specifically, you are asked to include the following:

  • At least one user-defined class, adhering to encapsulation rules, complete with:

    • fields
    • constructors
    • getters
    • setters
    • other methods
  • The usual Processing class containing the draw(), setup(), etc. This class must use your user-defined class(es) in an appropriate manner.

  • Use of selection (if) and iteration (loops).

  • Use of primitive / object arrays.

A note on complexity

The complexity of the entire code is important, i.e. the more complex the code, the more marks you will achieve. (see marking scheme).

The Pong game v8 that we covered in lectures and labs is an example of top marks for complexity.

Bear in mind that you don't have to develop a game; you can also develop a complex animation instead.

A Suggestion

Build a game other than Pong or a complex animation.

Our recommendation is that you try something other than Pong. If you hand up another version of Pong it will need to go beyond v8 in complexity. i.e. you have the code for v8 and v9 of Pong so you will need to implement addtional functionality and classes (e.g. 2 player with one player being the computer etc.)

When handing up it is important that you explicitly highlight how you've met each part of the spec. Additionally if you are handing up Pong again you will need to explicity highlight the difference between the first version that you handed up and this version.

Marking Scheme

There are two components to your overall mark:

  • Structure of code
  • Complexity of code

Please read below regarding interviews.

Structure of Code (100 Marks)

Working animation with inclusion of bespoke methods in the main sketch. (10 marks)

User-defined class (at least one):

  • Creation of user-defined class with appropriate fields, constructors, getters, setters (10 marks).

  • Class bespoke methods (15 marks)

  • The user-defined class(es) are used in an appropriate manner (15 marks).

Data structure:

  • Use of a data structure to store information i.e. array (20 marks).

  • Calculations performed on the information stored (20 marks).

Use of standard programming control contructs (if, loop) (5 marks).

Comments, indentation, naming, structure of code, etc. (5 marks)

Complexity of code (10 Marks)

This is a mark out of 10 based on the complexity of the problem solved/code. So you will get more marks if the animation is more involved than one that is very simple. Please do not confuse an elegant solution of a complex problem with a simple problem.

How is the final mark calculated?

The final mark is calculated by multiplying the two component marks and dividing by 10. This means that complexity is a multiplier so a weakness in that will negatively affect your grade.

Example:

  • Structure of code = 80/100
  • Complexity of code = 9/10
  • Final mark = (80 by 9)/10 = 72%

Interview (and subsequent grade calculation)

Please note that we reserve the right to interview you on your code. You may be asked (for example) to explain:

  • Any of the code.
  • How you decided on your animation.
  • How you developed your animation; where did you start first, etc?
  • Anything else.

If we need to interview you on your work, you will be given a mark out of 10 for the interview. This mark will be a multiplier of your overall grade. For example:

  • Structure of code = 80/100
  • Complexity of code = 9/10
  • Interview = 8/10
  • Final mark = (80 by 9 by 8)/100 = 57.6%

Handup of submission

Date

The submission is due Sunday 15 April 2018, 11.55PM.

No late submissions will be accepted (unless mitigating circumstances, with supporting documentation, apply).

Where

The dropbox is available in the 'Assignments' section in Moodle.

File naming convention

Your files should be contained in a folder named according to the rule:

  • First name + Second name, e.g. Donald Duck's folder would be called DonaldDuck.

You should then compress (zip) the folder that contains all the sketches used to develop your assignment; this is the file that you should submit.

readme tab

You should include a readme tab in the sketch. The contents of this tab should be of the following format:

/*
Name : 
Student Number:

Brief description of the animation achieved:

Justification of spec:

Known bugs/problems:

Any sources referred to during the development of the assignment (no need to reference lecture/lab materials):

*/

If you hand up another version of Pong you will need to state the addtional features added in the description section above.

Additionally, if you are handing up Pong for a second time, add another section within the description, explicity stating the difference between the first version that you handed up, and this version.