Paper 2 test questions with
complete answers.
What is computational thinking? - Answer The ability to think logically
about a problem in a way a computer can execute it and apply
techniques for solving it using a set of problem solving methods.
Why is computational thinking important? - Answer As many
overarching problems are very difficult to understand
What is the aim of computational thinking? - Answer To be able to
make an overarching problem understood and then formally
represented and solved
What does computational thinking require? - Answer Computational
thinking requires algorithmic thinking
,What stages does algorithmic thinking require? - Answer -
Understanding the problem
- Formulate the problem
- Design an algorithm
- Implement the algorithm
- Run the code and solve the original problem
What does formulating the problem entail? - Answer Producing a
concise representation of the problem using abstraction and/or
mathematical notation
What is abstraction? - Answer Abstraction is the process of removing
the unnecessary details and leaving only the key elements of a problem
to allow focus on the essential features making an overarching problem
easier and potentially faster to solve giving an alternate representation
of reality
Give examples of abstraction - Answer - Variables
- Objects
- Layers
- Data models
- Data structures
- entity-relationship diagrams
,What is data abstraction? - Answer Data abstraction is using a data
structure without being concerned how it's implemented
Give an example of data abstraction - Answer creating a stack in a
subroutine without having to know how they will be implemented
What is generalisation? - Answer Generalisation is a part of the
abstraction process by grouping together items with similar features
that are relevant to the problem (i.e. ignoring irrelevant features).
What can sometimes be deduced from generalisation? - Answer From
generalisation a common approach that may already exist or can be
created can be discovered which can then be reused to solve similar
problems
Why is all high level coding an abstraction? - Answer All high level
coding is an abstraction because one high level command may required
several machine code instructions to complete. The programmer does
not need to know how this high level command is implemented into
the computer at a machine code level
What are layers? - Answer Layers is the practice of organising programs
into separator functional components that interact in a hierarchical
manner with each layer usually only having an interface to the layer
above and the layer below it
, What is a data model? - Answer A data model is an abstract model that
organises elements of data and how they relate to one another and to
real world entities
What is an entity relationship diagram? - Answer An entity relationship
diagram is a graphical model to represent the relationship between
different entitites
What is an overall definition of generalisation? - Answer Generalisation
is solving new problems based on previous problems for which we have
an existing solution normally involving the use of an algorithm to solve
a problem and adapting it so it can solve similar problems
Why is abstraction required? - Answer Abstraction enables the
programmer to focus on the important aspects of a program rather
than focusing on unnecessary detail
What does abstraction enable? - Answer Abstraction enables:
- teams of programmers to work on different aspects of a problem
- programmers to user pre built and built in functions without
concerning themselves how it works
Describe how layering is an example of abstraction - Answer Layering is
an example of abstraction. How one layer is implemented is self