Computer
Science related vocabulary
The
following subject specific vocabulary provides definitions of key
terms used in Computer Science.
Absolute
Error
The
difference between the actual number and the nearest representable
value.
Abstract
data type (ADT)
A
data type whose properties are specified independently of any
particular programming language.
Abstraction
Representation
that is arrived at by removing unnecessary details.
Aggregation
A
type of association where the aggregated object has a weaker form of
association with the objects that it is aggregating than is the case
with composition. These objects have an existence independent of the
aggregated object and can continue to exist even after the aggregated
object is disposed of.
Ajax
Web
technology that allows only the part of a web page that needs
updating to be fetched from the web server.
Algorithm
A
sequence of unambiguous instructions for solving a problem. It can be
represented as a Turing machine program.
Application
programming interface (API)
A
layer of software that allows application programs to call on the
services of the operating system.
Association
An
association is a relationship between two classes. There are
different types of association: composition and aggregation.
Asymptotic
behaviour of f
Behaviour
of the function f(n)
for very large values of n.
Asynchronous
serial data transmission
Transmission
system in which the sender and receiver have separate clocks which
are not kept synchronised. Instead, the clocks are synchronised
temporarily at the start of a transmission. The arrival of data
cannot be predicted by the receiver; s a start bit is used to signal
the arrival of data and to synchronise the transmitter and receiver
temporarily.
Attribute
A
property or characteristic of an entity (databases) or an object
(OOP).
Automation
Turning
an abstraction into a form that can be processed by a computer.
Backus-Naur
Form, (BNF)
Backus-Naur
Form, (BNF)
Bandwidth
For
a transmission medium, the range of signal frequencies it may
transmit.
Base
case
A
value that has a solution which does not involve any reference to the
general case solution.
Baseband
system
A
system that uses a single data channel system in which the whole
bandwidth of the transmission medium is dedicated to one data channel
at a time.
Basic
operation
The
operation which contributes most to the total running time.
Baud
rate
The
rate at which signals on a wire may change.
Behaviours
The
functions of the object or what the object does.
Bit
rate
The
number of bits transmitted per second.
Broadband
A
multiple data channel system in which the bandwidth of the
transmission medium carries several data streams at the same time.
Bubble
sort
A
sorting algorithm where during a pass, neighbouring values are
compared and swapped. Passes are made until no further swaps are
needed.
Cipher
text
Message
data after it has been encrypted.
Circular
queue
When
the array element with the largest possible index has been used, the
next element to join the queue reuses the vacated location at the
beginning of the array.
Class
definition
A
template that can be used to create objects of that class.
Client
A
computer that uses the services provided by a server.
Client-server
system
A
system in which some computers (the clients), request services
provided by other computers, the servers.
Closed
path/circuit
A
sequence of edges that start and end at the same vertex and such that
any two successive edges in the sequence share a vertex.
Communication
protocol
A
set of agreed signals, codes and rules to be used for data and
information exchange between computers.
Complexity
of a problem
Taken
to be the worst case complexity of the most efficient algorithm which
solves the problem.
Composite
key
A
combination of attributes that uniquely identifies a tuple/record.
Computational
complexity
A
measure of how economical an algorithm is with time and space.
Composition
A
type of association where the composite object has ownership of the
objects within it. The objects that are part of the composite objects
have a lifecycle determined by the composite object. If the composite
object ceases to exist then they too will cease to exist.
Conceptual
model
A
representation of the data requirements of an organisation
constructed in a way that is independent of any software that is used
to construct the database.
Cryptanalysis
A
method of trying to find the plain text from the cipher text without
the decryption key.
Cryptography
The
science of designing cipher systems.
Cycle
A
closed path in which all the edges are different and all the
intermediate vertices are different.
Data
Model
A
method of describing the data, it's structure, the way it is
interrelated and the constraints that apply to it for a given system
or organisation.
Data
transmission
Movement
of data.
Database
A
structured collection of data.
Database
management system
A
software system that enables the definition, creation and maintenance
of a database and which provides controlled access to this database.
Decryption
Using
an algorithm and a key to convert encrypted message data into its
plain text equivalent.
Degree
(of a vertex)
The
number of neighbours for that vertex.
Degree
of relationship
Between
two entities, it refers to the number of entity occurrences of one
entity which are associated with just one entity occurrence of the
other and vice versa.
Deterministic
finite state machine (FSM)
An
FSM that has just one next state for each pair of state and input
symbols.
Directed
graph
A
diagram consisting of vertices, joined by directed edges.
Dynamic
allocation
Memory
space is only allocated when required at runtime.
Dynamic
data structure
The
memory taken up by the data structure varies at run time.
Dynamic
web page content
Content
that is generated when the web browser request is received.
Embedded
computer system
A
dedicated computer system with a limited or non-existent user
interface and designed to operate completely, or largely,
autonomously from within other machinery.
Encapsulation
Combining
a record with the procedures and functions that manipulate it to form
a new data type; a class in OOP.
Encryption
Using
an algorithm and a key to convert message data into a form that is
not understandable without that key.
Entity
An
object, person, event or thing of interest to an organisation and
about which data are recorded.
Evaluation
A
systematic assessment of whether something meets its objectives or
specifications and how well it meets the latter in terms of
effectiveness, usability, maintainability.
Explorer's
problem
The
solution finds a route that traverses each road exactly once before
returning to the starting point.
Exponential
growth
Growth
that has the form kn, e.g. 2n where k = 2 and n = 1, 2, 3, etc.
Exponential
time algorithm
An
algorithm whose execution time grows exponentially with input size.
Feasibility
study
A
study that investigates the potential of a new system.
Finite
state machine
A
finite state machine is a model of computation for a machine that is
always in one of a fixed number of states.
The
state of the machine can be changed according to transition rules,
based upon the input that it receives and its current
state. Some finite state machines produce output as they carry out
transitions whilst others simply produce a yes/no response at the end
of processing their input.
Floating
point notation
A
real number represented by a sign, some significant digits (the
mantissa) and a power of 2 (the exponent).
Foreign
key
An
attribute in one table that is a primary key in another table.
Gateway
A
device used to connect networks using different protocols so that
information can be successfully passed from one system to another.
General
case
The
solution in terms of itself for a value n.
Graph
A
diagram consisting of vertices joined by edges.
Halting
problem
The
unsolvable problem of writing a program that can tell whether a given
program and its inputs will halt, without running the given program.
Halting
state
A
state that has no outgoing transition.
Handshaking
protocol
The
sending and receiving devices exchange signals to establish that they
are each ready to initiate data transfer.
Heuristic
An
approach that uses experience to make informed guesses that assist in
finding a polynomial time solution to an intractable algorithmic
problem. The 'solution' may be non-optimal.
Human-computer
interaction
The
study, planning and design of what happens when a computer and human
work together.
Inheritance
The
relationship between two object types in which one is a kind of the
other and shares some of its properties or behaviours.
Instantiation
An
object is defined based on a class.
Internet
A
global wide area network that is formed from the interconnection of
many other networks and that uses the TCP/IP protocol.
Interpreter
An
interpreter works its way through a set of source code instructions
identifying the next instruction and then running routine(s) to
execute it, before moving on to the next instruction.
Intractable
A
problem which can be solved, but for which no polynomial time
solution (or better) has been found.
Labelled
or weighted graph
A
graph in which the edges are labelled or given a value called its
weight.
Linear
queue
Elements
join the queue at one end and leave the queue at the other.
Linear
search
Starts
at the beginning of the list and compares each element in turn with
the required value until a match is found, or the end of the list is
reached.
Linear
time algorithm
An
algorithm that executes in O(n) time.
List
A
collection of elements with an inherent order.
Maintainability
of software
How
easy it is to fix bugs, change parameters and respond to changing
requirements.
Maintenance
Fixing
bugs, changing parameters and responding to changing requirements.
Mealy
machine
A
finite state machine (FSM)that determines its outputs from the
present state and from the inputs.
Model
An
abstraction of an entity in the real world or in the problem that
enables an automated solution. The abstraction is a representation of
the problem that leaves out unnecessary detail.
Neighbours
Two
vertices are neighbours if they are connected by an edge.
Non-computable
An
algorithmic problem that admits no algorithm.
Normalisation
A
technique used to produce a normalised set of entities in a database.
Normalised
entities
A
set of entities that contain no redundant data.
Null
pointer
A
pointer that does not point to anything, usually represented by Ø
or –1.
Object
An
instance of a class.
Operating
system role
To
manage the hardware resources in order to provide for an orderly and
controlled allocation of the processors, memories and I/O devices
among the various programs competing for them and manage the storage
of data. It hides the complexities of the hardware from the user.
Order
of complexity
Of
a problem is its big O complexity.
Overflow
The
result of a calculation is too large to be represented using the
available number of bits.
Parallel
data transmission
Multiple
bits are sent down several wires simultaneously.
Peer-to-peer
network
A
network that has no dedicated servers. All computers are of equal
status and can both share resources themselves and use resources from
other computers, ie they are peers.
Pharming
When
a phisher changes DNS server information so that customers are
directed to another site.
Phishing
When
someone tries to get you to give them your personal information.
Plain
text
Message
data before it is encrypted.
Pointer
A
variable that contains a memory address. The pointer 'points' to the
memory location with that address.
Pointer
type
A
variable of pointer type that stores an address of a data value.
Polymorphism
Giving
an action one name that is shared up and down a class hierarchy. Each
class in the hierarchy implements the action in a way appropriate to
itself.
Polynomial
growth
Growth
that has the form nk,
e.g. n3 where k =
3 and n =
1, 2, 3, etc.
Polynomial
time algorithm
An
algorithm whose execution time grows as a polynomial of input size.
Precision
The
maximum number of significant digits that can be represented.
Primary
key
An
attribute or set of attributes which uniquely identifies a tuple.
Principle
of universality
A
universal machine is a machine capable of simulating any other
machine.
Priority
queue
Each
element of a priority queue has an associated priority.
Prototype
An
early or trial working version of the proposed system developed to
test possible solutions.
Prototyping
Building
a working model, demonstration system, simplified version, rough copy
or trial piece of software to help an analyst.
Pseudo-random
numbers
A
series of numbers generated by computer with apparent randomness.
Queue
A
first-in-first-out (FIFO) abstract data type.
Recursive
definition
One
that is defined in terms of itself.
Recursive
routine
A
routine defined in terms of itself.
Referential
integrity
If
a value appears in a foreign key in one table it must also appear in
the primary key in another table.
Regular
expression
A
notation for defining all the valid strings of a formal language or a
special text string for describing a search pattern.
Regular
language
Any
language that a finite state machine (FSM) will accept.
Relation
A
set of attributes and tuples, modelling an entity (a table).
Relational
database
A
collection of tables which can be linked together by means of primary
and foreign keys.
Relationship
An
association or link between two entities.
Relative
error
The
absolute error divided by the actual numbers.
Robust
code
The
program will function reliably and not crash or go into infinite
loops, even with incorrect inputs or unpredictable values.
Rooted
tree
A
tree in which one vertex has been designated as the root and every
edge is directed away from the root.
Router
A
device that receives packets or from one host (computer) or router
and uses the destination IP address that they contain to pass them
correctly formatted, to another host (computer) or router.
Serial
data transmission
Single
bits are sent one after another along a single wire.
Server
A
computer that provides shared resources to network users.
Significant
digits
Those
digits which carry meaning contributing to the accuracy of a number.
This includes all digits except leading and trailing zeros where they
serve merely as placeholders to indicate the scale of the number.
Simple
graph
A
graph without multiple edges in which each edge connects to two
different vertices.
Software
as a service (SaaS)
A
model of software deployment where an application is hosted as a
service provided to customers across the internet.
Space-complexity
(of an algorithm)
How
much memory an algorithm needs.
Stack
A
last-in-first-out (LIFO) abstract data type.
Stack
frame
The
locations in the stack area used to store the values referring to one
invocation of a routine.
Stand-alone
computer
A
computer not networked, requiring its own printer and other
peripherals plus its own installation of application software.
State
transition diagram
A
directed graph whose nodes represent the states. An edge leading from
state s to state t is called a transition and is labelled with a
symbolic code, eg a | b. The a part of the label is called the
transition’s trigger and denotes the input symbol. The b part,
which is optional, denotes the output symbol.
Static
data structure
The
memory required to store the data structure is declared before run
time.
System
software
A
program that manages the operation of a computer.
Thin-client
network
A
network where all processing takes place in a central server; the
clients are dumb terminals with little or no processing tower or
local hard disk storage.
Time-complexity
(of an algorithm)
How
fast an algorithm runs, expressed as a function of the number of
input values.
Topology
(networks)
The
shape, configuration or structure of the connections that connect
device to the network.
Tractable
A
problem that has a reasonable (polynomial) time solution as the size
of the input increases.
Transition
function
Maps
(input symbol, current state) to (output symbol, next state,
direction of movement).
Transition
table
Tabulates
the mappings (input symbol, current state) to (output symbol, next
state, direction of movement) for all inputs.
Traveller’s
problem
The
solution finds a route that visits each city exactly once before
returning to the starting point.
Tree
A
connected undirected graph with no cycles.
Trojan
A
program that hides in or masquerades as desirable software, such as
utility or a game, but attacks computers it infects.
Tuple
A
set of attribute values in a database.
Turing
machine (TM)
A
formal model of computation that consists of a finite state machine
(FSM) that controls one or more tapes, where at least one tape is of
unbounded length (ie infinitely long).
Undecidable
Describes
a decision-type algorithmic problem that is non-computable.
Underflow
The
result of a calculation is too small to be represented using the
available number of bits.
Universal
TM, UTM
A
universal Turing machine can simulate any other Turing machine.
A
UTM, U,
is an interpreter that reads the description <M>
of any arbitrary Turing machine M and faithfully executes operations
on data D precisely
as M does.
For single-tape Turing machines, it is imagined that <M>
is written at the beginning of the tape, followed by D.
Usability
The
ease with which a user interface can be used by its intended audience
to achieve defined goals.
Virtual
machine
The
apparent machine that the operating system presents to the user,
achieved by hiding the complexities of the hardware behind layers of
operating system software.
Virus
(computer)
A
small program attached to another program or data file. It replicates
itself by attaching itself to other programs.
Volumetrics
Measurement
or assessment of the volume of data that a system will be required to
process and store.
Web
2.0
Software
that becomes a service that is accessed over the Internet.
Web
server extension
A
program written in native code, ie an executable or a script that is
interpreted by an interpreter running on the web server that extends
the functionality of the web server and allows it to generate content
at the time of the HTTP request.
Web
services
Self-contained,
modular applications that can be described, published, located and
invoked over a network, generally the web.
WiFi
Trademarked
IEEE 802.11 technologies that support wireless networking of home and
business networks.
Wireless
network
Any
type of local area network (LAN) in which the nodes (computers or
computing devices, often portable devices) are not connected by wires
but use radio waves to transmit data between them.
Worm
A
small program that exploits a network security weakness (security
hole) to replicate itself through computer networks