Question 1
9 marks
1(a)
A group of students are designing a racing car game. The game will allow players to enter their name and then a choice of vehicle. They will then race against other vehicles that will be controlled by the program. Players will use the arrow keys to control their vehicle.
The students use abstraction during the design process.
1(a)(i) 3 marks
State what is meant by abstraction and describe how it can be used to design the racing car game.
Definition
Use
Mark scheme 1(a)(i)
Tick each point your answer makes. Your mark is worked out from your ticks, and you can change it.
1 mark for definition, 1 mark each for each example of use to max 2 (3 overall)
Definition:
-
Removal of unnecessary detail
Example use:
-
E.g. simplifying scenery
-
E.g. removing internal features of a vehicle that are not needed
-
E.g. simplify physics for vehicle movement
-
E.g. The vehicles may not be drawn to scale
Guidance
Allow any reasonable examples for this scenario
For the example use, allow 2 marks for stating a valid example of abstraction with an expansion. For example,“simplify track (1) by taking out the bumps in the road (1)” would be given two marks.
Examiner’s Comments
Many candidates scored two marks for defining abstraction and giving one example of its application to the game, but fewer managed to identify a second example for full marks.
1(a)(ii) 3 marks
Explain why it is beneficial to use abstraction when designing a computer program such as a game.
Mark scheme 1(a)(ii)
Tick each point your answer makes. Your mark is worked out from your ticks, and you can change it.
1 mark each to max 2
-
Simplifies the problem / algorithm / programming code
-
Faster to create the program code
-
Final program uses less memory/processor time
-
Programmer can focus on core aspects of the game
-
Completed game will be simpler for end users to understand / play
Guidance
Do not accept a reiteration of a definition of abstraction.
Examiner’s Comments
Some candidates reiterated a definition of abstraction and did not focus on the benefits of abstraction as the question required. Most candidates struggled to give more than one or two benefits. There were also a number of unqualified responses such as ‘saves time’ that did not specify ‘saving coding development time’.
1(b)(i) 1 mark
The group of students use decomposition.
State what is meant by decomposition.
Mark scheme 1(b)(i)
Tick each point your answer makes. Your mark is worked out from your ticks, and you can change it.
Splitting the problem down into smaller (sub) problems
Guidance
Examiner’s Comments
Most candidates correctly defined decomposition, but some candidates lost marks for lack of clarity for not specifying that a problem is broken down into sub problems.
1(b)(ii) 2 marks
Describe one benefit of using decomposition when designing a computer program such as a game.
Mark scheme 1(b)(ii)
Tick each point your answer makes. Your mark is worked out from your ticks, and you can change it.
1 mark each to max 2 e.g.
-
To break the problem down into individual components
-
…to see which components can be tackled concurrently
-
Identify any resusable program elements …
-
…to avoid creating the same algorithm twice
-
Split the program between individuals
-
… so they can focus on individual elements / to focus on their speciality
-
Identify the subroutines and how they will interract
-
…so everyone knows the requirements for their part of the problem
-
Easier to tackle/focus on one smaller problem at a time…
-
… so this simplifies writing/testing code
Guidance
Allow for other valid benefits of using decomposition.
Examiner’s Comments
Many candidates identified that decomposition would make it simpler to code individual subproblems but then lacked a clear related expansion. The most popular response was that this allowed workload to be shared between different members of a team to reduce overall development time or to play to team member expertise.