COMPUTER SCIENCE. H446/02 Summer 2017 examination series Set C Mid A LEVEL. Exemplar Candidate Work. H446 For first teaching in 2015

Similar documents
COMPUTER SCIENCE. H446/02 Summer 2017 examination series Set A High A LEVEL. Exemplar Candidate Work. H446 For first teaching in 2015

COMPUTER SCIENCE. H446/02 Summer 2017 examination series Set A Low A LEVEL. Exemplar Candidate Work. H446 For first teaching in 2015

Computer SCienCe Theme: Programming Techniques

AS and A LEVEL H046/H446 COMPUTER SCIENCE. Psuedocode Guide. August 2015

A LEVEL H446 COMPUTER SCIENCE. Code Challenges (21 40) September 2015

COMPUTER SCIENCE. H446/01 Summer 2017 examination series Set A Mid A LEVEL. Exemplar Candidate Work. H446 For first teaching in 2015

COMPUTER SCIENCE. H446/01 Summer 2017 examination series Set A Low A LEVEL. Exemplar Candidate Work. H446 For first teaching in 2015

Cambridge TECHNICALS LEVEL 3

Computer SCienCe Theme: Applications Generation

SAMPLE CURRICULUM GUIDE June 2014

Cambridge TECHNICALS LEVEL 3

Cambridge TECHNICALS LEVEL 3

CODE CHALLENGE WORKED EXAMPLE:

Cambridge TECHNICALS LEVEL 3

Tuesday 14 June 2016 Afternoon Time allowed: 1 hour 15 minutes

COMPUTER SCIENCE. MCQs and Answers. MCQS Unit 2.3 Robust Programs Lesson 1 Testing Programs GCSE (9 1)

GCE. Computing. Mark Scheme for January Advanced Subsidiary GCE Unit F452: Programming Techniques and Logical Methods

Example Candidate Responses. Cambridge International AS & A Level Computer Science. Paper 3

INSTRUCTIONS TO CANDIDATES INFORMATION FOR CANDIDATES. Computer Science (A Level)

Preparing for AS Level Further Mathematics

Cambridge Technicals IT. Mark Scheme for January Unit 2: Global information

Candidate Number. This document consists of 14 printed pages and 2 blank pages.

Cambridge International Examinations Cambridge International Advanced Subsidiary and Advanced Level. Published

DESIGN AND TECHNOLOGY

DESIGN AND TECHNOLOGY

Example Candidate Responses. Cambridge International AS & A Level Computer Science. Paper 2

Unit 1.4 Wired and Wireless Networks

GCSE Computer Science

GCSE Business and Communication Systems. Mark Scheme for June Unit A267: ICT skills for business communication systems

Cambridge Assessment International Education Cambridge International Advanced Subsidiary and Advanced Level. Published

GCE. Computing. Mark Scheme for June Advanced GCE Unit F453: Advanced Computing Theory. Oxford Cambridge and RSA Examinations

Cambridge Technicals IT. Mark Scheme for June Unit 2: Global Information. Level 3 Cambridge Technical in IT

F453. COMPUTING Advanced Computing Theory ADVANCED GCE. Thursday 23 June 2011 Morning

Cambridge Technicals , Mark Scheme for January 2017

Cambridge Assessment International Education Cambridge International Advanced Subsidiary and Advanced Level. Published

GCE Computing. Mark Scheme for June Unit F453: Advanced Computing Theory. Advanced GCE. Oxford Cambridge and RSA Examinations

GCE. Mathematics. Mark Scheme for January Advanced GCE Unit 4736: Decision Mathematics 1. physicsandmathstutor.com

OCR H446 A-Level Computer Science

Key Dates Timetables: 2015/16

Cambridge Assessment International Education Cambridge International Advanced Subsidiary and Advanced Level. Published

Cambridge National Creative imedia. Mark Scheme for June Unit R081: Pre-Production Skills

Friday 16 June 2017 Morning

Cambridge TECHNICALS CAMBRIDGE TECHNICALS IN ENGINEERING LEVEL 3 UNIT 5 ELECTRICAL AND ELECTRONIC DESIGN. RESOURCES LINK April 2015

THIS IS A NEW SPECIFICATION

Vocational Qualifications (QCF, NVQ, NQF) Business Skills Level 1-3. OCR Report to Centres

Cambridge Technicals Digital Media. Mark Scheme for January Unit 2: Pre-production and planning

Cambridge International Examinations Cambridge International Advanced Subsidiary and Advanced Level. Published

OCR Interchange Service Agreement

Vocational Qualifications (QCF, NVQ, NQF) ICT Professional Competence. OCR Report to Centres

Candidate number. Centre number

LEVEL 1 FUNCTIONAL SKILLS

OCR 10 Mensuration (Foundation)

Vocational Qualifications (QCF, NVQ, NQF) Using ICT. OCR Report to Centres Entry Level Award Using ICT (Entry 3) 01679

GCSE AND CAMBRIDGE NATIONALS FINAL EXAMINATION TIMETABLE NOVEMBER 2018

Cambridge Assessment International Education Cambridge International Advanced Subsidiary and Advanced Level. Published

Computer Science Foundation Exam. March 3, Section I A. No Calculators! Name: SSN: In this section of the exam, there are three (3) problems.

Monday 9 June 2014 Afternoon

Cambridge International Examinations Cambridge International Advanced Subsidiary and Advanced Level

datasheet Certificate/Diploma in Business and Administration Main features of the qualifications Introduction Target audience

Friday 9 June 2017 Morning

Cambridge International Examinations Cambridge International Advanced Subsidiary and Advanced Level

Cambridge Assessment International Education Cambridge International Advanced Subsidiary and Advanced Level. Published

Thursday 12 January 2017 Afternoon Time allowed: 1 hour

FSMQ, PRINCIPAL LEARNING LEVEL 3 AND LEVEL 3 CERTIFICATE EXAMINATIONS FINAL EXAMINATION TIMETABLE JANUARY

Cambridge Technicals Engineering. Mark Scheme for January Unit 3: Principles of mechanical engineering

GCE Applied ICT. Mark Scheme for June Unit G055: Networking Solutions. Advanced GCE. Oxford Cambridge and RSA Examinations

Cambridge Assessment International Education Cambridge International General Certificate of Secondary Education. Published

GCE. Mathematics. Mark Scheme for June Advanced GCE Oxford Cambridge and RSA Examinations

Wednesday 17 May 2017 Morning

Student Performance Q&A:

GCE Mathematics (MEI) Mark Scheme for June Unit 4752: Concepts for Advanced Mathematics. Advanced Subsidiary GCE PMT

CAMBRIDGE TECHNICALS FINAL EXAMINATION TIMETABLE JANUARY 2017

CAMBRIDGE TECHNICALS FINAL EXAMINATION TIMETABLE JANUARY 2018

Thursday 19 June 2014 Morning

Friday 5 June 2015 Morning

Tuesday 15 January 2013 Morning

Properties of polygons

CAMBRIDGE TECHNICALS FINAL EXAMINATION TIMETABLE JUNE 2017

Thursday 6 June 2013 Afternoon

Cambridge Assessment International Education Cambridge International Advanced Subsidiary and Advanced Level. Published

GCE Computing. Mark Scheme for June Unit F453: Advanced Computing Theory. Advanced GCE. Oxford Cambridge and RSA Examinations

GCE. Computing. Mark Scheme for June Advanced Subsidiary GCE Unit F452: Programming Techniques and Logical Methods

End-Term Examination Second Semester [MCA] MAY-JUNE 2006

Wednesday 14 May 2014 Morning

Computer Science 62. Bruce/Mawhorter Fall 16. Midterm Examination. October 5, Question Points Score TOTAL 52 SOLUTIONS. Your name (Please print)

GCE. Mathematics. Mark Scheme for June Advanced Subsidiary GCE Unit 4736: Decision Mathematics 1. Oxford Cambridge and RSA Examinations

GCSE. French. Mark Scheme for June General Certificate of Secondary Education Unit A703 01/02: Reading. Oxford Cambridge and RSA Examinations

CAMBRIDGE TECHNICALS FINAL EXAMINATION TIMETABLE JANUARY 2019

Mark Scheme (Results) Summer 2010

LEVEL 1 FUNCTIONAL SKILLS

Computer Science Foundation Exam. December 15, Section I A. No Calculators! Name: SSN:

Practice. A Level Computer Science H446/01 Computer systems. Practice paper - Set 1. Time allowed: 2 hours 30 minutes

Thursday 6 June 2013 Morning

PROVISIONAL EXAMINATION TIMETABLE JANUARY 2017

FINAL EXAMINATION TIMETABLE JANUARY 2016

CAMBRIDGE NATIONALS AND PROJECTS PROVISIONAL EXAMINATION TIMETABLE JANUARY 2019

CAMBRIDGE TECHNICALS FINAL EXAMINATION TIMETABLE JUNE 2018

Level 3 Cambridge Technical in IT

Course Report Computing Science Advanced Higher

Cambridge International Examinations Cambridge International Advanced Subsidiary and Advanced Level

Transcription:

Qualification Accredited A LEVEL COMPUTER SCIENCE H446 For first teaching in 2015 H446/02 Summer 2017 examination series Set C Mid Version 1 www.ocr.org.uk/computerscience

Contents Introduction 3 Question 1(a)(i) 4 Question 1(a)(ii) 5 Question 1(b)(i) 6 Question 1(b)(ii) 6 Question 1(c) 7 Question 2(a) 8 Question 2(b)(i) 9 Question 2(b)(ii) 10 Question 2(c)(i) 11 Question 2(c)(ii) 12 Question 2(c)(iii) 13 Question 2(c)(iv) 14 Question 2(d) 15 Question 2(e) 16 Question 4(b)(iii) 26 Question 5(a) 27 Question 5(b) 28 Question 5(c) 29 Question 6(a) 30 Question 6(b)(i) 31 Question 6(b)(ii) 32 Question 6(c)(i) 33 Question 6(c)(ii) 34 Question 6(d)(i) 35 Question 6(d)(ii) 36 Question 6(d)(iii) 37 Question 6(e) 38 Question 6(f )(i) 39 Question 6(f )(ii) 39 Question 2(f ) 17 Question 3(a)(i) 19 Question 3(a)(ii) 19 Question 3(b) 20 Question 3(c) 21 Question 3(d) 22 Question 4(a) 23 Question 4(b)(i) 24 Question 4(b)(ii) 25 2

Introduction These exemplar answers have been chosen from the summer 2017 examination series. OCR is open to a wide variety of approaches and all answers are considered on their merits. These exemplars, therefore, should not be seen as the only way to answer questions but do illustrate how the mark scheme has been applied. Please always refer to the specification (http://www. ocr.org.uk/images/170844-specification-accredited-alevelgce-computer-science-h446.pdf ) for full details of the assessment for this qualification. These exemplar answers should also be read in conjunction with the sample assessment materials and the June 2017 Examiners Report to Centres available on the OCR website http:// www.ocr.org.uk/qualifications/. The question paper, mark scheme and any resource booklet(s) will be available on the OCR website from summer 2018. Until then, they are available on OCR Interchange (school exams officers will have a login for this). It is important to note that approaches to question setting and marking will remain consistent. At the same time OCR reviews all its qualifications annually and may make small adjustments to improve the performance of its assessments. We will let you know of any substantive changes. 3

Question 1(a)(i) A programmer needs to sort an array of numeric data using an insertion sort. (a) (i) The following, incomplete, algorithm performs an insertion sort. Complete the algorithm. procedure sortit (dataarray, lastindex) for x = 1 to lastindex currentdata = dataarray [...] position = x while (position > 0 AND dataarray [ position-1] > currentdata) dataarray[position] = dataarray[...] position = position - 1 endwhile dataarray[position] =... next x endprocedure [3] 2 marks A good response but lost one mark for incorrect answer. 4

Question 1(a)(ii) Show how an insertion sort would sort the following data: 6 1 15 12 5 6 9 [6] 6 marks A good answer clearly showing each step of the process. 5

Question 1(b)(i) Using Big-O notation state the best case complexity of insertion sort. [1] 1 mark A good response. Question 1(b)(ii) Explain what your answer to part (b)(i) means. [3] 2 marks This response has missed stating the best case scenario so loses 1 mark. 6

Question 1(c) The number of data items in the array is continually increasing. Insertion sort has a worst case time complexity of O(n 2 ) and space complexity of O(1). An alternative sorting algorithm that could be used is bubble sort which also has a worst case time complexity of O(n 2 ) and space complexity of O(1). Briefly outline how the bubble sort algorithm works. Discuss the relationship between the complexities and the two sorting algorithms and justify which of the two algorithms is best suited to sorting the array. 5 marks [9] 7

Loop moving through the array is far too vague. At this level it is expected that the use of pointers, incrementation and conditions for iteration should be written explicitly. Good references given to time and space complexity. Correctly identified the insertion sort as the best option and a good explanation. Question 2(a) A programmer is developing an ordering system for a fast food restaurant. When a member of staff inputs an order, it is added to a linked list for completion by the chefs. (a) Explain why a linked list is being used for the ordering system. [2] 0 marks Answers must be clear and relate to the question. Many methods could provide a sequence 8

Question 2(b)(i) (b) Each element in a linked list has: a pointer, nodeno, which gives the number of that node the order number, orderno a pointer, next, that points to the next node in the list Fig. 2.1 shows the current contents of the linked list, orders. O represents a null pointer. (i) Order 158 has been made, and needs adding to the end of the linked list. Add the order, 158, to the linked list as shown in Fig. 2.1. Show the contents of the linked list in the following table. [2] 2 marks A good clear answer. 9

Question 2(b)(ii) (b) (ii) Order 159 has been made. This order has a high priority and needs to be the second order in the linked list. Add the order, 159, to the original linked list as shown in Fig. 2.1. Show the contents of the linked list in the following table. [3] 3 marks Correctly identified that the data has to be added at the end and the pointers updated. 10

Question 2(c)(i) (c) The linked list is implemented using a 2D array, theorders: Row 0 stores orderno Row 1 stores next The data now stored in theorders is shown in Fig. 2.2. theorders[1,0] would return 1 The following algorithm is written: procedure x() finished = false count = 0 while NOT(finished) if theorders[1,count] == null then finished = true else output = theorders[0,count] print(output) count = theorders[1,count] endif endwhile output = theorders[0,count] print(output) endprocedure (i) Outline why nodeno does not need to be stored in the array. [1] 1 mark Good answer relating the nodeno to the array index value 11

Question 2(c)(ii) (c) (ii) Complete the trace table for procedure x, for the data shown in Fig. 2.2. [3] 2 marks Columns are not completed correctly. 12

Question 2(c)(iii) 2(c)(iii) Describe the purpose of procedure x. [2] 2 marks Response here correctly identifies the order number as what is outputted. 13

Question 2(c)(iv) 2(c)(iv) A new order, 190, is to be added to theorders. It needs to be the third element in the list. The current contents of the array are repeated here for reference: Describe how the new order, 190, can be added to the array, so the linked list is read in the correct order, without rearranging the array elements. [4] 4 marks This response clearly shows what is required by completing the given table with the correct values. 14

Question 2(d) 2(d) The user needs to be able to search for, and find, a specific order number. State an appropriate search algorithm that could be used, and justify your choice against an alternative Search algorithm. Appropriate Search Algorithm... Justification... [3] 3 marks Sometimes you need to be careful about being too specific. Here it would have been better just to say in order not in size order as size can be ambiguous. 15

Question 2(e) 2(e) The programmer is writing the program using an IDE. Identify three features of an IDE that the programmer would use when writing the code and describe how the features benefit the programmer. [6] 2 marks First feature is good but it was not sensible to add the saving of energy to the response. The second feature In-program testing would only gain marks if they had described features relevant to testing. As It stands in-program testing is not a feature of the IDE. The 3rd feature again hints at a possible feature but does not actual state the feature of the IDE (colour coding, underlining). Candidates must be careful not to use too general a term e.g. making mistakes quicker to solve should be making syntax errors quicker to find. 16

Question 2(f) 2(f) The programmer is considering using concurrent programming. Discuss how concurrent programming can be applied to the food ordering system and the benefits and limitations of doing so. [9] 3 marks 17

The first paragraph is not relevant to concurrency. Reference to multiple lines of code is too vague at A level to gain credit. Some good points are made such as more difficult for the programmers but too often they are not developed to explain what it is that makes it difficult. 18

Question 3(a)(i) 3 An encryption routine reads a line of text from a file, reverses the order of the characters in the string and subtracts 10 from the ASCII value of each letter, then saves the new string into the same file. The program is split into sub-procedures. Three sub-procedures are described as follows: Read string from file Push each character of the string onto a stack Read and encrypt each character message (a) (i) Identify one further sub-procedure that could be used in the program. [1] 0 marks This response is part of the encryption so already given. Question 3(a)(ii) 3(a)(ii) Describe two advantages of splitting the problem into sub-procedures. [4] 4 marks It would have been better for the first advantage to use the term tested rather than handled. Good second advantage. 19

Question 3(b) 3(b) A function, readmessage: takes the file name as a parameter reads and returns the line of text Complete the pseudocode algorithm for readmessage: function (filename) messagefile = openread( ) message = messagefile.readline() messagefile. return endfunction [4] 4 marks Good answer as getting the case of the identifiers correctly. 20

Question 3(c) 3(c) A function, push, can be used to add a character to a stack. For example: thestack.push( H ) places the character H onto the stack, thestack. A procedure, pushtostack, takes a string as a parameter and pushes each character of the message onto the stack, messagestack. Complete the procedure below. Add comments to explain how your code works. procedure pushtostack(message) [5] 5 marks Generally, arrays should be assumed to be zero based unless otherwise stated in the question. Always make sure to use the correct case for identifiers that are given in the question. 21

Question 3(d) 3(d) Describe the steps that the program would have to take in order to encrypt the characters stored in the stack, and save them in a single variable. [5] 1 mark First sentence shows a misunderstanding of the concept of a stack. The mark for subtracting 10 was generous as from the current item does not mean anything. 22

Question 4(a) 4 A data structure is shown below in Fig. 4.1. (a) Identify the data structure shown in Fig. 4.1. [1] 1 mark The answer correctly identifies the data structure as a tree. 23

Question 4(b)(i) 4(b) The programmer is considering using a depth-first (post-order) traversal, or a breadth-first traversal to find the path between node A and node X. (i) Explain the difference between a depth-first (post-order) and breadth-first traversal. [4] 2 marks Precision is required in responses here. moves through the tree has no value here. LIFO and FIFO get no credit here. 24

Question 4(b)(ii) 4(b)(ii) Show how a depth-first (post-order) traversal would find the path between node A and node X for the structure shown in Fig. 4.1. [6] 3 marks This response has not shown clearly when a node is passed through from when a node is visited. 25

Question 4(b)(iii) 4(b)(iii) Explain how you used backtracking in your answer to part (b)(ii). [3] 1 mark Good use of an example gained the mark. backtracked up the tree doesn t explain the individual steps involved i.e. just going up one level. 26

Question 5(a) 5(a) A recursive function, calculate, is shown below: 01 function calculate(num1, num2) 02 if num1 == num2 then 03 return num1 04 elseif num1 < num2 then 05 return calculate(num1, (num2-num1)) 06 else 07 return calculate(num2, (num1-num2)) 08 endif 09 endfunction (a) Identify the lines where recursion is used. [1] 1 mark Clearly identified lines. 27

Question 5(b) 5(b) Trace the algorithm, showing the steps and result when the following line is run: print(calculate(4,10)) [5] 5 marks A good clear response. It is spotted that there needs to be a final print output of 2. It is important in recursion questions to ensure that you identify the level of each iteration so that the recursion can be unwound at the end. 28

Question 5(c) 5(c) Re-write the function so it uses iteration instead of recursion. [4] 4 marks A good clear response, correctly indented and easy to follow. 29

Question 6(a) 6 A software developer is creating a Virtual Pet game. The user can choose the type of animal they would like as their pet, give it a name and then they are responsible for caring for that animal. The user will need to feed, play with, and educate their pet. The aim is to keep the animal alive and happy, for example if the animal is not fed over a set period of time then the pet will die. The game tells the user how hungry or bored the animal is as a percentage (%) and the animal s intelligence is ranked as a number between 0 and 150 (inclusive). Hunger and boredom increase by 1% with every tick of a timer. When the feed option is selected, hunger is reduced to 0. When the play option is selected, bored is reduced to 0. When the read option is selected, the intelligence is increased by 0.6% of its current value. An example of the game is shown: What type of pet would you like? Fox or Elephant? Fox What would you like to name your Fox? Joanne Joanne s stats are Hunger: 56% Bored: 85% Intelligence: 20 What would you like to do with your pet? Play, Read or Feed? Fig. 1.1 (a) Identify three inputs that the user will have to enter to start, and/or play the game. [3] 3 marks A straightforward question that simply required the candidates to read the question carefully. It is better to name the activity rather than give the general term activity. 30

Question 6(b)(i) 6(b)(i) The developer is using decomposition to design the game. (i) Describe the process of decomposition. [2] 2 marks A well understood concept and well described and concise in the response. 31

Question 6(b)(ii) 6(b)(ii) The developer has produced the following structure diagram for the game: Complete the structure diagram for the Virtual Pet game by filling in the empty boxes. [6] 6 marks A clear response. 32

Question 6(c)(i) 6(c) The developer needs to write procedures for the options play and read. Each of the options changes its corresponding value, and outputs the results to the screen. (i) Write a procedure, using pseudocode, to reset bored and output the new value in an appropriate message. 2 marks [3] Procedure is called play. Note that as bored is set to 0 always Bored : 0% is OK but best practice would encourage candidates to print the contents of the variable bored instead. 33

Question 6(c)(ii) 6(c)(ii) Write a procedure, using pseudocode, to increase intelligence by 0.6% and output the new intelligence in an appropriate message. [3] 1 mark Procedure should be called read. Most marks lost here were due to incorrect calculation of the 0.6% increase of intelligence. In this question the output of the variable intelligence was essential for the mark as the value would vary each time the procedure was called. 34

Question 6(d)(i) 6(d) The developer is extending the game to allow users to have multiple pets of different types. The developer has written a class, Pet. The attributes and methods in the class are described in the table: Part of the class declaration is given: class Pet private petname private bored private hunger private intelligence private type (i) After a user enters the pet name, and chooses a type, the constructor method of Pet is called to create a new instance. The method needs to set petname, as well as hunger, bored and intelligence to starting values of 0. Write, using pseudocode, the constructor method for this class. [4] 35

4 marks Good clear, indented code, easy to follow. Here the use of the parameter type is acceptable because of the use of self.. Question 6(d)(ii) 6(d)(ii) Write a line of code that creates a new instance of Pet for a Tiger called Springy. [2] 1 mark This was poorly answered and indicates that many students do not get enough practical experience of using OOP techniques. 36

Question 6(d)(iii) 6(d)(iii) The method outputgreeting for the superclass is written as follows: 2 marks public procedure outputgreeting() print( Hello, I m + petname +, I m a + type) endprocedure A class is needed for Tiger. The class needs to: inherit the methods and attributes from pet in the constructor, set type to Tiger, intelligence to 10, hunger to 50 and bored to 10 extend the method outputgreeting, by outputting an additional line that says I like to eat meat and roar Write, using pseudocode, the class Tiger. [5] This loses the constructor mark because it has missed the setting of the type variable. It also has calls the superclass incorrectly. 37

Question 6(e) 6(e) The developer made use of abstraction when creating the Virtual Pet game. Discuss the need for and purpose of abstraction and how abstraction will be used in the development of the game. [9] 4 marks Brief but correct definition of abstraction has been given at the beginning. Some examples given but again no development given. Again no references to resources. 38

Question 6(f)(i) 6(f) The developer is storing the user s pets in a 1-dimensional array. At each timer interval, the array is searched, using a linear search, to check if any pets hunger or bored values are greater than 90%. If they are, an alert is displayed to the user. (i) State the complexity of searching the pets in Big-O notation. [1] 1 mark Good answer. n on its own is not enough, the O(n) is required to state the complexity. Question 6(f)(ii) 6(f)(ii) A given computer takes 4 milliseconds (ms) to search an array of 20 pets. Calculate an estimate of how long the computer will take to search an array of 100 pets. Show your working. [2] 2 marks Good clear answer and shows working as the question asked. 39

The small print We d like to know your view on the resources we produce. By clicking on the Like or Dislike button you can help us to ensure that our resources work for you. When the email template pops up please add additional comments if you wish and then just click Send. Thank you. Whether you already offer OCR qualifications, are new to OCR, or are considering switching from your current provider/awarding organisation, you can request more information by completing the Expression of Interest form which can be found here: www.ocr.org.uk/expression-of-interest OCR Resources: the small print OCR s resources are provided to support the delivery of OCR qualifications, but in no way constitute an endorsed teaching method that is required by OCR. Whilst every effort is made to ensure the accuracy of the content, OCR cannot be held responsible for any errors or omissions within these resources. We update our resources on a regular basis, so please check the OCR website to ensure you have the most up to date version. This resource may be freely copied and distributed, as long as the OCR logo and this small print remain intact and OCR is acknowledged as the originator of this work. OCR acknowledges the use of the following content: Square down and Square up: alexwhite/shutterstock.com Please get in touch if you want to discuss the accessibility of resources we offer to support delivery of our qualifications: resources.feedback@ocr.org.uk Looking for a resource? There is now a quick and easy search tool to help find free resources for your qualification: www.ocr.org.uk/i-want-to/find-resources/ www.ocr.org.uk/alevelreform OCR Customer Contact Centre General qualifications Telephone 01223 553998 Facsimile 01223 552627 Email general.qualifications@ocr.org.uk OCR is part of Cambridge Assessment, a department of the University of Cambridge. For staff training purposes and as part of our quality assurance programme your call may be recorded or monitored. Oxford Cambridge and RSA Examinations is a Company Limited by Guarantee. Registered in England. Registered office 1 Hills Road, Cambridge CB1 2EU. Registered company number 3484466. OCR is an exempt charity.