ASSESSMENT GUIDE
Unit Code: ITEC217 Programming Concepts, Semester 2, 2020
Assessment number 3 – Programming Project
Assessment Artefact: project Java code and readme document
Weighting [40%]
Why this assessment?
What are the types of employability skills that I will acquire upon completion of this
assessment?
Assessment Overview:
Due date: Friday, 13 November 2020, 1pm
Weighting: 40%
Length and/or format: Java source code and accompanied short readme doc
Learning outcomes assessed LO2, LO3, LO4
Graduate attributes assessed GA2, GA4, GA5, GA10
How to submit: Assignment submission – via LEO
Return of assignment: Via LEO
Assessment criteria: Ru
ic: see end of document
• Through this assessment, students will be able to work collaboratively in groups to demonstrate
programming concepts and skills for building a bigger object-oriented program with potential impact to
the common good.
Skill Type
Developed critical and analytical thinking ☒
Developed ability to solve complex problems ☒
Developed ability to work effectively with others ☒
Developed confidence to learn independently ☒
Developed written communication skills ☒
Developed spoken communication skills ☐
Developed knowledge in the field study ☐
Developed work-related knowledge and skills ☒
2
Context
Building a larger Unit Assignment Marks Tracking software system
Instructions
You need to do this project in a group with a maximum of 3 members. Unlike previous practicals, this is a much
igger assessment and group work, so start as early as possible as leaving to the last few days won't work!
For this final project, there are two phases of tasks called object-based (ob) and object-oriented (oo). You need to
submit 3 files in total:
1) for phase 1, submit all your object-based source code including test classes in a zip file with
name '[group_name]_ob.zip'; and
2) for phase 2, submit all your object-oriented source code including test classes in a zip file with
name '[group_name]_oo.zip'; and
3) lastly, submit a '[group_name]_readme.docx' file that describes:
• your group name, so that the above placeholder [group_name] in submitted file names can be substituted
with your actual group name.
• your group member names with respective few-sentence contribution statement and percentage specifically
to each of the four requirements (REs) outlined below for the purpose of peer assessment of phase 1. The
contributions of group members to each RE must add up to 100%. Also elect a dedicated group leader and
specify who she/he is.
• for both phase 1 and 2, simply describe how your code bases are structured (i.e. software designs) and how
others can test your project (i.e. user manuals).
Note:
1. The mark allocation to phase 1 is 25% of the unit full mark, phase 2 is 10% (as an oo extension of phase
1), and the readme file 5%. Phase 1 marks
eakdown (25%) is subject to the implementation of
system/software requirements (REs) below and peer assessment of contributions. For phase 2 and
eadme doc assessments (15%), members in the same group will receive the same mark.
2. Only group leader is responsible/needs to submit the project solution so that only one submission is
needed from each group. In special circumstances, other group members except the leader can help
make the submission.
3. Throughout the project description, you are provided with some preliminary UML diagrams, instructions,
code as hints (largely incomplete and imprecise) to help structure your final project submissions. Please
first do spend time carefully reading through the entire project description as follows, before designing
and coding your project.
4. Online group discussion/workshop is encouraged, and they should be scheduled outside the class once
or twice a week. You will also need to research into different Java API classes to implement the project
equirements. Feel free to expand your imagination and maximise your project's functionality (bonus
marks might be considered)! Multiple attempts of the submission are allowed until the due date.
3
Project title: Unit Assignment Marks Tracking System
Carefully read the information provided below and design, develop and test a java application using Object
Oriented Programming concepts to track student marks of various assignments in a given unit of study.
The requirements (REs) or functionalities of the system are:
RE0. System design (5%)
Draw a UML diagram of the whole system involving classes and relationships between classes, subject to the rest
of requirements (REs) in the following.
RE1. Tracking Display (8%)
The java application should have a main menu (e.g. GUI) from which we can track the marks of all students in the
class ITEC217x as detailed in the following system interaction and reporting requirements. Assume there are 5
types of assessments: weekly discussion forums (DFs), weekly quizzes, weekly practical tasks, a final project,
and a final exam.
RE2. System Interaction (6%)
The system should be able to allow entering/adding the marks (of at least 10 students in total) using the
JOptionPane class or some other visual interface. Assume the marks will be stored in textual form on a file or
multiple files.
The system should also be able to retrieve the marks obtained by a student or by all students, by reading the
stored data from the file. This means it should be able to search a student.
In addition, the system should be able to update the mark and remove the record of any student from the system,
y accessing the file. This means it should be able to update student marks if there is an e
or and eliminate
ecords of students who has dropped out of the class.
RE3. System Reporting (6%)
The system should be able to produce a report of the average of the weekly assessment marks obtained by all
students from week 1 up to a specified week. The report must also identify those students whose marks are
elow the average.
The system should produce a report of both project and final exam marks obtained by all students. The report
must also identify those students who fail (<50%) at least one of these components.
The system should produce a report of the total marks and respective tentative grades (HD, D, C, P, or F)
awarded to each student at the end of the semester. Total marks are calculated by adding the marks/percentages
of the weekly assessments, the project marks and the final examination marks. Among these total marks, the
eport should identify the boundary cases for further review such as the marks of 84, 74, 64, and 49.
Assumptions
There are weekly and individual task assessments as follows.
Assume the weekly distribution of the assessment marks is:
Weekly Assessment XXXXXXXXXXWeighting (evenly distributed to each week)
Weekly quizzes over 10 weeks XXXXXXXXXX%
Weekly DFs over 10 weeks XXXXXXXXXX%
Weekly practicals over 10 weeks XXXXXXXXXX%
Assume the project and final exam marks distribution is:
Other Assessment XXXXXXXXXXWeighting
Project XXXXXXXXXX30%
Final Exam XXXXXXXXXX40%
4
Note: you can solve this task in two phases: 1) Object based 2) Object oriented
1) In the Object based phase you will not dwell on inheritance, instead you will focus on implementing different
objects and their interactions.
2) In the later Object oriented phase you will improve your program with advanced concepts such as inheritance
and abstract classes.
Phase 1: Object based (25%)
For Phase 1, you need to submit a zip file '[group_name]_ob.zip' with all source code compressed.
To get started, study a preliminary overall class diagram, a specific class diagram, and a list of high level class
definitions.
Below are some basic instructions to help structure your code:
Write a java class each for
WeeklyQzAssmtMarks
WeeklyDFAssmtMarks
WeeklyPractAssmtMarks
Assume each of the above classes have attributes:
-Max marks
-Awarded marks
-weekNo
Also assume each of the above clases have operations:
getMarks()
setMarks()
getWeekNo()
setWeekNo()
We will follow the iterative software development life cycle methodology. That is, we will design a little, code a
little and test a little before completing the whole project
Hence, we will not test all the above classes at once. First let us code the WeeklyQzAssmt class. Then we will
test it a bit by creating objects in a Test class and invoking the methods on it. Once we are sure about it we will
epeat the same for the WeeklyDFAssmt class etc.
Next we follow the design a little, code a little and test a little principle for the same for the following 3 sets of
classes. That is first we will create an object of SemQzAssmt and test it. Once we are happy with it we will do the
same for SemDFAssmt and SemPractAssmt
Also create a java class each for:
SemQzAssmtMarks
SemDFAssmtMarks
SemPractAssmtMarks
SemPrjAssmtMarks
SemFinalAssmtMarks
Assume the SemQzAssmtMarks has an a
ay of 10 WeeklyQzAssmt
Assume the SemDFAssmtMarks has an a
ay of 10 WeeklyDFAssmt
Assume the SemPractAssmtMarks has an a
ay of 10 WeeklyPractAssmt
Also assume each of the first three classes have the following operations:
getTotal(starting week, ending week)
getAverage(starting week, ending week)
getMaxWithWeekNo()
getMinWithWeekNo()
https:
leo.acu.edu.au/pluginfile.php/4220093/mod_assign/introattachment/0/UMTSWithPackageUMLDiagram.jpg?forcedownload=1
https:
leo.acu.edu.au/pluginfile.php/4220093/mod_assign/introattachment/0/RicherUMLDiagramPart.png?forcedownload=1
https:
leo.acu.edu.au/pluginfile.php/4220093/mod_assign/introattachment/0/UnitMarksTrackingSystemHighLevelAPIsWOInterfaces.txt?forcedownload=1
https:
leo.acu.edu.au/pluginfile.php/4220093/mod_assign/introattachment/0/UnitMarksTrackingSystemHighLevelAPIsWOInterfaces.txt?forcedownload=1
5
Then it is left to you how to similarly structure the classes SemPrjAssmtMarks and SemFinalAssmtMarks.
Then the Student class will need to be coded and tested
SemStudentAssmtMarks
Attributes:
SemQzAssmtMarks
SemDFAssmtMarks
SemPractAssmtMarks
SemFinalAssmtMarks
SemPrjAssmtMarks
Operations:
getTotal()
getAverageWeeklyMarksExclPrjAndFinal()