0% found this document useful (0 votes)
6 views

MITS4002 Major Assignment - 2023S3

This document provides instructions for a major assignment in an object-oriented software development course. Students will work in groups to develop robots in Java for the Robocode game environment, and individually write a 500-word report on the NoCode programming platform. For the Robocode component, each group must create customized robots with different movement behaviors, a class to track other robots, and a class that extends tracking to predict robot movement. Students must submit a Word document with screenshots and code appendices, as well as a video demonstrating their robots. They will also submit their individual 500-word NoCode reports. The document outlines grading rubrics for the code, video demonstration, and NoCode report components of the assignment.

Uploaded by

Ismail Hafeez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

MITS4002 Major Assignment - 2023S3

This document provides instructions for a major assignment in an object-oriented software development course. Students will work in groups to develop robots in Java for the Robocode game environment, and individually write a 500-word report on the NoCode programming platform. For the Robocode component, each group must create customized robots with different movement behaviors, a class to track other robots, and a class that extends tracking to predict robot movement. Students must submit a Word document with screenshots and code appendices, as well as a video demonstrating their robots. They will also submit their individual 500-word NoCode reports. The document outlines grading rubrics for the code, video demonstration, and NoCode report components of the assignment.

Uploaded by

Ismail Hafeez
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Member 1 (Leader) ID/Name:

Member 2 ID/Name:

Member 3 ID/Name:

Member 4 ID/Name:

Member 5 ID/Name:

Member 6 ID/Name:

MITS4002
OBJECT-ORIENTED SOFTWARE
DEVELOPMENT
Major Assignment (30%)
Robocode and NoCode Report
Due date: Week 12

50% deduction for Late Submission within one week


0 mark for Late Submission more than one week
0 mark for duplicated Submission or Shared Work

You will be marked based on your submitted zipped file on Moodle. You are
most welcome to check your file with your lab tutor before your submission.
No excuse will be accepted due to file corruption, absence from lecture or lab
classes where details of lab requirements may be given.

Please make sure that you attend Lecture EVERY WEEK as low
attendance may result in academic penalty or failure of this unit.
MITS4002 Major Assignment

This assessment item relates to the unit learning outcomes as in the unit descriptors.

This checks your understanding about object-oriented software development.

This assessment covers the following LOs.

LO1 Demonstrate understanding of classes, constructors, objects, data types and instantiation;
Convert data types using wrapper methods and objects.

LO2 Independently analyse customer requirements and design object-oriented programs using
scope, inheritance, and other design techniques; Create classes and objects that access
variables and modifier keywords. Develop methods using parameters and return values.

LO3 Demonstrate adaptability in building control and loop structures in an object-oriented


environment; Demonstrate use of user defined data structures and array manipulation.

LO4 Create object hierarchies using additional utility methods, application programming
interfaces (API) and interfaces, in conjunction with existing classes and objects.

LO5 Demonstrate usage of collection to access data structures effectively and compose full-
fledged object-oriented applications.

LO6 Extend the on object-oriented concepts and design patterns introduced in lectures to carry
out further research on a chosen object-oriented design pattern or emerging recent
programming languages.

. Page 2
MITS4002 Major Assignment

Problem Description

This project is based on the design, and implementation in Java of a RoboCode (A) and a report
of NoCode (B).
A. Java Code: Your group creates customize robots, test and deploy them in Robocode.
B. Video:
a. 2-3 min Explain your code and where your or other parts of Robocode that uses at
least two of the following: inheritance, polymorphism, interfaces, encapsulation.
Explain if that is the best use or whether another technique should be used and
why. e.g. Should inheritance be use instead of interfaces in your code and why?
(Note: When you start working – the major of the time you will be adding to
someone else’s code – learn to read it and use it).
b. Run a 1-2 minute game play. Want to see your robot running around.
C. One of the emerging programming languages that has gained significant popularity in
recent years is NoCode. You are tasked to explore and write a 500-word report about it.
Attach your report to the same Word document using appropriate heading sections.
e.g. Watch tutorials and discuss how to use it and will it ever completely replace
programming languages such as Java? Why? Useful link:
https://www.nocode.tech/tutorial-directory?difficulty=Beginners

Descriptions of the RoboCode Requirements

The application should include the following classes:


a) Create one robot for each of your team members. The Name of your robot should be
your student number. Note: Only one needs to be advance, the others can be target practice
(e.g. don’t move or fire).
b) Create a robot that goes in a rectanglar shape and another that goes in a circle shape (target
bot)
b) Create a class that tracks and predicts movements of other robots.
Class TrackBot()
private variables of bearing, distance, energy, heading, name, velocity
public getters/setters, reset() (set all private values to zero – e.g. lost
target)
You need to use an ArrayList to track each movement of track.
Constructor – calls reset
public void onScannedRobot(ScannedRobotEvent event) {
//call trackBot() to set variables
}
c) At least one of your robots should call TrackBot and use it to navigate.
d) Create PredictBot that extends TrackBot() that output the predicted movement of a
tank based on trackBot() to set dish scanner and gun position.

Hints:
Assume you install robocode in c:\robocode
You can compile via the command line such as: (compiles your TrackBot class and your
robot StudentID class).
javaac -classpath c:\robocode\robocode.jar TrackBot.java
javaac -classpath c:\robocode\robocode.jar studentID.java

. Page 3
MITS4002 Major Assignment

You may need to include a package to compile (same name as your folder, e.g. td is the name of
your folder) add the following to the start of your code:
package td;
(change directories to that parent directory of td, td the folder where your source code is)
javaac -classpath c:\robocode\robocode.jar td\TrackBot.java
javaac -classpath c:\robocode\robocode.jar td\studentID.java
Useful Links.
There are plenty of youtube videos, websites dedicated to Robocode, here are a few:
https://robowiki.net/wiki/Robocode/Download_And_Install (install in C:\)
https://robowiki.net/wiki/Robocode/NetBeans/Configure (setup Netbeans)
https://robowiki.net/wiki/Robocode/My_First_Robot (Create your first robot)
https://robowiki.net/wiki/Robocode/Getting_Started (Play the game)

What You Have to Submit

Team leader to submit:

1. Submit a Word document with the following:


a. A maximum of 2-4 pages with screenshots explaining your code, functionality
and why you implemented. Explain any shortcomings or extension issues that
might arise. Explain how you tested the code with screenshots or reference to
screenshots.
b. A link to your video (e.g. upload to YouTube as unlisted and put the full link in
the report).
c. In the appendix YOUR code. e.g. Code for your two classes. Make sure you
include comments such as Header Code – name, student number, date written,
lecturers name, brief description of the class. Method description.
d. In the appendix Screenshots of test cases.

2. Your NoCode report.

. Page 4
MITS4002 Major Assignment

Rubrics for MITS4002 Major Assignment


(Total: 30 marks)

Code as Excellent: Very Good: Average: Poor: The Needs Irrelevant/N


described, Objects/Classe Objects/Classes Objects/Classes classes are Improvement: o
tested and s are are are partially Attempted submission.
presented in optimized use implemented implemented developed. but barely
the report. advance using some using and does not meet (0 point)
features of advance meets Minor Errors the
java while features of java specifications in code may specification.
meeting while meeting affect run-
specifications. specifications. (6 points) time. (2 point)

(10 points) (8 points) (4 points)

Run-Time as Excellent: Very Good: Average: Poor: Needs Irrelevant/N


described, Video Video Improvement: o
demonstrated demonstrate demonstrate Video Limited Few submission.
in the video. showing key main key aspect demonstrate discussion on sentences on
aspect of the of the code and some aspect of code and the topic. (0 point)
code and how how it affects the code and how it Much more is
it affects run run time with how it affects affects run expected.
time with good run time with time.
thorough explanation of sufficient (2 point)
explanation of (4 points)
explanation of OO principals.
OO principals. OO principals.
(8 points)
(10 points) (6 points)

A report of Excellent: Very Good: Average: Poor: Needs Irrelevant/N


NoCode Report Report Improvement: o
programming. discusses the discusses Report uses Limited Few submission.
complexity of various aspects some examples discussion on sentences on
programming of the code. of noCode with noCode and the topic. (0 point)
language and Where to use it limited limited to no Much more is
explain if and how with comparison to discussions. expected.
NoCode can relevant Java.
(4 points) (2 point)
replace them. comparison to
(6 points)
(10 Marks) Java.

(10 points) (8 points)

. Page 5

You might also like