Cambridge Assessment International Education: Computer Science 9608/23 October/November 2019
Cambridge Assessment International Education: Computer Science 9608/23 October/November 2019
Cambridge Assessment International Education: Computer Science 9608/23 October/November 2019
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2019 series for most
Cambridge IGCSE™, Cambridge International A and AS Level components and some Cambridge O Level
components.
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.
• 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.
Marks awarded are always whole marks (not half marks, or other fractions).
• 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.
Rules must be applied consistently e.g. in situations where candidates have not followed
instructions or in the application of generic level descriptors.
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).
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.
1(a)(ii) Declaration 1
Process x = INT(y/3)
Output Console.Writeline("Goodbye")
1(c)(ii) One mark for statement in program code that includes (at least) two 'stages' 1
• Next = LEN(Console.Input())
• Console.writeline(Name & Address)
• Console.WriteLine(Console.Readline() & " is what you
entered")
• Blank lines
• Capitalisation of Keywords
• Sensible variable names
• Use of (library/built-in) functions
• Comments
• PrettyPrint / keywords coloured
1(e) White-box 1
2(a)(ii) REPEAT 4
CALL AlarmReset()
Status1 ← GetStatus(Sys_A)
Status2 ← GetStatus(Sys_B)
UNTIL (Status1 = TRUE AND Status2 = TRUE)
2(b) 5
Feature Answer
The line numbers for the start and end of a count- 180/190 and 230
controlled loop
3 5
0 0 0
1 'J' 1
2 'i' 2
3 'm' 3
4 '.' 1
5 '9' 4
6 '9' 5
7 '@' 1
8 's' 6
9 'k' 7
10 'a' 8
11 'i' 9
12 'l' 10
13 '.' 2
14 'c' 11
15 'o' 12
16 'm' 13
4(b)(ii) TRUE 1
4(c) One mark for string and one mark for correct explanation. 4
Same for second answer providing it results in a different path through the
algorithm.
Space ← TRUE
NewString ← ""
RETURN NewString
ENDFUNCTION
Count ← 0
IF SearchAuthor = ThisAuthor
THEN
Result[Count, 0] ← Title
Result[Count, 1] ← Location
Count ← Count + 1
ENDIF
ENDWHILE
CLOSEFILE("Library.txt")
RETURN Count
ENDFUNCTION
IF Count = 0
THEN
OUTPUT "Search found no books by: " & Author
ELSE
OUTPUT "Books written by: " & Author
OUTPUT "Title" & LEFT(Gap, 20) & "Location"
FOR Index ← 1 TO Count
GLen ← 25 – LENGTH(Result[Index, 0])
OUTPUT Result[Index, 0] & LEFT(Gap, GLen) &
Result[Index, 1]
ENDFOR
OUTPUT "Number of titles found: " &
NUM_TO_STRING(Count)
ENDIF
ENDPROCEDURE
Count = 0
FileClose(1)
Return Count
END FUNCTION
var
Title : string;
Author : string;
Isbn : string;
Location : string;
Count : integer;
MyFile : text;
begin
Count := 0;
assign(MyFile, 'Library.txt');
reset(MyFile);
end;
close(MyFile);
FindBooksBy := Count;
end;
def FindBooksBy(SearchAuthor):
## Title : STRING
## Author : STRING
## Isbn : STRING
## Location : STRING
## Count : INTEGER
Count = 0
MyFile = open("Library.txt", 'r')
Title = MyFile.readline()
MyFile.close()
return(Count)