ELE00041I Java Programming 2021/22
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: daixieit
Department of Electronic Engineering
Resit Assessments 2021/22
ELE00041I
Java Programming
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 rectangular obstacles on the canvas: size (dx= 150, dy=80) with top-left corner at ( 100,100), size (dx=80, dy=150) with top-left corner at (350,200), size (dx=150, dy=120) with top-left corner at (550,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 (30)
Use of multiple classes 6
Use of composition within your classes 4
Use of inheritance within your class structure 4
Use of polymorphism when referring to your objects 4
Use of interfaces within your class structure 4
Use of inner and/or anonymous classes 4
Use of public, private and protected 4
Program Implementation (35)
Compiles, executes and runs without error 5
Execution (how well does the actual program work) 6
Completeness (how complete is the submitted program, how functional) 4
Modular, non-duplicated code (short, reusable, single-purpose methods) 4
Program documentation (commenting, formatting, suitable names of variables, etc) 4
Clarity and simplicity of program (good program structure, logical flow) 4
Extended functionality (going beyond the basic specification) 8
Report (35)
Explanation of the flocking algorithm you used 5
Explanation of design 10
Explanation of program implementation 10
Summary of test procedures and results 5
Readability and formatting 5
2022-07-25