Fundamentals of Programming

PROG5001 Fundamentals of Programming
Assignment 2
PROG5001 Fundamentals of Programming | Assessment 2 1

Task: Programming Practice
Unit Objectives: LO2, LO3, LO4
Due Date:
Weight:
Check the website
40% (30 hours)

Must be completed as individuals.
Task Description:
Your task is to develop a Java program to manage
student marks. This is an extension from the first
assignment. Your work must demonstrate your
learning over the first five modules of this unit. The
program will have the following functional
requirements:
F1: Read the unit name and students’ marks
from a given text file. The file contains the
unit name and the list of students with their
names, student ids and marks for three
assignments. The file also contains lines,
which are comments and your program
should check to ignore them when reading
the students’ marks.
F2: Calculate the total mark for each student
from the assessment marks and print out the
list of students with their name, student id,
assessment marks and the total mark.
F3: Print the list of students with the total
marks less than a certain threshold. The
threshold will be entered from keyboard.
F4: Print the top 10 students with the highest
total marks and top 10 students with the
lowest total marks (algorithm 1).
F5: Create a simple menu system to allow
users to select and execute each function
(algorithm 2).
You will need to write algorithm 1 and algorithm 2
pseudo code before implementing the algorithms in
BlueJ. You also need to select appropriate data
structures to hold the student list. Note that your
program must perform input validation for any user’s
input.
You will submit your program to GitHub and the link
to the GitHub repository must be submitted to the
MySCU for marking.
You should use ‘best practice’ throughout, such as
commenting on your code and spacing your code so
it is readable, using reasonable naming, and
validating your code to make sure it conforms to
coding standards.
Apart from this, you can use this as a creative
exercise. You can think about innovative ways to
develop and implement the algorithms, so please
make this your own project that can act as a starting
point of your programming journey.
Marking Criteria:
The rubric for this assignment is available on the
MySCU site and will give the criteria for marking.
Generally, you need to not only concentrate on
getting the code right, but also think about how you
are presenting that code and algorithms.
The difference between a “Pass” and higher grades
will be based on how much you look at the whole
project and development practices.
Submission:
You will need to submit the GitHub link to the
assignment repository to the submission link
provided for this assignment on the MySCU site.
Make sure you have the following documents in the
repository:
The BlueJ project with all your Java code
files
A text file with the pseudo code of algorithm
1 and 2
Resubmit policy:
As this task is the major task for a core unit, it is
eligible for a resubmit under our resubmit policy. This
means that if you fail the assessment then you will
be given a chance to resubmit, if you are eligible.
Eligible students are those who have
handed in all assessments; and
not committed academic misconduct in the
unit; and
passed at least 50% of the other
assessment in the unit; and
failed this assessment and cannot pass the
unit otherwise.
If you fail this assessment and are eligible for a
resubmit, your unit assessor will contact you in Week
7 with further instructions.
Getting Help:
This assignment, which is to be completed
individually, is your chance to gain an understanding
of the fundamental concepts of programming which

PROG5001 Fundamentals of Programming
Assignment 2
PROG5001 Fundamentals of Programming | Assessment 2 1
later learning will be based. It is important that you
master these concepts yourself.
Since you are mastering fundamental skills, you are
permitted to work from the examples in the MySCU
site or textbook, but you must acknowledge
assistance from other textbooks or classmates. In
particular, you must not use online material or help
from others, as this would prevent you from
mastering these concepts.
This diagram will help you understand where you can
get help:

Encouraged Attribution Required
Not acceptable Ask tutor

Be aware that if you do get help from one of the red
sources, you will be reported for academic misconduct,
which may have serious penalties. Please visit the
following link for the guidelines:
https://bit.ly/scuAcadMisconduct
Lecturer Tutors Online
Forums Relatives
Students
outside unit Hired coders Classmates Private Tutors
Other