Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit

ELE00041I Java Programming Coursework Assessment 2021/22

Java Programming

Assignment 2021/22

1   Task: Flocking Simulation

You are to design and implement a flocking simulation in Java using object-oriented programming techniques and Java libraries that have been introduced in lectures and labs. You must directly use the Canvas and geometry classes developed in your “drawing” and “geometry” packages from the laboratories – failure to use these will result in an overall mark of zero for the “Project Code” component of the assignment. You may add to these classes as appropriate, but any additions should not supersede the original functionality, particularly the method signatures and instance fields. You should also make use of the classes/code developed in the “turtle” package – you should modify these as appropriate for the new task.

 

Figure 1: Flocking birds: the flock seems to be an entity in and of itself but is really a collection of

individuals, each following a set of simple rules.

Your application must simulate flocking behaviour in a two-dimensional world displayed graphically on the computer screen. Every individual in the flock should be able to move around and interact with others by following a set of simple rules that result in emergent flocking behaviour.

Your program must allow for the number of individuals and flocking parameters to be set and/or varied by the user through interacting directly with your application’s graphical interface.

There are three circular obstacles on the canvas: radius 75 pixels centred at (350,200); radius 40 centred at (150, 150); radius 80 centred at (600, 300). These are impervious to any individuals – they cannot move into them or through them. You must implement these obstacles as part of the base specification.

To  achieve  high  marks,  the  project  should  demonstrate  good  object-oriented  design practices, such as inheritance and polymorphism, along with modular well-written code with good documentation and a well written and well-structured report.

To achieve high marks the program should be extended to include other complexities, such as control over simulation speed, obstacles, collision detection or other types of individuals for the flock to interact with (perhaps add predators into the simulation from which prey flee). However, a simple program that works is better than an unfinished, overly ambitious attempt that does not compile or execute correctly. 

2   Academic Misconduct

This is an individual assignment – you MUST work on the program and report on your own. You are welcome to consult any sources of information you can find if you provide appropriate reference and attribution to the authors. If you use code written by anybody else (including your lecturers) you must make it clear which part is yours and which has been written by the other person. You should make this clear both in your report and in the code, itself.

Wholesale copying or reworking of large code chunks or a complete program written by someone else is not acceptable.

If the rules on what constitutes correct academic conduct are not clear, please consult the University guide on Academic Misconduct here:

https://www.york.ac.uk/students/studying/assessment-and-examination/academic-misconduct/

3   Submission

You are to write your program in standard Java, version 11 and it must compile and execute correctly on the departmental laboratory computers using the Java command line tools or Eclipse.

Submission will be via the VLE in two parts:

1.   Individual Report: a PDF report of maximum eight A4 pages in length. Anything beyond the limit will not be considered. A title page is not required but, if included, will not count towards the limit.

2.   Project Code: A zip file containing:

−   The Java source code for your program (fully commented and properly indented).

−   A simple text file named README.txt that explains which source files should be compiled and the entry point used to run your final program.

PLEASE NOTE: Anonymised marking - use your exam number only

Marking will be done anonymously so DO NOT put your name on or in any of the submission parts. Instead, your report, code comments and filenames should identify you using your exam number only.

4   Marking Guidelines

The marks are broken down into the categories below (all marks in percentages). The Project Code will  be  marked  under “Object-Oriented  Design”  and  “Program  Implementation”, the  Individual Report will be marked under “Report”.

Appropriate Object-Oriented Design Practices

Use of multiple classes

Use of composition within your classes

Use of inheritance within your class structure

Use of polymorphism when referring to your objects

Use of interfaces within your class structure

Use of inner and/or anonymous classes

Use of public, private and protected

(30)

6

4

4

4

4

4

4

Program Implementation

Compiles, executes and runs without error

Execution (how well does the actual program work)

Completeness (how complete is the submitted program, how functional)

Modular, non-duplicated code (short, reusable, single-purpose methods)

(35)

5

6

4

4

Program documentation (commenting, formatting, suitable names of variables, etc)

Clarity and simplicity of program (good program structure, logical flow)

Extended functionality (going beyond the basic specification)

4

4

8

Report

Explanation of the flocking algorithm you used

Explanation of design

Explanation of program implementation

Summary of test procedures and results

Readability and formatting

(35)

5

10

10

5

5