Cambridge A Level Computer Science 9608 — 2020 May/June Paper 4 · Variant 3

9608/43/M/J/20

The question paper and its mark scheme, free to read here and free to download. This is Cambridge’s own paper, exactly as it was sat.

← All Computer Science papers

Question paper16 pages

Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 1 of 16
Page 1 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 2 of 16
Page 2 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 3 of 16
Page 3 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 4 of 16
Page 4 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 5 of 16
Page 5 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 6 of 16
Page 6 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 7 of 16
Page 7 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 8 of 16
Page 8 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 9 of 16
Page 9 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 10 of 16
Page 10 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 11 of 16
Page 11 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 12 of 16
Page 12 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 13 of 16
Page 13 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 14 of 16
Page 14 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 15 of 16
Page 15 of 16
Cambridge A Level Computer Science 9608 2020 May/June Paper 4 · Variant 3 question paper, page 16 of 16
Page 16 of 16

Mark scheme15 pages

Answers below. Sit the paper first if you are practising.

Mark scheme, page 1 of 15
Page 1 of 15
Mark scheme, page 2 of 15
Page 2 of 15
Mark scheme, page 3 of 15
Page 3 of 15
Mark scheme, page 4 of 15
Page 4 of 15
Mark scheme, page 5 of 15
Page 5 of 15
Mark scheme, page 6 of 15
Page 6 of 15
Mark scheme, page 7 of 15
Page 7 of 15
Mark scheme, page 8 of 15
Page 8 of 15
Mark scheme, page 9 of 15
Page 9 of 15
Mark scheme, page 10 of 15
Page 10 of 15
Mark scheme, page 11 of 15
Page 11 of 15
Mark scheme, page 12 of 15
Page 12 of 15
Mark scheme, page 13 of 15
Page 13 of 15
Mark scheme, page 14 of 15
Page 14 of 15
Mark scheme, page 15 of 15
Page 15 of 15

Paper as text

Question paper, page 1

This document has 16 pages. Blank pages are indicated. DC (RW) 182205/3 © UCLES 2020 [Turn over * 4 7 2 9 1 3 4 9 7 2 * COMPUTER SCIENCE 9608/43 Paper 4 Further Problem-solving and Programming Skills May/June 2020 2 hours You must answer on the question paper. No additional materials are needed. INSTRUCTIONS ● Answer all questions. ● Use a black or dark blue pen. ● Write your name, centre number and candidate number in the boxes at the top of the page. ● Write your answer to each question in the space provided. ● Do not use an erasable pen or correction fluid. ● Do not write on any bar codes. ● You may use an HB pencil for any diagrams, graphs or rough working. ● Calculators must not be used in this paper. INFORMATION ● The total mark for this paper is 75. ● The number of marks for each question or part question is shown in brackets [ ]. ● No marks will be awarded for using brand names of software packages or hardware. Cambridge International AS & A Level

Question paper, page 2

2 9608/43/M/J/20 © UCLES 2020 1 Carlos is writing exception handling code for his program. (a) State what is meant by an exception. … … [1] (b) Give three situations where an exception handling routine would be required. 1 … … 2 … … 3 … … [3] (c) Describe the benefits of using exception handling in a program. … … … … [2]

Question paper, page 3

3 9608/43/M/J/20 © UCLES 2020 [Turn over 2 (a) Programs can be written using recursion. Tick (✓) one or more boxes to show the features that must be included in a valid recursive algorithm. Feature Must be included Incrementation General case Base case Selection case It calls itself [2] (b) The following recursive procedure outputs every even number from the positive parameter value down to and including 2. The procedure checks if the integer parameter is an even or an odd number. If the number is odd, the procedure converts it to an even number by subtracting 1 from it. The function MOD(ThisNum : INTEGER, ThisDiv : INTEGER) returns the remainder value when ThisNum is divided by ThisDiv. Complete the pseudocode for the recursive procedure. PROCEDURE Count(BYVALUE ………………………………… : INTEGER) IF …………………………………(Number, 2) <> 0 THEN Number Number – 1 ENDIF OUTPUT …………………………………………………………… IF Number > 0 THEN …………………………………(………………………………… – 1) ENDIF ENDPROCEDURE [5]

Question paper, page 4

4 9608/43/M/J/20 © UCLES 2020 (c) A program allows guests to input a meal option at a wedding. Guests can choose meal option 1 or meal option 2. The program will keep count of the numbers of each meal option chosen. The program ends when a value other than 1 or 2 is entered. It then outputs the count of each meal option. PROCEDURE MealsCount(BYREF MealOption1 : INTEGER, MealOption2 : INTEGER) DECLARE MealOption : INTEGER DECLARE MoreMeals : BOOLEAN MoreMeals True WHILE MoreMeals = True INPUT MealOption IF MealOption = 1 THEN MealOption1 MealOption1 + 1 ELSE IF MealOption = 2 THEN MealOption2 MealOption2 + 1 ELSE OUTPUT MealOption1, " ", MealOption2 MoreMeals False ENDIF ENDIF ENDWHILE ENDPROCEDURE

Question paper, page 5

5 9608/43/M/J/20 © UCLES 2020 [Turn over The program contains a conditional loop. Use pseudocode to rewrite the conditional loop as a recursive algorithm. PROCEDURE MealsCount(BYREF MealOption1 : INTEGER, MealOption2 : INTEGER) DECLARE MealOption : INTEGER … … … … … … … … … … … … … … … … ENDPROCEDURE [5]

Question paper, page 6

6 9608/43/M/J/20 © UCLES 2020 3 A declarative programming language is used to represent the following knowledge base. 01 person(jessica). 02 person(pradeep). 03 person(steffi). 04 person(johann). 05 sport(football). 06 sport(hockey). 07 sport(cricket). 08 sport(volleyball). 09 plays(johann, football). 10 plays(steffi, cricket). 11 plays(jessica, football). 12 will_not_play(pradeep, cricket). These clauses have the following meanings: Clause Meaning 01 Jessica is a person 05 Football is a sport 09 Johann plays football 12 Pradeep refuses to play cricket (a) Elle is a person who plays rugby but refuses to play hockey. Write additional clauses to represent this information. 13 … 14 … 15 … 16 … [4]

Question paper, page 7

7 9608/43/M/J/20 © UCLES 2020 [Turn over (b) Write the result returned by the goal: plays(X, football). X = … [1] (c) Y might play X, if Y is a person, X is a sport and Y does not refuse to play X. Write this as a rule. mightplay(Y , X) IF … … … [5] 4 Object-oriented programming has several features. These include inheritance, classes, methods and properties. (a) Describe what is meant by inheritance. … … … … [2] (b) Identify two other features of object-oriented programming. 1 … 2 … [2]

Question paper, page 8

8 9608/43/M/J/20 © UCLES 2020 5 A tennis club is developing a program to store details of the lessons it offers. The programmer has designed the class Lesson for the details of the lessons. The following class diagram shows the design for the Lesson class. Lesson LessonType : STRING // initialised in constructor to the parameter // value passed to the constructor Instructor : STRING // initialised in constructor to the parameter // value passed to the constructor Constructor() // method used to create and initialise an // object GetLessonType() // returns LessonType value GetInstructor() // returns Instructor value GetFee() // returns the cost of a lesson SetLessonType() // sets the LessonType to the parameter value SetInstructor() // sets the Instructor to the parameter value (a) Write program code for the Constructor() method. Use the appropriate constructor method for your chosen programming language. Programming language … Program code … … … … … … … … [3]

Question paper, page 9

9 9608/43/M/J/20 © UCLES 2020 [Turn over (b) Write program code for the GetLessonType() method. Programming language … Program code … … … … … … [2]

Question paper, page 10

10 9608/43/M/J/20 © UCLES 2020 (c) Fee is the cost that a customer will pay for a lesson. The method GetFee() validates the parameter value. The method is sent a parameter value that represents the skill level of the customer: beginner, intermediate or advanced. The parameter will be a character: • 'B' for beginner • 'I' for intermediate • 'A' for advanced. The method must check the parameter value is a valid character ('B', 'I' or 'A') and return the correct fee. It must return -1 if it is not a valid character. The fees are: • $45 for a beginner • $50 for an intermediate • $55 for an advanced. Write program code for the GetFee() method. Programming language … Program code … … … … … … … … … … … … [5]

Question paper, page 11

11 9608/43/M/J/20 © UCLES 2020 [Turn over (d) The tennis club only offers nine different types of lesson. The lesson objects are stored in a 1D array. Write pseudocode to declare an array LessonArray to store the nine lesson objects. … … [2] (e) The tennis club has the lesson ‘Improve Your Serve’ that has David as the instructor. Write program code to create the lesson ‘Improve Your Serve’ as an instance of the class Lesson. The object needs to be stored in the third element of the array LessonArray. Programming language … Program code … … … [3]

Question paper, page 12

12 9608/43/M/J/20 © UCLES 2020 6 A theatre company stores customer login details to allow customers to book tickets online. A hash table stores login details for 2000 customers. Each customer’s details are stored in a record. The declaration for CustomerRecord is: TYPE CustomerRecord DECLARE UserID : STRING DECLARE PINNumber : INTEGER ENDTYPE A 1D array, CustomerDetails, is used to implement the hash table. CustomerDetails is a global array. The 1D array has 6000 elements. (a) The procedure InitialiseHashTable() initialises the hash table. UserID is initialised as an empty string, and PINNumber initialised to 0 for all of the records. Write pseudocode for the procedure InitialiseHashTable(). … … … … … … … … [4] (b) The function InsertRecord() is used to insert a new record into the hash table. The function, Hash(): • takes a UserID as a parameter • performs the hashing algorithm • returns the calculated index of the user ID within the hash table. If the hash table is full, the function InsertRecord() returns -1. If there is space available in the hash table, the record is inserted, and it returns the position of this record in the array.

Question paper, page 13

13 9608/43/M/J/20 © UCLES 2020 [Turn over Complete the pseudocode for the function. FUNCTION InsertRecord(NewRecord : CustomerRecord) RETURNS INTEGER DECLARE Count : INTEGER DECLARE Index : INTEGER Count 0 Index Hash(…………………………………………………………………………………………………) WHILE (CustomerDetails[Index].UserID <> "") ……………………… (Count <= 5999) Index Index + 1 Count Count + 1 IF Index > 5999 THEN ………………………………………………………………………… ENDIF ENDWHILE IF Count > 5999 THEN ………………………………………………………………… ELSE CustomerDetails[…………………………………………………] ………………………………………… ………………………………………………………………… ENDIF ENDFUNCTION [7]

Question paper, page 14

14 9608/43/M/J/20 © UCLES 2020 7 (a) A shirt design company has an order form to order shirts. Customers can order multiple shirts using the same form. The customer details section has the data: • name • address • telephone number. The order details section has the data: • shirt ID • colour • cost. A total cost for the order is also calculated. The cost of each shirt is dependent on the size ordered. The sizes customers can order are small, medium and large. Complete the following JSP data structure diagram for the order form. Order Form Customer Details Total Cost [7]

Question paper, page 15

15 9608/43/M/J/20 © UCLES 2020 [Turn over (b) Each customer’s order is stored as a record in a file. The customers’ orders are stored in the order in which they arrive in the file and no key field is used. (i) Identify this type of file structure. … [1] (ii) Identify two other types of file structure. 1 … 2 … [2] (c) The procedure UpdateTelephone() allows the shirt company to update the record for a customer’s details. The procedure will update the telephone number. The program stores customer details as a custom data type, Customer. The definition for this data type is: TYPE Customer Name : STRING Address : STRING TelephoneNumber : STRING ENDTYPE The procedure UpdateTelephone() takes the customer record to be updated and the new telephone number as parameters. It then updates the telephone number in the record. Complete the pseudocode for the procedure UpdateTelephone(). PROCEDURE UpdateTelephone(………………………………… ThisCustomer : Customer, ………………………………… NewTelephoneNumber : STRING) ………………………………………………………………………………………………………………………………………………………………………… ENDPROCEDURE [3]

Question paper, page 16

16 9608/43/M/J/20 © UCLES 2020 (d) The shirt company is looking to implement a system to reward customers. The system includes: • 10% discount on orders over $50 • free gift if order over $50 and if the order is placed on a Monday • additional 5% discount if a customer has a loyalty card • free delivery for a customer with a loyalty card and spends over $50. Complete the following decision table for this system. Conditions Order over $50 Y Y Y Y N N N N Monday Y Y N N Y Y N N Loyalty card Y N Y N Y N Y N Actions Additional 5% discount 10% discount Free gift Free delivery [4] Permission to reproduce items where third-party owned material protected by copyright is included has been sought and cleared where possible. Every reasonable effort has been made by the publisher (UCLES) to trace copyright holders, but if any items requiring clearance have unwittingly been included, the publisher will be pleased to make amends at the earliest possible opportunity. To avoid the issue of disclosure of answer-related information to candidates, all copyright acknowledgements are reproduced online in the Cambridge Assessment International Education Copyright Acknowledgements Booklet. This is produced for each series of examinations and is freely available to download at www.cambridgeinternational.org after the live examination series. Cambridge Assessment International Education is part of the Cambridge Assessment Group. Cambridge Assessment is the brand name of the University of Cambridge Local Examinations Syndicate (UCLES), which itself is a department of the University of Cambridge.

Mark scheme, page 1

This document consists of 15 printed pages. © UCLES 2020 [Turn over Cambridge International AS & A Level COMPUTER SCIENCE 9608/43 Paper 4 Written Paper May/June 2020 MARK SCHEME Maximum Mark: 60 Published Students did not sit exam papers in the June 2020 series due to the Covid-19 global pandemic. This mark scheme is published to support teachers and students and should be read together with the question paper. It shows the requirements of the exam. The answer column of the mark scheme shows the proposed basis on which Examiners would award marks for this exam. Where appropriate, this column also provides the most likely acceptable alternative responses expected from students. Examiners usually review the mark scheme after they have seen student responses and update the mark scheme if appropriate. In the June series, Examiners were unable to consider the acceptability of alternative responses, as there were no student responses to consider. Mark schemes should usually be read together with the Principal Examiner Report for Teachers. However, because students did not sit exam papers, there is no Principal Examiner Report for Teachers for the June 2020 series. Cambridge International will not enter into discussions about these mark schemes. Cambridge International is publishing the mark schemes for the June 2020 series for most Cambridge IGCSE™ and Cambridge International A & AS Level components, and some Cambridge O Level components.

Mark scheme, page 2

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 2 of 15 Generic Marking Principles These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these marking principles. GENERIC MARKING PRINCIPLE 1: Marks must be awarded in line with: • the specific content of the mark scheme or the generic level descriptors for the question • the specific skills defined in the mark scheme or in the generic level descriptors for the question • the standard of response required by a candidate as exemplified by the standardisation scripts. GENERIC MARKING PRINCIPLE 2: Marks awarded are always whole marks (not half marks, or other fractions). GENERIC MARKING PRINCIPLE 3: Marks must be awarded positively: • marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate • marks are awarded when candidates clearly demonstrate what they know and can do • marks are not deducted for errors • marks are not deducted for omissions • answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the question as indicated by the mark scheme. The meaning, however, should be unambiguous. GENERIC MARKING PRINCIPLE 4: Rules must be applied consistently e.g. in situations where candidates have not followed instructions or in the application of generic level descriptors.

Mark scheme, page 3

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 3 of 15 GENERIC MARKING PRINCIPLE 5: Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may be limited according to the quality of the candidate responses seen). GENERIC MARKING PRINCIPLE 6: Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or grade descriptors in mind.

Mark scheme, page 4

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 4 of 15 Question Answer Marks 1(a) It is an unplanned event // an event not wanted 1 1(b) 1 mark per example to max 3 e.g. • Division by zero • Invalid array index • File does not exist • Run-time error • Invalid input • Invalid argument/value • Stack overflow • Memory leakage • Hardware failure/error 3 1(c) 1 mark per bullet point to max 2 • The program will not crash // more robust // program will continue • Result does not cause further errors/problems later • Appropriate error messages/result • Exceptional conditions are identified • Improve readability 2

Mark scheme, page 5

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 5 of 15 Question Answer Marks 2(a) 1 mark for the first 3 rows 1 mark for the last 2 rows Feature Must be included Incrementation General case  Base case  Selection case It calls itself  2 2(b) 1 mark for each of the spaces filled in PROCEDURE Count(BYVALUE Number : INTEGER) IF MOD(Number, 2) <> 0 THEN Number ← Number - 1 ENDIF OUTPUT Number IF Number > 0 THEN CALL Count(Number - 1) ENDIF ENDPROCEDURE 5

Mark scheme, page 6

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 6 of 15 Question Answer Marks 2(c) 1 mark per bullet point • Recursive call • ..with correct parameters • …in correct working place(s) • Removal of loop • Remainder of program in correct place PROCEDURE MealsCount(BYREF MealOption1 : INTEGER, MealOption2 : INTEGER) DECLARE MealOption : INTEGER INPUT MealOption IF MealOption = 1 THEN MealOption1 ← MealOption1 + 1 CALL MealsCount(MealOption1, MealOption2) ELSE IF MealOption = 2 THEN MealOption2 ← MealOption2 + 1 CALL MealsCount(MealOption1, MealOption2) ELSE OUTPUT MealOption1, " ", MealOption2 ENDIF ENDIF ENDPROCEDURE 5 Question Answer Marks 3(a) 1 mark for each statement • person(elle). • sport(rugby). • plays(elle, rugby). • will_not_play(elle, hockey). 4

Mark scheme, page 7

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 7 of 15 Question Answer Marks 3(b) johann, jessica 1 3(c) 1 mark per bullet point • person(Y) • AND // , • sport(X) • AND NOT // , NOT • will_not_play(Y, X) mightplay(Y, X) IF person (Y) AND sport (X) AND NOT(will_not_play(Y, X)) 5 Question Answer Marks 4(a) 1 mark per bullet point to max 2 • Can use the properties from the parent/super class (without redeclaring them) • Can use the methods from the parent/super class (without redeclaring them) • Can extend the properties from the parent/super class • Can extend the methods from the parent/super class 2 4(b) 1 mark per feature to max 2 • Polymorphism • Encapsulation • Containment • Aggregation • Composition 2

Mark scheme, page 8

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 8 of 15 Question Answer Marks 5(a) 1 mark per bullet point • Method header and close (where applicable) … • … with correct parameters (LessonType, Instructor) • Initialised LessonType and Instructor to parameter values PYTHON def __init__(self, LType, LInstructor) : self.__ LessonType = LType self.__Instructor = LInstructor PASCAL Constructor Lesson.Create(LType, LInstructor); begin LessonType:= LType; Instructor: = LInstructor; end; VB.net Public Sub New(ByVal LType As String, ByVal LInstructor As String) LessonType = LType Instructor = LInstructor End Sub 3

Mark scheme, page 9

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 9 of 15 Question Answer Marks 5(b) 1 mark per bullet point • function header and close (where applicable) • returns Fee PYTHON def GetLessonType(self) : return self.__LessonType VB.net Function GetLessonType () As Single Return LessonType End Function 2

Mark scheme, page 10

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 10 of 15 Question Answer Marks 5(c) 1 mark per bullet point • Function header and close (where applicable) • Takes a parameter value • Check parameter value is valid … • … returns the correct fee • Returns -1 if value not valid PYTHON def GetFee(self, Level) : if Level == 'B' : return 45 elif Level == 'I' : return 50 elif Level == 'A' : return 55 else : return -1 VB.NET Public Sub GetFee(PLevel) if PLevel = "B" Then return 45 elseif PLevel = "I" Then return 50 elseif PLevel = "A" Then return 55 else return -1 endif End Sub 5

Mark scheme, page 11

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 11 of 15 Question Answer Marks 5(d) 1 mark per bullet point • Array declaration with identifier LessonArray and size 9 • Correct data type used DECLARE LessonArray : ARRAY[0:8] OF Lesson 2 5(e) 1 mark per bullet point • Object is created • Correct parameters passed • Stored in correct index of LessonArray PYTHON LessonArray[2] = Lesson("Improve Your Serve", "David") VB.net LessonArray[2] = New Lesson("Improve Your Serve", "David") 3

Mark scheme, page 12

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 12 of 15 Question Answer Marks 6(a) 1 mark per bullet point to max 4 • Procedure header and end • Loop 6000 times • Access the UserID and PINNumber for each element in CustomerDetails • Correct initialisation of UserID to "" and PINNumber to 0 PROCEDURE InitialiseHashTable() FOR x ← 0 TO 5999 CustomerDetails[x].UserID ← "" CustomerDetails[x].PINNumber ← 0 ENDFOR ENDPROCEDURE 4

Mark scheme, page 13

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 13 of 15 Question Answer Marks 6(b) 1 mark for each completed missing statement FUNCTION InsertRecord(NewRecord) RETURNS INTEGER DECLARE Count : INTEGER DECLARE Index : INTEGER Count ← 0 Index ← Hash(NewRecord.UserID) WHILE (CustomerDetails[Index].UserID <> "") AND (Count <= 5999) Index ← Index + 1 Count ← Count + 1 IF Index > 5999 THEN Index ← 0 ENDIF ENDWHILE IF Count > 5999 THEN RETURN -1 ELSE CustomerDetails[Index] ← NewRecord RETURN Index ENDIF ENDFUNCTION 7

Mark scheme, page 14

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 14 of 15 Question Answer Marks 7 1 mark per bullet point • Name, Address and Telephone Number beneath Customer details • Order Details below booking form • …with appropriate iteration of entering Order Details • Shirt ID and Colour beneath Order Details • Cost beneath Order Details • …with Small, Medium and Large below it • …with selection e.g. 7 7(b)(i) Serial 1 Order Form Customer Details Order Details * Telephone number Address Name Shirt ID Colour Cost Total Cost Medium° Large ° Small °

Mark scheme, page 15

9608/43 Cambridge International AS & A Level – Mark Scheme PUBLISHED May/June 2020 © UCLES 2020 Page 15 of 15 Question Answer Marks 7(b)(ii) 1 mark per bullet point to max 2 • Sequential • Random 2 7(c) 1 mark per completed statement PROCEDURE UpdateTelephone(BYREF ThisCustomer : Customer, BYVALUE NewTelephoneNumber : STRING) ThisCustomer.TelephoneNumber ← NewTelephoneNumber ENDPROCEDURE 3 7(d) 1 mark per column pair Conditions Order over $50 Y Y Y Y N N N N Monday Y Y N N Y Y N N Loyalty card Y N Y N Y N Y N Actions Additional 5% discount Y N Y N Y N Y N 10% discount Y Y Y Y N N N N Free gift Y Y N N N N N N Free delivery Y N Y N N N N N 4