Marking guide for mock exam. Marks for partial credit may differ if there is evidence of testing. Appropriate testing consists of checking the sample runs given in the exam and uses of QuickCheck; see functions marked 'test' and 'prop' in the sample solution. * Award full marks if the solution is correct. 1abc. 12 marks 2ab, 3ab. 16 marks. * If the solution is not entirely correct, but contains only minor errors such as misplaced comma mispelled or wrong name or operator wrong brackets wrong order in application If there is evidence of testing: 1abc. 9 marks 2ab, 3ab. 12 marks. If there is no evidence of testing: 1abc. 8 marks 2ab, 3ab. 11 marks. * If the solution is on the right track, but contains serious errors such as: missing a filter, guard, or condition missing an accumulation function returning a list where a single value is required, or vice versa using two qualifiers in place of a zip If there is evidence of testing: 1abc. 6 marks 2ab, 3ab. 8 marks. If there is no evidence of testing: 1abc. 4 marks 2ab, 3ab. 6 marks * If the solution is in roughly the correct form (comprehension or recursion, but its content is nonsense. If there is evidence of testing: 1abc. 3 marks 2ab, 3ab. 4 marks. If there is no evidence of testing: 1abc. 1 marks 2ab, 3ab. 2 marks * Give feedback to the student, but deduct no points, if there are 'bad smells' such as the following: an unnecessary equation. an unnecessary branch. an inappropriate variable name (e.g., xs when not a list). a test that a Boolean is true (e.g., e == True rather than e)