The Innovation University of Australia (IUA) decides to give bonus marks to students for a subject depending on their total weighted marks in the subject. It follows the table below to award bonus marks to a student.
Bonus Policy Table
Total Weighted Mark Bonus mark
Between 0 and 50 Nil
Greater than 50, but less than or equal to 70 10% of every mark above 50
Greater than 70, but less than or equal to 90 2 marks PLUS 15% of every mark above 70
Greater than 90, but less than or equal to 100 5 marks PLUS 20% of every mark above 90
For example, if a student gets the total weighted mark of 80 then they get a bonus mark of 3.5. Hence, their total mark will be 83.5. However, the maximum possible mark is 100. That is, if a student gets more than 100 with the bonus mark then the total mark is set to be 100.
The Department of IT of the Innovation University of Australia now asks you to modify the system developed for the IT project for Automatic Grading of Students (AGoS) in Assignment 1. You are required to develop a system to implement the bonus policy and compute total marks of students.
The system will ask a lecturer to enter the marks of a student in Assignment 1, Assignment 2 and the Final Exam, one by one as before. It will then display the weighted mark of each individual assignment, total weighted marks of the assignments, the weighted mark for the Final Exam, and the total weighted mark of the subject. Additionally, it will now display the bonus mark and the total mark with bonus.
A typical example of the display of your program can be as follows. Your program MUST follow the same display style.
The Innovation University of Australia (IUA) Grade System
Please enter all marks out of 100.
Please enter the marks for Assignment 1: 80
Please enter the marks for Assignment 2: 90
Please enter the marks for the Final Exam: 74
Weighted mark for Assignment 1: 16
Weighted mark for Assignment 2: 27
Total weighted mark of the assignments: 43
Weighted mark for the Final Exam is: 37
Total weighted mark for the subject: 80
Bonus mark: 3.5
Total mark with bonus: 83.5
You need to develop the Grade System by completing the following three tasks:
Task 1 -
Draw Nassi Shneiderman (NS) diagrams that present the steps of the algorithm required to perform the task specified. Refer to the tools used in the first assignment, or submit a hand drawn diagram if you prefer.
Task 2 -
Select three sets of test data that will demonstrate the 'normal' operation of your program; that is, test data that will demonstrate what happens when a VALID input is entered. Select two sets of test data that will demonstrate the 'abnormal' operation of your program.
Set it out in a tabular form as follows: test data type, test data, the reason it was selected, the output expected due to using the test data, and finally the output actually observed when the test data is used. It is important that the output listings (i.e., screenshots) are not edited in any way.
Test Data Table
Test data type Test data The reason it was selected The output expected due to the use of the test data The screenshot of actual output when the test data are used
Task 3 -
Implement your algorithm in Python. Comment on your code as necessary to explain it clearly. Run your program using the test data you have selected and complete the test data table above.
Your submission will consist of:
1. Your algorithm through Nassi Shneiderman (NS) diagram/s
2. The table recording your chosen test data and results (it can be in a Word file)
3. Source code for your Python implementation
• Marking criteria
Criteria High Distinction (85-100%) Distinction (75-84%) Credit (65-74%) Pass (50-64%) Fail (0-49%)
o Explain the steps
involved in a
disciplined approach to
o demonstrate elements
of good programming
(four marks allocated) NS diagram/s do not have
component. NS diagram/s are
presented where all
variable names are
meaningful. NS diagram/s follow
the convention, they are
free of errors, and they
produce the algorithm
correctly. NS diagram/s follow the
convention and contain
three or less errors NS diagram/s follow the
convention, but contain
more than three errors
o Identify, isolate and correct errors in all
phases of the programming process
o Apply sound program analysis, design,
coding, debugging, testing and documentation
techniques to simple programming problems
(three marks allocated) Test data explore every branch of the program. Clear explanation is provided of the expected output of the test results.
The presented test output is in the form specified in the assignment. Sound reasons are provided for the selection of test data.
The test output is correct for any test data in
addition to those used in the submitted table to report the test result. Selected test data present both normal and abnormal data.
The presented test output is correct. Selected test data are clearly presented in a table and allow easy calculation of output.
The presented test output matches the actual
results that can be obtained from the execution of the program. Selected test data are not clearly presented in a table and/or do not allow easy calculation of output.
The presented test output does not match the actual results that can be obtained from the execution of the program.
o Apply sound program analysis, design, coding, debugging,
testing and documentation techniques to simple programming problems
o Interpret algorithms and program code
o Write code in appropriate language
(eight marks allocated) Python code is produced and contains only necessary statements and variables. Python code is produced and implements the NS diagram correctly. Python code is produced. It is fully documented with appropriate comments and all variable names are meaningful. Python code is produced and executes properly without any syntax errors. It produces correct
results. Python code is produced and does not execute properly. It may contain syntax errors and/or produce incorrect results.
• Additional Comments: The standards outlined for each criteria are cumulative. So, for example, to achieve the standard for high distinction your work needs also to meet the standards outlined for Pass, Credit and Distinction.
• You MUST prepare and present all source code, test data table, and NS diagram/s as separate files within a single directory (folder) identified by your name. This directory will later be compressed into a single ZIP file - see the 'Requirements' section below.
1. The Python source code you write should be saved with a name such as assA2.py by choosing File Save As.. from the IDLE 'edit' window.
2. The other documentation (such as your NS diagrams and your table of test data) should be saved in a Word document with a name such as assA2.doc.
Thus your directory for Assignment A2 will contain two files - and be identified with your name (and not the name of the subject or the assignment).
It is critically important that your test runs are unmodified outputs from your program, and that these results should be reproducible by the marker running your saved .py python program in IDLE.
Once you have saved the files (as described under 'Presentation' above) into a single directory identified by your name( Hassam), you MUST compress that directory into a single ZIP file (and only a ZIP file - not a RAR file or some other compressed file format), as outlined in the section on presentation. Failure to adhere to these requirements may disqualify the submission for marking.