Assignment title: Information


Task The Innovation University of Australia (IUA) has initiated an IT project for Automatic Grading of Students (AGoS). For the project, IUA has employed you to write a program in Python that will ask a lecturer to enter a student's marks for Assignment 1, Assignment 2 and the Final Exam, one by one. A lecturer is expected to enter a mark out of 100 for all assessment items. The weights of Assignment 1, Assignment 2 and the Final Exam are 20%, 30% and 50%, respectively. The program needs to use the weights to calculate the weighted marks for the assessment items and the final mark for the subject. The program should then display the weighted mark of each individual assignment, total weighted mark of the assignments, weighted mark for the Final Exam, and total weighted mark of the subject. A weighted mark is calculated by multiplying the obtained mark and the weight of the assessment item. For example, if a student obtains 70 out of 100 in Assignment 1 then their weighted mark in the assignment will be 70 x 20/100 = 14. 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: 100 Thank You! 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: 50 Total weighted mark for the subject: 93 Goodbye. You need to develop the Grade System by completing the following three tasks: Task 1 - Draw a Nassi Shneiderman (NS) diagram that presents the steps of the algorithm required to perform the task specified. Some examples of NS diagrams can be found at the following web links: • http://www.thern.org/projects/nassi-schneiderman/nassi.htm • https://en.wikipedia.org/wiki/Nassi%E2%80%93Shneiderman_diagram • https://www.cs.umd.edu/hcil/members/bshneiderman/nsd/Yoder-Schrag-nassi_schart.pdf There are tools (see links below) that can be useful in drawing a NS diagram. However, you can draw the diagram/s with a pen/pencil on a piece of paper and scan it for submission. Please ensure that the scanned file and your handwriting are clear and legible. • https://www.edrawsoft.com/Nassi-Schneiderman.php • http://www.breezetree.com/articles/nassi-shneiderman-diagram.htm • http://wiki.c2.com/?NassiShneidermanDiagrams 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 a screenshot of 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 is used Normal Normal Normal Abnormal Abnormal 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 final column of 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 Rationale This assessment task is designed to reinforce topic material related to the programming work cycle, and the input, processing, output program structure. The task meets or partially meets the following learning objectives: LO1. be able to explain the steps involved in a disciplined approach to problem-solving, algorithm development and coding LO2. be able to demonstrate and explain elements of good programming style LO3. be able to identify, isolate and correct errors in all phases of the programming process LO4. be able to interpret algorithms and program code LO6. be able to apply sound program analysis, design, coding, debugging, testing and documentation techniques to simple programming problems LO7. be able to write code in an appropriate coding language