Assessment Outline
Assignment: Programming - CA Assignment 4: Programming (Group/Individual) Assignment
Learning ▪ Select an appropriate data types, operations, expressions based on the
Outcomes: problem.
▪ Create scripts implementing data structures as appropriate to a provided
scenario.
▪ Assess the effectiveness of error handling and debugging techniques.
▪ Critically appraise object-oriented concepts such as encapsulation,
abstraction, inheritance and polymorphism.
▪ Implement an object-oriented solution to solve a given problem.
Due Date:
Tuesday 19th July 2022 at 5pm
Submission: ▪ You are required to submit one notebook file (using either Jupyter notebook
or Colab) along with any associated files.
▪ Video screencast required of up to 5 minutes explaining your approach to
the problem and to discuss your code.
Notes
This assessment can either be approached from an individual or group perspective. There should be
a maximum of two people in each group. There should be no plagiarism of online resources or
malpractice. Students have a responsibility to keep their own work secure and maintain the integrity
and validity of their academic output.
This assessment is worth 40% of the total marks for the Programming module.
Please comment your solution both within the code blocks and provide a description block in the
notebook file. Marks will be awarded for commenting and description within the notebook file. It is
expected that you will use libraries/classes to help you complete this assessment. You should discuss
this making reference to each of the object-oriented concepts used in the application and critical
appraising their effectiveness. Provide a justification for the approach that you have taken and if any
other techniques/approaches were considered. The notebook file and the video will be assessed at
different points so detailed description is also required on the notebook. It is inevitable that you
come across errors when you are developing. It is important to capture these in the notebook (either
by keeping the blocks there and commenting them out or writing a description of the error and the
resolution).
Tasks
A lecturer is scoring grades for students in a spreadsheet, they are not stored in the format that the
lecturer can analyse these effectively. Using the file StudentGrades.csv, you are required to complete
the following:
• Import the CSV file into Python and print the data.
• Split the data (text data and numeric data) to allow for processing.
• There are marks for three modules for each student, print the three marks for each student.
• Determine the mean, median and mode for each student (average of the three modules).
• Determine the mean, median and mode for the class (average of all students for each module).
• Create a total column where Module 1 is worth 50% of the total grade, Module 2 is worth 25%
of the total grade and Module 3 is worth 25% of the total grade.
• Determine the mean, median and mode for the student totals (average of all students).
• Using the total column, determine the student’s classification (0-39 – Fail, 40-59 – Pass, 60-69
– Merit and 70-100 – Distinction).
• Print a count of the number of students that achieved each classification.
It is possible to complete this manually using loops and conditional logic. It is also possible to use
libraries such as Pandas to help you answer this question. It is suggested the functions are utilised for
each of the points raised. However, these are the requirements and it is entirely up to you how you
approach this problem.
The overall mark for this component will be; 70% for the programming solution, comments and
description and 30% for the screencast video. The video screencast will require up to a maximum of 5
minutes explaining your approach to the problem and to discuss how your code works.
Further Guidance
Any work found to be plagiarised will receive a mark of zero. Late submissions will have a penalty
applied as per Section 5.2.5 of the QA Handbook. The code should be created/edited by the student
(or the group if working in a group). If the student is using code from the practical sessions it should
be explained thoroughly to demonstrate that the student understands the code. You may be asked to
explain your code if there are limited comments and there are problems with originality. Output
should also be explained thoroughly to demonstrate understanding.