Introduction & Submission For this referral coursework, you have to write a number of Python programmes to perform certain tasks related to calculating and displaying student results on a set of...

Python Programming must be in the correct format


Introduction & Submission For this referral coursework, you have to write a number of Python programmes to perform certain tasks related to calculating and displaying student results on a set of modules in a particular year. These are set up in part 2 of this document. This introduction provides a guide to the terminology used within the application. You should read this first. It aims to set the scene for the exercises and to give some clues about the kind of techniques to be used in those challenges. Hopefully, it explains the terminology used, the (simplified) rules that are applied when calculating student marks and indicates where the programming exercises will have a focus/purpose. Submission You should create separate python files for each exercise (which should be commented appropriately) and submit a single zipfile containing all of your solutions. There will be an appropriate submission zone on the module's Bboard site for you to do this, where the deadline is also specified. Terminology Tasks, Sub-Tasks and weightings. For simplicity, we will assume that an undergraduate degree course is taken over three years and that in every year of the course, a student takes 6 modules. Assessment in a module is in the form of tasks, and a module can have a maximum of two tasks. If a module has two assessment tasks, these tasks are weighted ie each task makes a proportional contribution to the overall assessment mark. Typically, these weightings are expressed as percentages of the overall mark so that weightings add up to 100% eg · Task1 (coursework) 75%, Task2 (exam) 25%. · Task1 (cv and website) 40%, Task2 (groupwork) 60% · Task1 (coursework) 100% (only one task…) Each task can have sub-tasks: Each of a module's assessment tasks is allowed to have subtasks ie a number of smaller tasks which contribute to the mark for that task. Marks for subtasks are only used by the teaching team. At the end of the module, it is only the overall task mark(s) that are submitted to the admin process. The teaching team has to calculate those overall task mark(s). Module teams frequently break down the marks available in the subtasks to reflect the weighting of the task in the module. For example, for a weighting of 75-25, they might allocate marks to subtasks which add up to 75 for task 1 (eg 40 for in-class tests and 35 for a group assignment). But, for reasons indicated below, the team then has to convert that mark out of 75 into a percentage (ie a mark out of 100) Example 1: One particular module has two tasks: Task1 is coursework and weighted at 75%, Task2 is weighted at 25% and is a single exam. Task 1 has several subtasks: there are 4 homeworks (each worth 10%) and a group assignment worth 35%. The marks for each homework are released as a mark out of 10, but the mark for the group assignment is released as a percentage. For example, on Task1, a student gets 4, 5, 6, 3 as marks for the homework and 55% for the group work. Their mark out of 75 is then: markOf_75 = (total of homework marks) + (grpPercent)*35 = (4 + 5+6 + 3) + (55/100)*35 = 18 + 19.25 = 37.25 markAsPercentage = (markOf_75/75) *100 = (37.25/75) *100 = 49.7 ## rounded to 1 decimal place. Module Marks For each module, a set of marks has to be submitted to the course admin teams at the end of the teaching year. This set is the set of marks per student, per task. However, because of the variation in weightings across modules and to avoid other issues, marks for each task MUST be submitted as a percentage (ie a mark out of 100). Hence the second calculation for markAsPercentage. The 'system' then calculates the students overall mark for a module by applying the weightings. Example 2: A module has two tasks, with task 1 weighted at 75 and task 2 at 25. A student gets 60% for task 1 and 40% for task2. These values can be interpreted as meaning either that they have 60% of 75 and 40% of 25 or, equivalently, 75% of 60 and 25% of 40. Their overall mark is then 0.75*60 + 0.25*40 = 45 + 10 = 55% Example 3: A module has two tasks, weighted at 40-60. A student gets 30% for task 1 and 45% for task2. Their overall mark is then: 0.4*30 + 0.6*45 = 12 + 27 = 39 So, in summary, at the end of a module a set of marks is submitted. If there is one task on the module, a single mark (out of 100) is submitted for each student. If there are two tasks on the module, two marks are submitted for each student and each of those marks is out of 100. The student’s overall mark for the module is then calculated using the task weightings. Passing or Failing. NB: This is a bit of a simplification. The real rules are a bit more detailed. Once the data is in the system, we also need to work out whether a student has passed or failed and, if they have failed, where they should be doing referral work. To pass a module, a student's overall mark on the module must be >= 40. If their overall mark on the module is < 40,="" they="" have="" failed="" that="" module.="" if="" a="" student's="" overall="" average="" (across="" all="" six="" modules="" in="" the="" year)="" is="">= 40 and they have passed all modules they pass the year. If a student's overall average (across all six modules) is >= 40 and they have passed 5 of the modules, then they can be given a compensated pass on that failed module if their mark on that module is >= 30. They then also pass the year. If a student has failed two modules or more then they have failed the year at the first attempt. They are offered the chance of referral in those modules (ie a second attempt at doing the work): · If the module has a single task, they get offered the chance to do referral work for that single task. · If the module has two tasks, then · if they have failed both tasks (ie the mark submitted for each task was less than 40%), they have to do referral work for both tasks. · if they have only failed one task, then they only have to do referral work in that one task (There are other rules that apply after this stage in the process, but they are outside the scope of this assignment) Part 2: Coding Exercises. EXERCISE 1: [10 Marks] In this exercise you have to write a small programme which would typically be used by a module team to work out the marks for a student that would then be passed to the admin team. This exercise deals with only one, specific module. The module has two assessment tasks, weighted at 75:25. Task 1 has 5 subtasks with the first four subtasks being marked out of 10 (each), and the final one being marked out of 100, but contributing 35 marks to the module overall. The programme needs the name of a single student and a sequence of 6 numbers: -- The first four marks are integers and given out of 10. -- The fifth mark is a percentage (possibly a decimal value), but that needs to be converted into a mark out of 35. -- The final mark is a mark out of 25, which might also be a decimal, and needs to be converted into a percentage. The first five marks represent the marks for the subtasks of Task 1 (coursework), so the total coursework mark is the (sum of the first four marks ) + (the calculated percentage of 35) The final mark is the Task 2 (exam) mark These marks need to be processed to produce: 1) the student's overall mark for Task 1 AS A PERCENTAGE (of 75). This should be expressed to 2 decimal places 2) The student's mark for Task 2 AS A PERCENTAGE (of 25). This should be expressed to 2 decimal places. A set of test data has been setup in skeleton1.py. It consists of a dictionary of key:tuple pairs, with the key being the student name and the tuple containing their marks: baseData = { "Fred":(9,8,1,7,50,16.5), "Bill":(5,9,7,5,71,14), "Chloe":(5,6,0,9,25,14.25), "Georgina":(6,10,6,9,67,20), "Alice":(6,5,7,0,57,19)} for key in baseData: You should complete the for-loop in skeleton1.py to processes the values in the dictionary and produce the following output (note output is rounded to 2 decimal places): Fred's marks are: Task 1 mark(%): 56.67 Task 2 mark(%): 66.0 Bill's marks are: Task 1 mark(%): 67.8 Task 2 mark(%): 56 Chloe's marks are: Task 1 mark(%): 38.33 Task 2 mark(%): 57.0 Georgina's marks are: Task 1 mark(%): 72.6 Task 2 mark(%): 80 Alice's marks are: Task 1 mark(%): 50.6 Task 2 mark(%): 76 EXERCISE 2: [10 Marks] Calculate overall mark for a student on a module A programme to calculate the overall module mark for an individual student would need the following inputs: · The module name · The weighting(s) for task 1 and task 2 as integers between 0 and 100 (inclusive) · The student’s name, · Their marks for task 1 and task 2 as percentages (ie marks out of 100). A typical run of the programme for input and output would look like this: # get inputs: please enter module name >> programming weighting for task 1 >> 75 weighting for task 2
May 23, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here