Section II
Question 21
In better responses, students were able to:
- demonstrate their understanding of specific screen elements used for input/output on mobile touchscreens
- be specific about the interface elements critical to designing for a small screen - minimal use of text, spacing of buttons, use of dropdown menus
- refer to the need to proportion the interface for different devices, for example, iPhone 6 and 5s, Samsung phones.
Areas for students to improve include:
- avoiding the use of generic interface terms without describing the characteristics of the interface design principle
- describing inclusivity without any clear reference to the interface design aspect
- taking a holistic approach to interface design, referring to how input and output is captured differently on a small touch screen rather than focusing entirely on the look of the screen.
Question 22
In better responses, students were able to:
- clearly articulate advantages and disadvantages to users that were dissimilar
- make a clear distinction between advantages and disadvantages, for example, Advantage 1 (then statement) Advantage 2 (then statement).
Areas for students to improve include:
- focusing on how users are affected.
Question 23
In better responses, students were able to:
- clearly outline a similarity and clearly outline a difference (a)
- use validating screen elements where appropriate (bi)
- describe the validation provided by the screen elements (bi)
- provide all required screen elements (bi)
- use the correct system flowchart symbols (bii)
- include symbols for processes, electronic communication, direct access storage and multi-page documents (bii)
- state that the sort criteria needed to be the same as the search criteria for a binary search to work, for example, if it is sorted by ID and a search is carried out for an ID (biii)
- indicate that a binary search cannot find a group of students (eg. all students in maths) and that a linear search was needed for this (biii)
- indicate that sorting the data each time a search by a different criteria was carried would often make a binary search unfeasible (biii).
Areas for students to improve include:
- providing important similarities and differences (a)
- labelling only the screen elements that enable validation (bi)
- using only system flowchart symbols (bii)
- connecting storage devices, transmissions and paper documents to processes (rectangles) (bii)
- providing examples where the field data is unique, such as UserID or Email, that is necessary for a binary search to be feasible.
Question 24
In better responses, students were able to:
- display correct incrementation of x (a)
- display correct outputs including 4, 8, 12, “Done” (a)
- use the correct layout in table format (a)
- show a single column for each variable/condition/output, rather than two output columns or two columns for x (a)
- explain why they were making the changes they had suggested (b)
- use relevant terminology such as “redundant variable”, “post-test loop”, “condition”, “statement”
(b)
- use logical statements, such as “if x < 7, then x + 1 < 8” (b)
- include the complement of each change, for example, removing line 7 also requires removing the end if on line 9 (b)
- include a correct desk check to show that their changes resulted in the same output (b).
Areas for students to improve include:
- checking for correct outputs (a)
- showing the processing of variables through each iteration of looping structures (a)
- demonstrating the working as well as the algorithm output (a)
- changes that are supported with clear justifications (b)
- understanding that changing the Repeat loop to a While loop does not improve the execution of the algorithm (b)
- understanding that the loop is not more efficient by setting line 12 “UNTIL x = 8”, since x is always odd when it reaches the end of the loop and this creates an infinite loop instead of shortening the loop (b)
- being able to differentiate clearly between loops and selection statements as many students used the phrase “If loop” and/or tried to replace the IF with a WHILE (b).
Question
25
In better responses, students were able to:
- justify an approach where changes were expected after the software was delivered and in use (a)
- describe a number of valid ways to evaluate a solution after it has been delivered and in use (b)
- name and justify ways to ensure that the code is easy to maintain, such as intrinsic documentation, commenting, structure charts and modular design (c)
- indicate why these ways are appropriate for an evolving application (c).
Areas for students to improve include:
- selecting a correct approach (a)
- providing descriptions of ways to evaluate rather than simply naming ways to evaluate (b)
- providing a variety of valid ways ensure that code is easy to maintain (c)
- focusing on strategies to ensure that the code is maintainable instead of strategies to maintain other aspects of an application (c).
Question 26
In better responses, students were able to:
- describe how all the modules worked within the system, making reference to the meaning of the symbols throughout their description.
- understand how each of the modules were connected to other modules.
Areas for students to improve include:
- distinguishing between data flow parameters and control variables (flags)
- demonstrating an understanding of the symbols used in a structure chart
- making explicit reference to the decision symbol, saying this module or that module does not effectively refer to the decision symbol
- making explicit reference to the meaning of the symbols which are represented in the stimulus.
Question 27
In better responses, students were able to:
- provide three areas of consideration relevant to the scenario, for example inclusivity, accessibility, compatibility, ease of use and security of payment information, and justify them according to the details provided in the scenario (a)
- recognise a range of factors with relevance to the scenario (b)
- justify how considerations were relevant for the given scenario (b)
- explain advantages and disadvantages of using one developer in this upgrade scenario. (c)
- provide relevant examples in support of their explanation (c).
Areas for students to improve include:
- being familiar with and using the terminology found in the syllabus for social and ethical issues (a)
- referring to the given scenario in the answer (a)
- understanding that the ease of use or security of a programming language is not solely dependent on the programming language chosen, but rather, it is dependent on the skill of the programmer (easy to use) and availability of external libraries in a particular language (security) (b)
- responding appropriately to an “outline” question rather than simply listing factors (b)
- using the language provided in the syllabus when providing relevant examples (c).
Question 28
In better responses, students were able to:
- use all of the provided functions
- break up steps onto multiple lines for readability
- ask the user to input a string, or pass a string into the function, rather than setting the string to be an arbitrary value
- use appropriate variable names, for example “Left”, “Right”, instead of “string1”, “string2”, … “string8”
- use assignment statements and label them logically such as “Mid10 = Middle(Word,10)”.
Areas for students to improve include:
- including the final output in their code as this was essential due to it being identified explicitly in the question
- assigning the result of calculations and functions to variables as the question identified that the result was returned and did not change the original data
- assigning values from left to right, such as x = 5+3, NOT 5+3 = x
- using appropriate length variable names, for example, “FirstPartFlipped”, “to help fit the answer into the space provided and save time
- using parameters in the correct order
- reading the question carefully to determine what is required as the question stated that strings would be more than 16 characters and an even number of characters, but many responses included lengthy validation checks to ensure this was the case.
Question 29
In better responses, students were able to:
- describe how two specific error detection techniques could be used to find actual errors in this program (a)
- correct at least two actual errors (b)
- clearly and succinctly justify why the change was needed by stating the result of the change or nature of the error (b).
Areas for students to improve include:
- describing the actual method they named rather than conflating them (a)
- recognising that “apple” < “banana” is true (a)
- understanding that all arrays have to start at position zero unless otherwise specified (a)
- being able to recognise a Bubble sort would have helped them find the errors (a)
- being able to justify changes if asked to by the question (b)
- looking at the whole algorithm, not just the obvious issue at line 30-40, noting that Loop while Swapped = False does not fix it (b)
- recognising that a simple swap routine and that Friends(Count) can be less than Friends (Count+1) even though Count can never be less than (Count+1) (b)
- if you are looking at an array with an index of (Count+1) looping to Num-1 does go through all elements (b)
- realising that programs that run to produce the wrong output have no syntax errors (b).
Question 30
In better responses, students were able to:
- create an algorithm, usually in pseudocode, that correctly referenced both arrays as two dimensional
- create meaningful counters to increment indexes as required
- correctly assign the first ID and score
- correctly assign subsequent scores for the same player and correctly handle a change of player ID.
- loop through all players and scores.
Areas for students to improve include:
- using variables for the array indices and therefore avoiding methods such as append which can hide the possibility to correctly manipulate an array as per the syllabus.
- formatting structured data types correctly and using the names suggested in the question.
- only using simple meaningful names for variables including counters
- carefully reading the question.
Section III
Question
31
In better responses, students were able to:
- identify features of the object-oriented paradigm (a)
- provide a reason why this was a benefit to software maintenance (a)
- define both inheritance and polymorphism and give examples from the given code, namely the TICKETTYPE inherited attributes and methods from TICKET and GetEvent_name() is an example of polymorphism as it is evaluated differently in the TICKET class and the TICKETTYPE subclass (bi)
- write code that only allowed line 220 RETURN Discount to be reached if the evidence had been sighted (bii)
- provide a definition for the three logic paradigm concepts and include a plausible example of each which would fit the scenario (ci)
- use sections from the scenario which could be used for pattern matching such as X-rays, scan and photos (cii)
- illustrate the fact that pattern matching is used to compare current data with corresponding data from the past that is stored in the system (cii)
- describe how input into the AI system, such as through the use of sensors and cameras, was necessary for the driverless car to successfully work (d)
- describe features of the imperative paradigm to support their argument (e).
Areas for students to improve include:
- providing a description for a benefit, such as “maintenance is easier because the inherited code means that any changes need only be made in the parent class and it will automatically flow to the child class” (a).
- knowledge of the definitions of inheritance and polymorphism (bi)
- being more familiar with the selection control structure so that line 220 could be jumped over if the condition to reach it was false (bii)
- knowledge of the definitions of a rule and a query (ci)
- knowledge of the standard syntax for facts, rules and queries in the logic paradigm (ci)
- knowledge of what pattern matching involves (cii)
- knowledge of how artificial intelligence works (d)
- knowledge of how the imperative paradigm differs from other programming paradigms (e).
Question
32
In better responses, students were able to:
- make the process of binary addition very clear including the carry of “four times two” into the eights column (a)
- demonstrate a clear understanding of ‘flipping’ and ‘shifting’ of binary digits and how they relate to the respective binary arithmetic operations in computer processing (b)
- make a clear distinction between the three types of arithmetic and the processing required, including adding after shifting left in multiplication and subtraction after shifting right in division (b)
- outline flipping, shifting and adding by specifically relating each to the arithmetic processes (b)
- provide specific details of the three representation’s relationship to the binary data given in the question (c)
- relate the binary data given to the features of the three data types required (c)
- explain how the given binary data would be directly convert to the three representations (c)
- analyse given circuits using a truth table providing all of the required interim outputs to demonstrate knowledge of all of the gates shown (d)
- simplify circuits using truth tables and/or boolean algebra (d)
- draw simplified circuits from truth tables or boolean algebra (d)
- verify their circuit was correct by providing an equivalent truth table (d)
- analyse a scenario with all the required information and relate this in the format of a data stream structure (ei)
- convert from decimal to binary for the given data stream and provide the stream in the correct format (ei)
- evaluate the question scenario for all aspects affecting the data stream outcome, for example recognise that the drone was always facing the same way (eii)
- relate data stream data to a scenario and provide a diagram to show their understanding (eii)
- provide relevant changes to both data streams AND the hardware of the drone (including more sensors and/or changes to the motor (eiii)
- express changes to the data stream with the correct number of bits being changed (eiii).
Areas for students to improve include:
- demonstrating binary addition rather than their ability to convert from binary to decimal and back again (a)
- knowledge that shift registers play a part in the multiplication process including a requirement of adding with multiplication other than shifting by powers of two (b)
- explaining how the computer process of binary arithmetic manipulation is not just a reflection of paper-based decimal arithmetic (b)
- knowledge of the way in which analogue data is stored in binary (c)
- demonstrating how the binary values stored relate to real world decimal, real and character data (c)
- understanding of the conversion format to and from each data type. (c)
- knowledge of gate behaviour and the outputs for their sets of possible inputs (d)
- constructing a relevant truth table from a given circuit or for a drawn circuit (d)
- understanding how gates can be combined to produce a particular output (d)
- memorising binary values from one to fifteen to assist when representing decimal values given for the stream (ei)
- reading questions carefully for all of the necessary details (ei)
- using all parts of the scenario, including all the walls and movements, in the response (eii)
- providing explicit details of the changes they intend rather than ‘make it larger’ for example: ‘it should be larger by 8 bits to….’ (eiii).