4.4 Theory of Computation
4.4 Theory of Computation
sequence
assignment
selection
Be able to articulate how a program works, arguing for its correctness and its
efficiency using logical reasoning, test data and user feedback.
4.4.1.3 Abstraction
Be familiar with the concept of abstraction as used in computations and know
that:
4.4.1.9 Decomposition
Know that procedural decomposition means breaking a problem into a number of
sub-problems, so that each sub-problem accomplishes an identifiable task, which
might itself be further subdivided.
4.4.1.10 Composition
Know how to build a composition abstraction by combining procedures to form
compound procedures.
4.4.1.11 Automation
Understand that automation requires putting models (abstraction of real world
objects/phenomena) into action to solve problems. This is achieved by:
creating algorithms
Computer science deals with putting the models into action to solve
problems. This involves creating algorithms for performing actions on, and
with, the data that has been modelled.
A = {1, 2, 3, 4, 5}
A = {x∣x ∈ N ∧ x ≥ 1}
Know that the empty set, {}, is the set with no elements.
Know that an alternative symbol for the empty set is Ø (or the LaTeX version)
∅.
A set is an unordered collection of values in which each value occurs at most
once.
{1, 2, 3}
Be familiar with the compact representation of a set, for example, the set
{0 1 ∣n ≥ 1}. This set contains all strings with an equal number of 0 s and 1s.
n n
ℹ For example:
{0n 1n ∣n ≥ 1} = {01, 0011, 000111, 00001111, …}
finite sets
infinite sets
The set of natural numbers, N and the set of real numbers, R are
examples of infinite sets.
A countably infinite set is one that can be counted off by the natural
numbers.
The set of real numbers is not countable. The cardinality of a finite set
is the number of elements in a set. Cartesian product of two sets, X
and Y , written X × Y and read 'X cross Y', is the set of all ordered
pairs (a, b) where a is a member of A and b is a member of B.
subset
proper subset
countable set
membership
union
intersection
difference
∗ - (0 or more repetitions)
+ - (1 or more repetitions)
? - (0 or 1 repetitions, ie optional)
∣ - (alternation, i.e. or)
Be able to explain why BNF can represent some languages that cannot be
represented using regular expressions.
constant time
logarithmic time
linear time
polynomial time
exponential time
tractable - problems that have a polynomial (or less) time solution are called
tractable problems.
intractable - problems that have no polynomial (or less) time solution are
called intractable problems.
Know that a Turing machine can be viewed as a computer with a single fixed
program, expressed using:
a sensing read-write head that can travel along the tape, one square at a time
One of the states is called a start state and states that have no outgoing
transitions are called halting states.
❗ Exam questions will only be asked about Turing machines that have one
tape that is infinite in one direction.
Be able to:
Be able to explain the importance of Turing machines and the Universal Turing
machine to the subject of computation.