Section II
Candidates showed strength in these areas:
- understanding that legal action can occur for piracy and/or breaches of intellectual property (Q.21)
- knowing the main features of storyboards and IPO diagrams (Q.22)
- understanding that Gantt charts and logbooks are project management tools (Q.23)
- selecting screen elements to improve the efficiency of data collection (Q.25)
- identifying the responsibilities of the developer (Q.26a)
- identifying potential communication issues (Q.26b)
- identifying possible reasons for the occurrence of the errors (Q.27a)
- outlining a range of appropriate actions for the business or the developer (Q.27b)
- identifying logic errors in the algorithm (Q.28)
- understanding module testing (Q.29)
- knowing the basic structures of an algorithm (Q.30 & Q.33)
- understanding that arrays of records are used to store data or to allow ease of searching data (Q.31a)
- identifying the main process required to solve the problem (Q.31c)
- being able to generalise the railroad diagram syntax given in the examples (Q.32)
- recognising that a loop is not necessary or the search should be stopped once the required record is found (Q.34a).
Candidates need to improve in these areas:
- being aware of the difference between piracy (copying of software) and intellectual property breaches (copying of source code) (Q.21)
- understanding the differences in the use of storyboards and IPO diagrams during the software development process (Q.22)
- being aware of the distinction between programming tools and project management tools (Q.23)
- not confusing between sequential file access and the sequential approach of programming (Q.24)
- understanding the application of sequential and event-driven programming (Q.24)
- annotating screen designs to highlight areas of improved efficiency (Q.25)
- understanding the responsibilities of the developer with regard to both data and the website (Q.26a)
- relating their response to the scenario (Q.26b)
- providing clear action(s) for each party (Q.27b)
- modifying algorithms (Q.28 and Q.34b)
- understanding the relationship between program testing and module testing (Q.29)
- writing an algorithm that correctly calls a subroutine with loop that exits (Q.30)
- understanding how arrays of records can be applied in the scenario(Q.31a)
- addressing the requirement of minimising groups being split (Q.31b)
- including all the processes required and drawing a data flow diagram, rather than a flowchart or a structure chart (Q.31c)
- understanding how to represent repetition and more complex syntax in a railroad diagram (Q.32)
- understanding the data structures required in the problem and providing correct loop conditions (Q.33)
- addressing all parts of the question (Q.33)
- recognising that the first IF statement is designed to prevent run-time errors by preventing reading past the end of the array (Q.34b).
Section III
Candidates showed strength in these areas:
- identifying features of the logic paradigm (Q.35ai)
- identifying features of the object-oriented paradigm (Q.35aii)
- recognising that a method is written in code (Q.35b)
- recognising that the open_account method can be used to solve the problem (Q.35ci)
- identifying the accounts that would be opened (Q.35cii)
- extending the code to include the new facts (Q.35di)
- naming a type of chaining (Q.35dii)
- knowing how to convert to 2’s complement representation (Q.36a)
- identifying logic gates (Q.36b)
- recognising the difference between floating point and integer values (Q.36e).
Candidates need to improve in these areas:
- understanding strengths that are specific to the logic paradigm (Q.35ai)
- understanding strengths that are specific to the object-oriented paradigm (Q.35aii)
- recognising that a method is the only way to change a private attribute (Q.35b)
- recognising that simply moving the methods from public to private would not solve the problem (Q.35ci)
- interpreting code and explaining actions for instructions given (Q.35cii)
- extending the code to include the new rule (Q.35di)
- understanding how chaining works (Q.35dii)
- understanding how 2’s complement is used in binary subtraction (Q.36a)
- understanding Boolean notation not just logic gates (Q.36b)
- representing the logic of a problem in a truth table (Q.36c)
- understanding how data can be shifted using combinations of flip flops (Q.36d)
- understanding the purpose of the bits used to represent floating point numbers and integers (Q.36e)
- understanding the use of control characters in a data stream (Q.36fi)
- understanding the differences between the data streams in the two directions, in particular, the differences in the data stored in the header, data block and trailer (Q.36fii).