Logical Reasoning: The use of a set of facts (axioms) to draw conclusions and determine whether new information is true or false.
Algorithms: A sequence of steps that can be followed to complete a task and that always terminates.
Correctness: An algorithm is said to be correct when it is consistent with the specification and produces the expected output for any given input.
Efficiency: A property of an algorithm that is related to the amount of resources (memory space and time in particular) that an algorithm uses in its execution.
Hand-tracing: The process of looking at a program’s entire code or code extract and running through the instructions as though you are the computer.
Pseudo-code: A human-readable method of writing the steps of an algorithm without any particular programming language.
Abstraction by Generalisation or Categorisation: Simplifying a problem by grouping together common characteristics of a problem to arrive at a hierarchical relationship.
Representational Abstraction: Simplifying a problem by only taking into consideration the necessary details required to obtain a solution, leaving a representation without any unnecessary details.
Information Hiding: The process of hiding all details of an object that do not contribute to its essential characteristics.
Procedural Abstraction: Simplifying a problem by breaking it down into a series of procedures or subroutines that are generalised with variable parameters. Knowledge of the implementation of each procedure is irrelevant.
Procedure: The result of abstracting away the actual values used in any particular computation is a computational pattern or computational method.
Functional Abstraction: Simplifying a problem by breaking it down into a series of reusable functions which disregard the particular computational method.
Data Objects: Data abstractions that hide details of how data are actually represented from the user.
Problem Abstraction/Reduction: The repeated removal of unnecessary details from a problem until an underlying problem representation is reached which is identical to a previously solved problem.
Procedural Decomposition: The process of breaking down a problem into a number of sub-problems, so that each sub-problem accomplishes an identifiable task, which might itself be further subdivided.
Composition Abstraction: The reverse process of decomposition where a complex system of compound procedures is built from its smaller, simpler procedures.
Data Abstraction Composition: The process of combining data objects to form compound data
Automation: The process of creating algorithms and implementing them as data structures and models of real-life situations that run without a significant need for human intervention.
Accepting States: An optional state of a FSM that indicates whether or not an input has been accepted by the FSM
State Transition Tables: A tabular representation of a FSM that contains the current state, inputs and their consequent successor state.