541
GLOSSARY
Glossary
A* algorithm – an algorithm that finds the shortest route
between nodes or vertices but uses an additional heuristic
approach to achieve better performance than Dijkstra’s
algorithm.
Abnormal test data – test data that should be rejected by a program.
Absolute addressing – mode of addressing in which the
contents of the memory location in the operand are used.
Abstract data type (ADT) – a collection of data and a set of
operations on that data.
Abstraction – the process of extracting information that is
essential, while ignoring what is not relevant, for the
provision of a solution.
Acceptance testing – the testing of a completed program to
prove to the customer that it works as required.
Access rights (data security) – use of access levels to ensure
only authorised users can gain access to certain data.
Access rights (database) – the permissions given to database
users to access, modify or delete data.
Accumulator – temporary general purpose register which stores
numerical values at any part of a given operation.
Acknowledgement – message sent to a receiver to indicate that
data has been received without error.
ACM – Association for Computing Machinery.
Adaptive maintenance – the alteration of a program to perform
new tasks.
Address bus – carries the addresses throughout the computer
system.
Addressing modes – different methods of using the operand
part of a machine code instruction as a memory address.
Algorithm – an ordered set of steps to be followed in the
completion of a task.
Alpha testing – the testing of a completed or nearly completed
program in-house by the development team.
Analogue to digital converter (ADC) – needed to convert
analogue data (read from sensors, for example) into a form
understood by a computer.
Analysis – part of the program development lifecycle; a process
of investigation, leading to the specification of what a
program is required to do.
Anti-spyware software – software that detects and removes
spyware programs installed illegally on a user’s computer
system.
Antivirus software – software that quarantines and deletes files
or programs infected by a virus (or other malware); it can be
run in the background or initiated by the user.
Append – file access mode in which data can be added to the end
of a file.
Argument – the value passed to a procedure or function.
Arithmetic shift – the sign of the number is preserved.
Arithmetic-logic unit (ALU) – component in the processor
which carries out all arithmetic and logical operations.
ARPAnet – Advanced Research Projects Agency Network.
Array – a data structure containing several elements of the same
data type.
Artificial intelligence (AI) – machine or application which
carries out a task that requires some degree of intelligence
when carried out by a human counterpart.
Artificial neural networks – networks of interconnected nodes
based on the interconnections between neurons in the
human brain; the system is able to think like a human using
these neural networks, and its performance improves with
more data.
ASCII code – coding system for all the characters on a keyboard
and control codes.
Assembler – a computer program that translates programming
code written in assembly language into machine code;
assemblers can be one pass or two pass.
Assembly language – a low-level chip/machine specific
programming language that uses mnemonics.
Asymmetric encryption – encryption that uses public keys
(known to everyone) and private keys (secret keys).
Asynchronous serial data transmission – serial refers to a
single wire being used to transmit bits of data one after the
other; asynchronous refers to a sender using its own clock/
timer device rather sharing the same clock/timer with the
recipient device.
Attribute (database) – an individual data item stored for an
entity; for example, for a person, attributes could include
name, address, date of birth.
Attributes (class) – the data items in a class.
Audio compression – method used to reduce the size of a sound
file using perceptual music shaping.
Authentication a way of proving somebody or something is
who or what they claim to be.
Automatic repeat request (ARQ) – a type of verification check.
Back propagation – method used in artificial neural networks
to calculate error gradients so that actual node/neuron
weightings can be adjusted to improve the performance of
the model.
Back-up utility – software that makes copies of files on another
portable storage device.
Backus-Naur form (BNF) notation – a formal method of
defining the grammatical rules of a programming language.
Bad sector – a faulty sector on an HDD which can be soft or
hard.
Base case – a terminating solution to a process that is not
recursive.
BCS – British Computer Society.
Beladys anomaly – phenomenon which means it is possible to
have more page faults when increasing the number of page
frames.
Beta testing the testing of a completed program by a small
group of users before it is released.
Bidirectional – used to describe a bus in which bits can travel
in both directions.
542
GLOSSARY
Big O notation – a mathematical notation used to describe the
performance or complexity of an algorithm.
Binary – base two number system based on the values 0 and 1 only.
Binary coded decimal (BCD) – number system that uses 4 bits
to represent each denary digit.
Binary file – a file that does not contain text only; the file is
machine-readable but not human-readable.
Binary floating-point number – a binary number written in the
form M × 2
E
(where M is the mantissa and E is the exponent).
Binary search – a method of searching an ordered list by testing
the value of the middle item in the list and rejecting the half
of the list that does not contain the required value.
Binary tree – a hierarchical data structure in which each parent
node can have a maximum of two child nodes.
Binder 3D printing – 3D printing method that uses a two-stage
pass; the first stage uses dry powder and the second stage
uses a binding agent.
Biometrics – use of unique human characteristics to identify a
user (such as fingerprints or face recognition).
BIOS – basic input/output system.
Birefringence – a reading problem with DVDs caused by
refraction of laser light into two beams.
Bit – abbreviation for binary digit.
Bit depth number of bits used to represent the smallest unit
in, for example, a sound or image file; the larger the bit
depth, the better the quality of the sound or colour image.
Bit rate – number of bits per second that can be transmitted
over a network; it is a measure of the data transfer rate over
a digital telecoms network.
Bit streaming – contiguous sequence of digital bits sent over a
network/internet.
Bit-map image – system that uses pixels to make up an image.
BitTorrent – protocol used in peer-to-peer networks when
sharing files between peers.
Black-box testing – a method of testing a program that tests a
module’s inputs and outputs.
Block chaining – form of encryption, in which the previous
block of ciphertext is XORed with the block of plaintext and
then encrypted thus preventing identical plaintext blocks
producing identical ciphertext.
Block cipher – the encryption of a number of contiguous bits in
one go rather than one bit at a time.
Bluetooth – wireless connectivity that uses radio waves in the
2.45 GHz frequency band.
Boolean algebra – a form of algebra linked to logic circuits and
based on TRUE and FALSE.
Bootstrap – a small program that is used to load other programs
to ‘start up’ a computer.
Boundary test data – test data that is on the limit of that
accepted by a program or data that is just outside the limit
of that rejected by a program.
Breakpoint – a deliberate pause in the execution of a program
during testing so that the contents of variables, registers,
and so on can be inspected to aid debugging.
Bridge – device that connects LANs which use the same protocols.
Broadcast – communication where pieces of data are sent from
sender to receiver.
Bubble sort – a method of sorting data in an array into
alphabetical or numerical order by comparing adjacent items
and swapping them if they are in the wrong order.
Buffering – store which holds data temporarily.
Burst time – the time when a process has control of the CPU.
Bus network topology – network using single central cable in
which all devices are connected to this cable; data can only
travel in one direction and only one device is allowed to
transmit at a time.
By reference – a method of passing a parameter to a procedure
in which the value of the variable can be changed by the
procedure.
By value – a method of passing a parameter to a procedure in
which the value of the variable cannot be changed by the
procedure.
Cache memory – a high speed auxiliary memory which permits
high speed data transfer and retrieval.
Candidate key – an attribute or smallest set of attributes in a
table where no tuple has the same value.
Capacitive – type of touch screen technology based on glass
layers forming a capacitor; fingers touching the screen cause
a change in the electric field.
Certificate authority (CA) – commercial organisation used to
generate a digital certificate requested by website owners or
individuals.
Character set – a list of characters that have been defined by
computer hardware and software; it is necessary to have
a method of coding, so that the computer can understand
human characters.
Chatbot – computer program set up to simulate conversational
interaction between humans and a website.
Check digit – additional digit appended to a number to check if
entered data is error-free.
Checksum – verification method used to check if data
transferred has been altered or corrupted; calculated from
the block of data to be sent.
Ciphertext – the product when plaintext is put through an
encryption algorithm.
Circuit switching – method of transmission in which a dedicated
circuit/channel lasts throughout the duration of the
communication.
CISC – complex instruction set computer.
Class – a template defining the methods and data of a certain
type of object.
Classless inter-domain routing (CIDR) – increases IPv4
flexibility by adding a suffix to the IP address, such as
200.21.100.6/18.
CLI – command line interface.
Client-server – network that uses separate dedicated servers
and specific client work stations; all client computers are
connected to the dedicated servers.
Clock cycle – clock speeds are measured in terms of GHz; this is
the vibrational frequency of the clock which sends out pulses
along the control bus; a 3.5 GHZ clock cycle means 3.5 billion
clock cycles a second.
Close – file-processing operation; closes a file so it can no
longer be used by a program.
543
GLOSSARY
Cloud storage – method of data storage where data is stored on
off-site servers.
Cluster a number of computers (containing SIMD processors)
networked together.
CMOS – complementary metal-oxide semiconductor.
Coaxial cable – cable made up of central copper core, insulation,
copper mesh and outer insulation.
Code generation – the third stage in the process of compilation;
this stage produces an object program.
Coding – part of the program development lifecycle; the writing
of the program or suite of programs.
Collision – situation in which two messages/data from different
sources are trying to transmit along the same data channel.
Colour depth – number of bits used to represent the colours in a
pixel, e.g. 8 bit colour depth can represent 2
8
= 256 Colours.
Combination circuit – circuit in which the output depends
entirely on the input values.
Compiler – a computer program that translates a source program
written in a high-level language to machine code or p-code,
object code.
Composite data type – a data type constructed using several of the
basic data types available in a particular programming language.
Composite key – a set of attributes that form a primary key to
provide a unique identifier for a table.
Conflict – situation in which two devices have the same IP address.
Constant – a named value that cannot change during the
execution of a program.
Constructor – a method used to initialise a new object.
Containment (aggregation) – process by which one class can
contain other classes.
Context switching – procedure by which, when the next process
takes control of the CPU, its previous state is reinstated or
restored.
Contiguous – items next to each other.
Control – to automatically take readings from a device, then use
the data from those readings to adjust the device.
Control bus – carries signals from control unit to all other
computer components.
Control unit – ensures synchronisation of data flow and
programs throughout the computer by sending out control
signals along the control bus.
Core – a unit made up of ALU, control unit and registers which is
part of a CPU; a CPU may contain a number of cores.
Corrective maintenance – the correction of any errors that
appear during use.
Cross-coupling – interconnection between two logic gates
which make up a flip-flop.
CSMA/CD – carrier sense multiple access with collision detection;
a method used to detect collisions and resolve the issue.
Culture – the attitudes, values and practices shared by a group
of people/society.
Current instruction register (CIR) – this is a register used to
contain the instruction which is currently being executed or
decoded.
Cyclic shift – no bits are lost; bits shifted out of one end of the
register are introduced at the other end of the register.
Data bus – allows data to be carried from processor to memory
(and vice versa) or to and from input/output devices.
Data definition language (DDL) – a language used to create,
modify and remove the data structures that form a database.
Data dictionary – a set of data that contains metadata (data
about other data) for a database.
Data hiding – technique which protects the integrity of an
object by restricting access to the data and methods within
that object.
Data integrity – the accuracy, completeness and consistency of
data.
Data management – the organisation and maintenance of data
in a database to provide the information required.
Data manipulation language (DML) – a language used to add,
modify, delete and retrieve the data stored in a relational
database.
Data modelling – the analysis and definition of the data
structures required in a database and to produce a data
model.
Data privacy – the privacy of personal information, or other
information stored on a computer, that should not be
accessed by unauthorised parties.
Data protection laws – laws which govern how data should be
kept private and secure.
Data redundancy – situation in which the same data is stored
on several servers in case of maintenance or repair.
Data security – methods taken to prevent unauthorised access
to data and to recover data if lost or corrupted.
Data type – a classification attributed to an item of data, which
determines the types of value it can take and how it can be
used.
Database – a structured collection of items of data that can be
accessed by different applications programs.
Database management system (DBMS) – systems software for
the definition, creation and manipulation of a database.
Debugging – the process of finding logic errors in a computer
program by running or tracing the program.
Declarative programming – statements of facts and rules
together with a mechanism for setting goals in the form of
a query.
Decomposition – the process of breaking a complex problem
into smaller parts.
Deep learning – machines that think in a way similar to the
human brain; they handle huge amounts of data using
artificial neural networks.
Design – part of the program development lifecycle; it uses the
program specification from the analysis stage to show how
the program should be developed.
Destructor – a method that is automatically invoked when an
object is destroyed.
Developer interface – feature of a DBMS that provides
developers with the commands required for definition,
creation and manipulation of a database.
Device driver – software that communicates with the operating
system and translates data into a format understood by the
device.
544
GLOSSARY
Dictionary – an abstract data type that consists of pairs, a key
and a value, in which the key is used to find the value.
Digest –a fixed-size numeric representation of the contents of
a message produced from a hashing algorithm; this can be
encrypted to form a digital signature.
Digital certificate – an electronic document used to prove the
identity of a website or individual; it contains a public key
and information identifying the website owner or individual;
issued by a CA.
Digital rights management (DRM) – used to control the access
to copyrighted material.
Digital signature – electronic way of validating the authenticity
of digital documents (that is, making sure they have not
been tampered with during transmission) and also proof that
a document was sent by a known user.
Digital to analogue converter (DAC) – needed to convert digital
data into electric currents that can drive motors, actuators
and relays, for example.
Dijkstra’s algorithm – an algorithm that finds the shortest path
between two nodes or vertices in a graph/network.
Direct 3D printing – 3D printing technique where print head
moves in the x, y and z directions. Layers of melted material
are built up using nozzles like an inkjet printer.
Direct access – a method of file access in which a record can be
physically found in a file without physically reading other
records.
Direct addressing – mode of addressing in which the contents
of the memory location in the operand are used; same as
absolute addressing.
Direct memory access (DMA) controller – device that allows
certain hardware to access RAM independently of the CPU.
Dirty – term used to describe a page in memory that has been
modified.
Disk compression – software that compresses data before
storage on an HDD.
Disk content analysis software – utility that checks disk drives
for empty space and disk usage by reviewing files and folders.
Disk defragmenter – utility that reorganises the sectors on
a hard disk so that files can be stored in contiguous data
blocks.
Disk formatter – utility that prepares a disk to allow data/files
to be stored and retrieved.
Disk thrashing – problem resulting from use of virtual memory;
excessive swapping in and out of virtual memory leads to
a high rate of hard disk read/write head movements thus
reducing processing speed.
DNS cache poisoning – altering IP addresses on a DNS server by
a ‘pharmer’ or hacker with the intention of redirecting a user
to their fake website.
Domain name service (DNS) – (also known as domain name
system) gives domain names for internet hosts and is a
system for finding IP addresses of a domain name.
Dry run – a method of testing a program that involves working
through a program or module from a program manually.
Dual core – a CPU containing two cores.
Dual layering – used in DVDs; uses two recording layers.
Dynamic link file (DLL) – a library routine that can be linked to
another program only at the run time stage.
Dynamic RAM (DRAM) – type of RAM chip that needs to be
constantly refreshed.
Eavesdropper – a person who intercepts data being transmitted.
Electronically erasable programmable read-only memory
(EEPROM)
– a read-only (ROM) chip that can be modified by
the user which can then be erased and written to repeatedly
using pulsed voltages.
Emulation – the use of an app/device to imitate the behaviour
of another program/device; for example, running an OS on a
computer which is not normally compatible.
Encapsulation – process of putting data and methods together
as a single unit, a class.
Encryption – the use of encryption keys to make data
meaningless without the correct decryption key.
Entity – anything that can have data stored about it; for
example, a person, place, event, thing.
Entity-relationship (E-R) model or E-R diagram – a graphical
representation of a database and the relationships between
the entities.
Enumerated data type – a non-composite data type defined by
a given list of all possible values that has an implied order.
Erasable PROM (EPROM) – type of ROM that can be programmed
more than once using ultraviolet (UV) light.
Ethernet – protocol IEEE 802.3 used by many wired LANs.
Ethical hacking – hacking used to test the security and
vulnerability of a computer system; the hacking is carried
out with the permission of the computer system owner, for
example, to help a company identify risks associated with
malicious hacking of their computer systems.
Ethics – moral principles governing an individual’s or
organisation’s behaviour, such as a code of conduct.
Even parity – binary number with an even number of 1-bits.
Exception – an unexpected event that disrupts the execution of
a program.
Exception handling – the process of responding to an exception
within the program so that the program does not halt
unexpectedly.
Exponent – the power of 2 that the mantissa (fractional part) is
raised to in a floating-point number.
Extreme test data – test data that is on the limit of that
accepted by a program.
Fact – a ‘thing’ that is known.
False positive – a file or program identified by a virus checker
as being infected but the user knows this cannot be correct.
Fetch-execute cycle – a cycle in which instructions and data are
fetched from memory and then decoded and finally executed.
Fibre optic cable – cable made up of glass fibre wires which use
pulses of light (rather than electricity) to transmit data.
Field – a column in a table in a database.
File – a collection of data stored by a computer program to be
used again.
File access – the method used to physically find a record in the
file.
File organisation – the way that records of data are physically
stored in a file, including the structure and ordering of the
records.
545
GLOSSARY
File server – a server on a network where central files and other
data are stored; they can be accessed by a user logged onto
the network.
Finite state machine (FSM) – a mathematical model of a
machine that can be in one state of a fixed set of possible
states; one state is changed to another by an external input;
this is known as a transition.
Firewall – software or hardware that sits between a computer
and external network which monitors and filters all incoming
and outgoing activities.
First in first out (FIFO) page replacement – page replacement
that keeps track of all pages in memory using a queue
structure; the oldest page is at the front of the queue and is
the first to be removed when a new page is added.
First normal form (1NF) – the status of a relational database in
which entities do not contain repeated groups of attributes.
Flag – indicates the status of a bit in the status register; for
example, N = 1 indicates the result of an addition gives a
negative value.
Flash memory – a type of EEPROM, particularly suited to use in
drives such as SSDs, memory cards and memory sticks.
Flip-flop circuits – electronic circuits with two stable
conditions using sequential circuits.
Flowchart – a diagrammatic representation of an algorithm.
Foreign key – a set of attributes in one table that refer to the
primary key in another table.
Fragmented – storage of data in non-consecutive sectors; for
example, due to editing and deletion of old data.
Frame rate – number of video frames that make up a video per
second.
Frames – fixed-size physical memory blocks.
Free Software Foundation – organisation promoting the free
distribution of software, giving users the freedom to run,
copy, change or adapt the coding as needed.
Freeware – software that can be downloaded free of charge;
however, it is covered by the usual copyright laws and cannot
be modified; nor can the code be used for another purpose.
FTP –file transfer protocol.
Full adder circuit – two half adders combined to allow the sum
of several binary bits.
Function – a set of statements that can be grouped together
and easily called in a program whenever required, rather
than repeating all of the statements each time. Unlike a
procedure, a function always returns a value.
Gateway – device that connects LANs which use different
protocols.
General case – a solution to a process that is recursively defined.
Getter – a method that gets the value of a property.
Graph – a non-linear data structure consisting of nodes and edges.
Gray codes – ordering of binary numbers such that successive
numbers differ by one bit value only, for example, 00 01 11 10.
Guest OS – an OS running on a virtual machine.
GUI – graphical user interface.
Hacking – illegal access to a computer system without the
owners permission.
Half adder circuit – carries out binary addition on two bits
giving sum and carry.
Handshake – the process of initiating communication between
two devices; this is initiated by one device sending a
message to another device requesting the exchange of data.
Hard disk drive (HDD) – type of magnetic storage device that
uses spinning disks.
Hardware management – part of the operating system that
controls all input/output devices connected to a computer
(made up of sub-management systems such as printer
management, secondary storage management, and so on).
Hashing algorithm (cryptography) – a function which
converts a data string into a numeric string which is used in
cryptography.
Hashing algorithm (file access) – a mathematical formula used
to perform a calculation on the key field of the record; the
result of the calculation gives the address where the record
should be found.
HCI – human–computer interface.
Header (procedure or function) – the first statement in the
definition of a procedure or function, which contains its
name, any parameters passed to it, and, for a function, the
type of the return value.
Header (data packet) – part of a data packet containing key
data such as destination IP address, sequence number, and
so on.
Heuristic – method that employs a practical solution (rather
than a theoretical one) to a problem; when applied to
algorithms this includes running tests and obtaining results
by trial and error.
Heuristic checking – checking of software for behaviour that
could indicate a possible virus.
Hexadecimal – a number system based on the value 16 (uses the
denary digits 0 to 9 and the letters A to F).
High-bandwidth digital copy protection (HDCP) – part of HDMI
technology which reduces risk of piracy of software and
multimedia.
High-definition multimedia interface (HDMI) – type of port
connecting devices to a computer.
Hop number/hopping – number in the packet header used
to stop packets which never reach their destination from
‘clogging up’ routes.
Host – a computer or device that can communicate with other
computers or devices on a network.
Host OS – an OS that controls the physical hardware.
Host-to-host – a protocol used by TCP when communicating
between two devices.
HTTP – hypertext transfer protocol.
Hub – hardware used to connect together a number of devices to
form a LAN; directs incoming data packets to all devices on
the network (LAN).
Hybrid network – network made up of a combination of other
network topologies.
HyperText Mark-up Language (HTML) – used to design web
pages and to write http(s) protocols, for example.
Hypervisor – virtual machine software that creates and runs
virtual machines.
Icon – small picture or symbol used to represent, for example, an
application on a screen.
Identifier – a unique name applied to an item of data.
546
GLOSSARY
IEEE – Institute of Electrical and Electronics Engineers.
Image resolution – number of pixels that make up an image;
for example, an image could contain 4096 × 3192 pixels
(13 074 432 pixels in total).
IMAP – internet message access protocol.
Immediate access store (IAS) – holds all data and programs
needed to be accessed by the control unit.
Immediate addressing – mode of addressing in which the value
of the operand only is used.
Imperative programming – programming paradigm in which the
steps required to execute a program are set out in the order
they need to be carried out.
In demand paging – a form of data swapping where pages of
data are not copied from HDD/SSD into RAM until they are
actually required.
Index (database) – a data structure built from one or more
columns in a database table to speed up searching for data.
Index (array) – a numerical indicator of an item of datas
position in an array.
Indexed addressing – mode of addressing in which the contents
of the memory location found by adding the contents of the
index register (IR) to the address of the memory location in
the operand are used.
Indirect addressing – mode of addressing in which the contents
of the contents of the memory location in the operand are
used.
Inheritance – process in which the methods and data from one
class, a superclass or base class, are copied to another class,
a derived class.
Insertion sort – a method of sorting data in an array into
alphabetical or numerical order by placing each item in turn
in the correct position in the sorted list.
Instance – An occurrence of an object during the execution of a
program.
Instruction – a single operation performed by a CPU.
Instruction set – the complete set of machine code instructions
used by a CPU.
Integrated development environment (IDE) – a suite of
programs used to write and test a computer program written
in a high-level programming language.
Integration testing – a method of testing a program that tests
combinations of program modules that work together.
Intellectual property rights – rules governing an individuals
ownership of their own creations or ideas, prohibiting the
copying of, for example, software without the owner’s
permission.
Internet – massive network of networks, made up of computers
and other electronic devices; uses TCP/IP communication
protocols.
Internet protocol (IP) – uses IPv4 or IPv6 to give addresses to
devices connected to the internet.
Internet service provider (ISP) – company which allows a user
to connect to the internet; they will usually charge a monthly
fee for the service they provide.
Interpreter – a computer program that analyses and executes a
program written in a high-level language line by line.
Interrupt – signal sent from a device or software to a processor
requesting its attention; the processor suspends all
operations until the interrupt has been serviced.
Interrupt dispatch table (IDT) – data structure used to
implement an interrupt vector table.
Interrupt priority – all interrupts are given a priority so that
the processor knows which need to be serviced first and
which interrupts are to be dealt with quickly.
Interrupt priority levels (IPL) – values given to interrupts
based on values 0 to 31.
Interrupt service routine (ISR) or interrupt handler – software
which handles interrupt requests (such as ‘printer out of
paper) and sends the request to the CPU for processing.
IPv4 – IP address format which uses 32 bits, such as 200.21.100.6.
IPv6 – newer IP address format which uses 128 bits, such as
A8F0:7FFF:F0F1:F000:3DD0: 256A:22FF:AA00.
Iterative model – a type of program development cycle in which
a simple subset of the requirements is developed, then
expanded or enhanced, with the development cycle being
repeated until the full system has been developed.
JavaScript – object-orientated (or scripting) programming
language used mainly on the web; used to enhance HTML
pages.
JPEG – Joint Photographic Expert Group; a form of lossy file
compression based on the inability of the eye to spot certain
colour changes and hues.
Karnaugh maps (K-maps) – a method used to simplify logic
statements and logic circuits; uses Gray codes.
Kernel – the core of an OS with control over process
management, memory management, interrupt handling,
device management and I/O operations.
Key distribution problem – security issue inherent in symmetric
encryption arising from the fact that, when sending the
secret key to a recipient, there is the risk that the key can be
intercepted by an eavesdropper/hacker.
Labelled data – data where we know the target answer and the
data object is fully recognised.
LAN – local area network (network covering a small area such as
a single building).
Latency – the lag in a system; for example, the time to find a
track on a hard disk, which depends on the time taken for the
disk to rotate around to its read-write head.
Least recently used (LRU) page replacement – page
replacement algorithm in which the page which has not been
used for the longest time is replaced.
Leech – a peer with negative feedback from swarm members.
Left shift – bits are shifted to the left.
Legal – relating to, or permissible by, law.
Lexical analysis – the first stage in the process of compilation;
removes unnecessary characters and tokenises the program.
Library program – a program stored in a library for future use by
other programmers.
Library routine – a tested and ready-to-use routine available in
the development system of a programming language that can
be incorporated into a program.
Linear search – a method of searching in which each element of
an array is checked in order.
547
GLOSSARY
Linked list – a list containing several items in which each item
in the list points to the next item in the list.
Logic circuit – formed from a combination of logic gates and
designed to carry out a particular task; the output from a
logic circuit will be 0 or 1.
Logic error – an error in the logic of a program.
Logic gates – electronic circuits which rely on ‘on/off’ logic; the
most common ones are NOT, AND, OR, NAND, NOR and XOR.
Logical memory – the address space that an OS perceives to be
main storage.
Logical schema – a data model for a specific database that is
independent of the DBMS used to build that database.
Logical shift – bits shifted out of the register are replaced with
zeros.
Lossless file compression – file compression method where the
original file can be restored following decompression.
Lossy file compression – file compression method where
parts of the original file cannot be recovered during
decompression; some of the original detail is lost.
Low level scheduling – method by which a system assigns a
processor to a task or process based on the priority level.
Lower bound – the index of the first element in an array, usually
0 or 1.
Low-level programming – programming instructions that use
the computer’s basic instruction set.
Lurker – user/client that downloads files but does not supply
any new content to the community.
Machine code – the programming language that the CPU uses.
Machine learning – systems that learn without being
programmed to learn.
Maintenance – part of the program development lifecycle; the
process of making sure that the program continues to work
during use.
Malicious hacking – hacking done with the sole intent of
causing harm to a computer system or user (for example,
deletion of files or use of private data to the hacker’s
advantage).
Malware – malicious software that seeks to damage or gain
unauthorised access to a computer system.
MAN – metropolitan area network (network which is larger than
a LAN but smaller than a WAN; can cover several buildings in
a single city, such as a university campus).
Mantissa – the fractional part of a floating point number.
Mask – a number that is used with the logical operators AND, OR
or XOR to identify, remove or set a single bit or group of bits
in an address or register.
Massively parallel computers – the linking together of several
computers effectively forming one machine with thousands
of processors.
Memory cache – high speed memory external to processor which
stores data which the processor will need again.
Memory dump – contents of a computer memory output to
screen or printer.
Memory management – part of the operating system that
controls the main memory.
Memory optimisation – function of memory management that
determines how memory is allocated and deallocated.
Memory organisation – function of memory management that
determines how much memory is allocated to an application.
Memory protection – function of memory management that
ensures two competing applications cannot use same memory
locations at the same time.
Mesh network topology – interlinked computers/devices,
which use routing logic so data packets are sent from
sending stations to receiving stations only by the shortest
route.
Metadata – a set of data that describes and gives information
about other data.
Method – a programmed procedure that is defined as part of a
class.
MIMD – multiple instruction multiple data, computer
architecture which uses many processors, each of which can
use a separate data source.
MIME – multi-purpose internet mail extension; a protocol that
allows email attachments containing media files as well as
text to be sent.
MISD – multiple instruction single data, computer architecture
which uses many processors but the same shared data source.
Modem – modulator demodulator; device which converts digital
data to analogue data (to be sent down a telephone wire);
conversely it also converts analogue data to digital data
(which a computer can process).
Modulo-11 – method used to calculate a check digit based on
modulus division by 11.
Monitor – to automatically take readings from a device.
Morality – an understanding of the difference between right and
wrong, often founded in personal beliefs.
MP3/MP4 files – file compression method used for music and
multimedia files.
Multitasking – function allowing a computer to process more
than one task/process at a time.
NIC – network interface card; these cards allow devices to
connect to a network/internet (usually associated with a
MAC address set at the factory).
Node – device connected to a network (it can be a computer,
storage device or peripheral device).
Node or vertex – fundamental unit from which graphs are
formed (nodes and vertices are the points where edges
converge).
Non-composite data type – a data type that does not reference
any other data types.
Non-preemptive – type of scheduling in which a process
terminates or switches from a running state to a waiting state.
Normal test data – test data that should be accepted by a
program.
Normalisation (database) – the process of organising data
to be stored in a database into two or more tables and
relationships between the tables, so that data redundancy is
minimised.
Normalisation (floating-point) – a method to improve the
precision of binary floating-point numbers; positive numbers
should be in the format 0.1 and negative numbers in the
format 1.0.
Object – an instance of a class that is self-contained and
includes data and methods.
548
GLOSSARY
Object code – a computer program after translation into machine
code.
Object-oriented programming (OOP) – a programming
methodology that uses self-contained objects, which contain
programming statements (methods) and data, and which
communicate with each other.
Odd parity – binary number with an odd number of 1-bits.
On demand (bit streaming) – system that allows users to
stream video or music files from a central server as and
when required without having to save the files on their own
computer/tablet/phone.
One’s complement – each binary digit in a number is reversed to
allow both negative and positive numbers to be represented.
Opcode – short for operation code, the part of a machine code
instruction that identifies the action the CPU will perform.
Open – file-processing operation; opens a file ready to be used
in a program.
Open Source Initiative – organisation offering the same
freedoms as the Free Software Foundation, but with more
of a focus on the practical consequences of the four shared
rules, such as more collaborative software development.
Operand – the part of a machine code instruction that identifies
the data to be used by the CPU.
Operating system – software that provides an environment
in which applications can run and provides an interface
between hardware and human operators.
Optical storage – CDs, DVDs and Blu-ray® discs that use laser
light to read and write data.
Optimal page replacement – page replacement algorithm that
looks forward in time to see which frame to replace in the
event of a page fault.
Optimisation (compilation) – the fourth stage in the process of
compilation; the creation of an efficient object program.
Optimisation (memory management) – function of memory
management deciding which processes should be in main
memory and where they should be stored.
Organic LED (OLED) – uses movement of electrons between
cathode and anode to produce an on-screen image; generates
its own light so no back lighting required.
Overclocking – changing the clock speed of a system clock to a
value higher than the factory/recommended setting.
Overflow – the result of carrying out a calculation which produces
a value too large for the computer’s allocated word size.
Overloading – feature of object-oriented programming that
allows a method to be defined more than once in a class, so
it can be used in different situations.
Packet – a message/data is split up into smaller groups of bits
for transmission over a network.
Packet switching – method of transmission where a message
is broken into packets which can be sent along paths
independently from each other.
Page fault – occurs when a new page is referred but is not yet in
memory.
Page replacement – occurs when a requested page is not in
memory and a free page cannot be used to satisfy allocation.
Page table – table that maps logical addresses to physical
addresses; it contains page number, flag status, frame
address and time of entry.
Pages – fixed-size logical memory blocks.
Paging – form of memory management which divides up physical
memory and logical memory into fixed-size memory blocks.
PAN – network that is centred around a person or their
workspace.
Parallel processing – operation which allows a process to be
split up and for each part to be executed by a different
processor at the same time.
Parameter – a variable applied to a procedure or function that
allows one to pass in a value for the procedure to use.
Parity bit – an extra bit found at the end of a byte that is set
to 1 if the parity of the byte needs to change to agree with
sender/receiver parity protocol.
Parity block – horizontal and vertical parity check on a block of
data being transferred.
Parity byte – additional byte sent with transmitted data to
enable vertical parity checking (as well as horizontal parity
checking) to be carried out.
Parity check – method used to check if data has been
transferred correctly; uses even or odd parity.
Pattern recognition – the identification of parts of a problem
that are similar and could use the same solution.
Peer – a client who is part of a peer-to-peer network/file sharing
community.
Peer-to-peer – network in which each node can share its files
with all the other nodes; each node has its own data; there is
no central server.
Perceptual music shaping – method where sounds outside
the normal range of hearing of humans, for example, are
eliminated from the music file during compression.
Perfective maintenance – the process of making improvements
to the performance of a program.
Pharming – redirecting a user to a fake website in order to
illegally obtain personal data about the user.
Phishing – legitimate-looking emails designed to trick a
recipient into giving their personal data to the sender of the
email.
PHP – hypertext processor; an HTML-embedded scripting
language used to write web pages.
Physical memory – main/primary RAM memory.
Pieces – splitting up of a file when using peer-to-peer file
sharing.
Pinching and rotating – actions by fingers on a touch screen to
carry out tasks such as move, enlarge, reduce, and so on.
Pipelining – allows several instructions to be processed
simultaneously without having to wait for previous
instructions to finish.
Piracy – the practice of using or making illegal copies of, for
example, software.
Pixel – smallest picture element that makes up an image.
Pixel density – number of pixels per square centimetre.
Plagiarism – the act of taking another person’s work and
claiming it as ones own.
Plaintext – the original text/document/message before it is put
through an encryption algorithm.
Pointer data type – a non-composite data type that uses the
memory address of where the data is stored.
549
GLOSSARY
Polymorphism – feature of object-oriented programming that
allows methods to be redefined for derived classes.
POP – post office protocol.
Port – external connection to a computer which allows it to
communicate with various peripheral devices; a number of
different port technologies exist.
Positive feedback – the output from a process which influences
the next input value to the process.
Post-WIMP – interfaces that go beyond WIMP and use touch
screen technology rather than a pointing device.
Preemptive – type of scheduling in which a process switches
from running state to steady state or from waiting state to
steady state.
Prettyprinting – the practice of displaying or printing well set
out and formatted source code, making it easier to read and
understand.
Primary key – a unique identifier for a table, it is a special case
of a candidate key.
Privacy – the right to keep personal information and data
secret, and for it to not be unwillingly accessed or shared
through, for example, hacking.
Private IP address – an IP address reserved for internal network
use behind a router.
Private key – encryption/decryption key which is known only to
a single user/computer.
Procedure – a set of statements that can be grouped together
and easily called in a program whenever required, rather than
repeating all of the statements each time.
Process – a program that has started to be executed.
Process control block (PCB) – data structure which contains all
the data needed for a process to run.
Process management – part of the operating system that
involves allocation of resources and permits the sharing and
exchange of data.
Process states – running, ready and blocked; the states of a
process requiring execution.
Product key – security method used in software to protect
against illegal copies or use.
Program counter (PC) – a register used in a computer to store
the address of the instruction which is currently being
executed.
Program development lifecycle – the process of developing
a program set out in five stages: analysis, design, coding,
testing and maintenance.
Program library – a library on a computer where programs and
routines are stored which can be freely accessed by other
software developers for use in their own programs.
Programmable ROM (PROM) – type of ROM chip that can be
programmed once.
Programming paradigm – a set of programming concepts.
Property – data and methods within an object that perform a
named action.
Protocol – a set of rules governing communication across a
network; the rules are agreed by both sender and recipient.
Pseudocode – a method of showing the detailed logical steps in
an algorithm, using keywords, identifiers with meaningful
names, and mathematical operators.
Public IP address – an IP address allocated by the user’s ISP to
identify the location of their device on the internet.
Public key – encryption/decryption key known to all users.
Public key infrastructure (PKI) – a set of protocols, standards
and services that allow users to authenticate each other
using digital certificates issued by a CA.
Public switched telephone network (PSTN) – network used by
traditional telephones when making calls or when sending
faxes.
Pull protocol – protocol used when receiving emails, in which
the client periodically connects to a server, checks for and
downloads new emails from a server and then closes the
connection.
Push protocol – protocol used when sending emails, in which
the client opens the connection to the server and keeps the
connection active all the time, then uploads new emails to
the server.
Quad core – a CPU containing four cores.
Quantum – a fixed time slice allocated to a process.
Quantum cryptography – cryptography based on the laws of
quantum mechanics (the properties of photons).
Quantum key distribution (QKD) protocol which uses
quantum mechanics to securely send encryption keys over
fibre optic networks.
Quarantine – file or program identified as being infected by a
virus which has been isolated by antivirus software before it
is deleted at a later stage.
Qubit – the basic unit of a quantum of information (quantum bit).
Query processor – feature of a DBMS that processes and
executes queries written in structured query language (SQL).
Queue – a list containing several items operating on the first in,
first out (FIFO) principle.
Random access memory (RAM) – primary memory unit that can
be written to and read from.
Random file organisation – a method of file organisation in which
records of data are physically stored in a file in any available
position; the location of any record in the file is found by
using a hashing algorithm on the key field of a record.
Rapid application development (RAD) – a type of program
development cycle in which different parts of the
requirements are developed in parallel, using prototyping to
provide early user involvement in testing.
Read – file access mode in which data can be read from a file.
Read-only memory (ROM) – primary memory unit that can only
be read from.
Real-time (bit streaming) – system in which an event is
captured by camera (and microphone) connected to a
computer and sent to a server where the data is encoded; the
user can access the data ‘as it happens’ live.
Record (database) – a row in a table in a database.
Record (data type) – a composite data type comprising several
related items that may be of different data types.
Recursion – a process using a function or procedure that is
defined in terms of itself and calls itself.
Referential integrity – property of a database that does not
contain any values of a foreign key that are not matched to
the corresponding primary key.
550
GLOSSARY
Refreshed – requirement to charge a component to retain its
electronic state.
Register – temporary component in the processor which can be
general or specific in its use; holds data or instructions as
part of the fetch-execute cycle.
Register Transfer Notation (RTN) – short hand notation to
show movement of data and instructions in a processor, can
be used to represent the operation of the fetch-execute
cycle.
Regression – statistical measure used to make predictions from
data by finding learning relationships between the inputs
and outputs.
Reinforcement learning – system which is given no training;
learns on basis of ‘reward and punishment.
Relational database – a database where the data items are
linked by internal pointers.
Relationship – situation in which one table in a database has a
foreign key that refers to a primary key in another table in
the database.
Relative addressing – mode of addressing in which the memory
address used is the current memory address added to the
operand.
Removable hard disk drive – portable hard disk drive that is
external to the computer; it can be connected via a USB port
when required; often used as a device to back up files and
data.
Repeater – device used to boost a signal on both wired and
wireless networks.
Repeating hubs – network devices which are a hybrid of hub and
repeater unit.
Report window – a separate window in the runtime environment
of the IDE that shows the contents of variables during the
execution of a program.
Resistive – type of touch screen technology; when a finger
touches the screen, the glass layer touches the plastic layer,
completing the circuit and causing a current to flow at that
point.
Resolution – number of pixels per column and per row on a
monitor or television screen.
Reverse Polish notation (RPN) – a method of representing
an arithmetical expression without the use of brackets or
special punctuation.
Reward and punishment – improvements to a model based
on whether feedback is positive or negative; actions are
optimised to receive an increase in positive feedback.
Right shift – bits are shifted to the right.
RISC – reduced instruction set computer.
Round robin (scheduling) – scheduling algorithm that uses time
slices assigned to each process in a job queue.
Router – device which enables data packets to be routed
between different networks (for example, can join LANs to
form a WAN).
Routing table – a data table that contains the information
necessary to forward a package along the shortest or best
route to allow it to reach its destination.
Rules – relationships between facts.
Run length encoding (RLE) – a lossless file compression
technique used to reduce text and photo files in particular.
Run-time error – an error found in a program when it is
executed; the program may halt unexpectedly.
Sampling rate – number of sound samples taken per second.
Sampling resolution/bit depth – number of bits used to
represent sound amplitude.
Scheduling – process manager which handles the removal of
running programs from the CPU and the selection of new
processes.
Screen resolution – number of horizontal and vertical pixels
that make up a screen display; if the screen resolution is
smaller than the image resolution, the whole image cannot
be shown on the screen, or the original image will become
lower quality.
Second normal form (2NF) – the status of a relational database
in which entities are in 1NF and any non-key attributes
depend upon the primary key.
Secondary key – a candidate key that is an alternative to the
primary key.
Secure Sockets Layer (SSL) – security protocol used when
sending data over the internet.
Security management – part of the operating system that
ensures the integrity, confidentiality and availability of data.
Seed – a peer that has downloaded a file (or pieces of a file) and
has then made it available to other peers in the swarm.
Segment (transport layer) – this is a unit of data (packet)
associated with the transport layer protocols.
Segment map table – table containing the segment number,
segment size and corresponding memory location in physical
memory; it maps logical memory segments to physical memory.
Segment number – index number of a segment.
Segments (memory) – variable-size memory blocks into which
logical memory is split up.
Semi-supervised (active) learning – system that interactively
queries source data to reach the desired result; it uses both
labelled and unlabelled data, but mainly unlabelled data on
cost grounds.
Sensor – input device that reads physical data from its
surroundings.
Sequential access – a method of file access in which records are
searched one after another from the physical start of the file
until the required record is found.
Sequential circuit – circuit in which the output depends on
input values produced from previous output values.
Sequential file organisation – a method of file organisation in
which records of data are physically stored in a file, one after
another, in a given order.
Serial access – a method of file access in which records are
searched one after another from the physical start of the file
until the required record is found.
Serial file organisation – a method of file organisation in which
records of data are physically stored in a file, one after
another, in the order they were added to the file.
Session caching – function in TLS that allows a previous
computer session to be ‘remembered’, therefore preventing
the need to establish a new link each time a new session is
attempted.
Set – a given list of unordered elements that can use set theory
operations such as intersection and union.
551
GLOSSARY
Setter – a method used to control changes to a variable.
Shareware – software that is free of charge initially (free
trial period); the full version of the software can only be
downloaded once the full fee for the software has been paid.
Shift – moving the bits stored in a register a given number of
places within the register; there are different types of shift.
Sign and magnitude – binary number system where left-most bit
is used to represent the sign (0 = + and 1 = –); the remaining
bits represent the binary value.
SIMD – single instruction multiple data, computer architecture
which uses many processors and different data inputs.
Single stepping – the practice of running a program one line/
instruction at a time.
SISD – single instruction single data, computer architecture
which uses a single processor and one data source.
SMTP – simple mail transfer protocol.
Softmodem – abbreviation for software modem; a software-
based modem that uses minimal hardware.
Solid state drive (SSD) – storage media with no moving parts
that relies on movement of electrons.
Source code – a computer program before translation into
machine code.
Spread spectrum frequency hopping – a method of transmitting
radio signals in which a device picks one of 79 channels at
random. If the chosen channel is already in use, it randomly
chooses another channel. It has a range up to 100 metres.
Spread spectrum technology – wideband radio frequency with a
range of 30 to 50 metres.
SQL script – a list of SQL commands that perform a given task,
often stored in a file for reuse.
Stack – a list containing several items operating on the last in,
first out (LIFO) principle.
Star network topology – a network that uses a central hub/
switch with all devices connected to this central hub/switch;
all data packets are directed through this central hub/switch.
Starve – to constantly deprive a process of the necessary
resources to carry out a task/process.
State-transition diagram – a diagram showing the behaviour of
a finite state machine (FSM).
State-transition table – a table showing every state of a finite
state machine (FSM), each possible input and the state after
the input.
Static RAM (SRAM) – type of RAM chip that uses flip-flops and
does not need refreshing.
Status register – used when an instruction requires some form
of arithmetic or logical processing.
Stepwise refinement – the practice of subdividing each part of
a larger problem into a series of smaller parts, and so on, as
required.
Stream cipher – the encryption of bits in sequence as they
arrive at the encryption algorithm.
Structure chart – a modelling tool used to decompose a problem
into a set of sub-tasks. It shows the hierarchy or structure
of the different modules and how they connect and interact
with each other.
Structured English – a method of showing the logical steps
in an algorithm, using an agreed subset of straightforward
English words for commands and mathematical operations.
Structured query language (SQL) – the standard query
language used with relational databases for data definition
and data modification.
State-transition table – a table showing every state of a finite
state machine (FSM), each possible input and the state after
the input.
Stub testing – the use of dummy modules for testing purposes.
Sub-netting – practice of dividing networks into two or more
sub-networks.
Sum of products (SoP) – a Boolean expression containing AND
and OR terms.
Super computer – a powerful mainframe computer.
Supervised learning – system which is able to predict future
outcomes based on past data; it requires both input and
output values to be used in the training process.
Swap space – space on HDD used in virtual memory, which saves
process data.
Swarm – connected peers (clients) that share a torrent/tracker.
Switch – hardware used to connect together a number of devices
to form a LAN; directs incoming data packets to a specific
destination address only.
Symbolic addressing – mode of addressing used in assembly
language programming; a label is used instead of a value.
Symmetric encryption – encryption in which the same secret
key is used to encrypt and decrypt messages.
Syntax analysis – the second stage in the process of
compilation; output from the lexical analysis is checked for
grammatical (syntax) errors.
Syntax diagram – a graphical method of defining and showing
the grammatical rules of a programming language.
Syntax error – an error in the grammar of a source program.
System clock – produces timing signals on the control bus to
ensure synchronisation takes place.
Table – a group of similar data, in a database, with rows for each
instance of an entity and columns for each attribute.
TCP – transmission control protocol.
Test plan – a detailed list showing all the stages of testing and
every test that will be performed for a particular program.
Test strategy – an overview of the testing required to meet the
requirements specified for a particular program; it shows how
and when the program is to be tested.
Testing – part of the program development lifecycle; the
testing of the program to make sure that it works under all
conditions.
Thick client – device which can work both off line and on line
and is able to do some processing even if not connected to a
network/internet.
Thin client – device that needs access to the internet for
it to work; it depends on a more powerful computer for
processing.
Third normal form (3NF) – the status of a relational database
in which entities are in 2NF and all non-key attributes are
independent.
Thrash point – point at which the execution of a process comes
to a halt since the system is busier paging in/out of memory
rather than actually executing them.
Timeout – time allowed to elapse before an acknowledgement is
received.
552
GLOSSARY
Touch screen – screen on which the touch of a finger or stylus
allows selection or manipulation of a screen image; they
usually use capacitive or resistive technology.
Trace table – a table showing the process of dry-running a
program with columns showing the values of each variable as
it changes.
Tracker – central server that stores details of all other computers
in the swarm.
Translation lookaside buffer (TLB) – this is a memory cache
which can reduce the time taken to access a user memory
location; it is part of the memory management unit.
Translator – the systems software used to translate a source
program written in any language other than machine code.
Transport Layer Security (TLS) – a more up-to-date version of SSL.
Truth table – a method of checking the output from a logic
circuit; they use all the possible binary input combinations
depending on the number of inputs; for example, 2 inputs
have 2
2
(4) possible binary combinations, 3 inputs will have
2
3
(8) possible binary combinations, and so on.
Tuple – one instance of an entity, which is represented by a row
in a table.
Twisted pair cable – type of cable in which two wires of a single
circuit are twisted together; several twisted pairs make up a
single cable.
Two’s complement – each binary digit is reversed and 1 is
added in right-most position to produce another method of
representing positive and negative numbers.
Underflow – the result of carrying out a calculation which produces
a value too small for the computer’s allocated word size.
Unicode – coding system which represents all the languages of
the world (first 128 characters are the same as ASCII code).
Unidirectional – used to describe a bus in which bits can travel
in one direction only.
Uniform resource locator (URL) – specifies location of a web
page (for example, www.hoddereducation.co.uk).
Universal Serial Bus (USB) – a type of port connecting devices
to a computer.
Unlabelled data – data where objects are undefined and need to
be manually recognised.
Unsupervised learning – system which is able to identify hidden
patterns from input data; the system is not trained on the
‘right’ answer.
Unwinding – process which occurs when a recursive function
finds the base case and the function returns the values.
Upper bound – the index of the last element in an array.
User account – an agreement that allows an individual to use a
computer or network server, often requiring a user name and
password.
User defined data type – a data type based on an existing
data type or other data types that have been defined by a
programmer.
Utility program – parts of the operating system which carry out
certain functions, such as virus checking, defragmentation or
hard disk formatting.
Validation – method used to ensure entered data is reasonable
and meets certain input criteria.
Variable – a named value that can change during the execution
of a program.
Vector graphics – images that use 2D points to describe lines
and curves and their properties that are grouped to form
geometric shapes.
Verification – method used to ensure data is correct by using
double entry or visual checks.
Video Graphics Array (VGA) – type of port connecting devices
to a computer.
Virtual machine – an emulation of an existing computer system;
a computer OS running within another computers OS.
Virtual memory – type of paging that gives the illusion of
unlimited memory being available.
Virtual memory systems – memory management (part of OS) that
makes use of hardware and software to enable a computer to
compensate for shortage of actual physical memory.
Virtual reality headset – apparatus worn on the head that
covers the eyes like a pair of goggles; it gives the user the
feeling of being there’ by immersing them totally in the
virtual reality experience.
Voice over Internet Protocol (VoIP) – converts voice and webcam
images into digital packages to be sent over the internet.
Von Neumann architecture – computer architecture which
introduced the concept of the stored program in the 1940s.
Walkthrough – a method of testing a program; a formal version
of a dry run using pre-defined test cases.
WAN – wide area network (network covering a very large
geographical area).
(W)AP – (wireless) access point which allows a device to access
a LAN without a wired connection.
Waterfall model – a linear sequential program development cycle,
in which each stage is completed before the next is begun.
Web browser – software that connects to DNS to locate IP
addresses; interprets web pages sent to a user’s computer so that
documents and multimedia can be read or watched/listened to.
Web crawler – internet bot that systematically browses the
world wide web to update its web page content.
White-box testing – a method of testing a program that tests the
structure and logic of every path through a program module.
Wi-Fi – wireless connectivity that uses radio waves, microwaves.
WIMP – windows, icons, menu and pointing device.
Winding – process which occurs when a recursive function or
procedure is called until the base case is found.
WLAN – wireless LAN.
WNIC – wireless network interface cards/controllers.
Word – group of bits used by a computer to represent a single unit.
World Wide Web (WWW) – collection of multimedia web pages
stored on a website; uses the internet to access information
from servers and other computers.
WPAN – wireless personal area network; a local wireless network
which connects together devices in very close proximity
(such as in a user’s house); typical devices would be a laptop,
smartphone, tablet and printer.
Write – file access mode in which data can be written to a file;
any existing data stored in the file will be overwritten.
Zero compression – way of reducing the length of an IPv6
address by replacing groups of zeroes by a double colon (::);
this can only be applied once to an address to avoid
ambiguity.
553
INDEX
Index
1D arrays 2412
2D arrays 242–3
3D printers 79
A
A* algorithm 425, 429–34, 541
abnormal test data 294, 298, 541
absolute addressing 121, 125, 541
abstract data types (ADTs) 238, 250–9,
464–89, 541
binary trees 451, 4817, 542
graphs see graphs
implementing one ADT from another
ADT 488–9
linked lists 238, 250–1, 255–9, 464,
469–81, 547
queues 238, 2501, 253–5, 464,
466–9, 549
stacks 238, 2503, 464–6, 551
abstraction 217, 218–19, 541
acceptance testing 294, 299, 541
access rights
databases 208, 210, 541
data security 159, 161, 541
accumulator (ACC) 108, 109, 110, 541
accuracy 323–4
acknowledgement 170, 175, 541
actuators 84
adaptive maintenance 294, 299, 541
addition 3–5
address bus 108, 112, 541
addressing modes 121, 125–6, 541
Advanced Research Project Agency
Network (ARPAnet) 28, 29, 541
advertising 193
aggregation (containment) 499, 514–15,
543
Airbus A380 incompatible software issue
184
algorithms 219–35, 450–90, 541
abstract data types see abstract data
types (ADTs)
comparing 489–90
insertion and bubble sorting methods
458–64
linear and binary searching methods
451–7
page replacement 373, 388–9, 548
shortest path algorithms 42534
writing 22035
alpha testing 294, 299, 541
Amazon 33–4
analogue to digital converter (ADC) 19,
69, 81, 84, 541
analysis 283, 284, 285, 286, 541
AND gates 89, 91, 100
multi-input 101–2
anti-lock braking systems (ABS) 87
anti-spy software 160, 163, 541
antivirus software 137, 144, 163, 541
append file access mode 525, 531, 533,
541
application layer 329, 3303
approximations 320–2
arguments 275, 280, 541
arithmetic-logic unit (ALU) 108,
109–10, 541
arithmetic operation instructions 124
arithmetic shift 130, 541
ARPAnet 28, 29, 541
arrays 238, 241–8, 541
artificial intelligence (AI) 189–93,
425–49, 541
impacts on society, the economy and
the environment 1903
machine learning, deep learning and
43445
shortest path algorithms 42534
artificial neural networks 435, 439–41,
444, 541
ASCII code 2, 12–14, 541
assemblers 121, 122–3, 150, 151, 541
assembly language 121–9, 541
instructions 123–5
simple programs 126–8
stages of assembly 122–3
Association for Computing Machinery
(ACM) 179, 181, 541
asymmetric encryption 410, 413–14,
541
asynchronous serial data transmission
108, 114, 541
attributes
classes 498, 501, 541
databases 197, 200, 541
audio compression 21, 541
authentication 159, 160, 541
authenticity 411
auto-documenter 157
automatic repeat request (ARQ) 170,
175, 541
B
backing up data 167
back propagation 435, 441, 444–5, 541
back-up utility software 137, 146, 541
Backus-Naur form (BNF) notation 394,
397, 398, 400, 541
bad sectors 137, 143, 541
base case 4901, 541
basic input/output system (BIOS) 108,
113, 542
Beladys anomaly 373, 388, 541
beta testing 294, 299, 541
bidirectional buses 108, 112, 541
Big O notation 451, 489–90, 542
binary-coded decimal (BCD) system 2,
1012, 542
binary files 329, 332, 542
binary floating-point numbers 313–25,
542
converting denary numbers into
317–25
converting into denary 314–17
binary number system 2–8, 542
converting between denary and 2–3
converting between hexadecimal and
8–9
binary search 451, 454–7, 542
binary shifts 1301
binary trees 451, 4817, 542
finding items 482–3
inserting items 4847
writing programs for 517–21
binder 3D printing 69, 79, 542
biometrics 160, 163–4, 542
BIOS 108, 113, 542
birefringence 69, 76, 542
bit depth (sampling resolution) 15, 16,
20, 24, 542, 550
bit manipulation 1302
bit-map images 15–18, 542
calculating file size 1718
compared with vector graphics 18–19
file compression 22
bit rate 21, 22, 29, 52, 542
bits 2, 542
bit streaming 29, 52–3, 542
BitTorrent protocol 329, 335–7, 542
black and white images 23
black-box testing 294, 299, 542
block chaining 410, 411, 542
block cipher 410, 411, 542
blocked state 377–8
Bluetooth 28, 41–2, 542
protocols 335
Blu-ray® discs 76
Boolean algebra 89, 90–2, 95, 354–6,
542
and logic circuits 361–8
simplification using 355–6
bootstrap program 373, 374, 542
bots 165
boundary test data 294, 298, 542
break 273
breakpoint 150, 155, 542
bridges 28, 47, 542
British Computer Society (BCS) 179,
180, 541
broadcast 29, 50–1, 542
bubble sort 238, 245–8, 458–60, 542
buffering 29, 52, 542
bugs 294–6
burst time 373, 376, 542
buses 109, 112–14
554
INDEX
bus network topology 28, 37, 39, 542
by reference method 275, 277–8, 542
bytecode 1523
bytes 67
by value method 275, 277, 542
C
cache memory 68, 69, 71, 108, 113, 542,
547
Cambridge Analytica scandal 193
candidate keys 197, 2001, 542
capacitive touch screens 69, 823, 542
carrier sense multiple access with
collision avoidance (CSMA/CA) 335
carrier sense multiple access with
collision detection (CSMA/CD) 29,
51, 543
car sensors 867
CASE statements 222, 223, 2713
CDs 75–6
cellular networks 56
central processing unit (CPU) architecture
107–20
components 10910
computer ports 108, 114–16, 549
fetch-execute cycle 108, 116–18, 544
interrupts 108, 118–19
registers 108, 109, 11011, 550
system buses 109, 11214
certificate authority (CA) 416, 418, 420,
421, 542
character set 2, 12, 542
chatbots 435, 442–3, 542
check digits 169, 171, 542
checksums 169, 172, 340, 542
ciphertext 410, 411, 542
circuit switching 55, 337, 338, 542
comparison with packet switching
340–1
CISC (complex instruction set computer)
347, 348, 542
classes 307, 498, 501, 542
classless inter-domain routing (CIDR)
54, 58, 59, 542
CLI (command line interface) 137,
138–9, 542
client/server network model 28, 324,
35–6, 542
clock cycle 108, 113, 542
clock page replacement 388–9
close (file processing) 525, 542
cloud software 41
cloud storage 28, 39–41, 543
clusters 347, 352, 543
CMOS 137, 138, 543
coaxial cables 28, 44, 543
code generation 394, 395, 397, 543
codes of conduct 180–3
coding 283, 284, 285, 286, 543
collisions 29, 50–1, 543
colour depth 15, 16, 24, 543
coloured images 24
colouring monochrome photos 442
combination circuits 354, 358, 543
command line interface (CLI) 137,
138–9, 542
commercial software 187
communication 2767, 328–45
circuit switching and packet switching
33743
internet see internet
networking 28–53
protocols 328–37
compare instructions 125
compilation, stages in 395–8
compilers 149, 151–2, 155, 394–5, 543
composite data types 238, 240, 306–7,
543
composite key 197, 543
computational thinking skills 450–97
algorithms see algorithms
recursion 490–4
skills 21719
computer-assisted translation (CAT) 441
computer ethics 1801
conditional instructions 125
conditional loops 456
confidentiality 411
conflicts 29, 50, 543
constants 264, 265–71, 543
constructors 499, 515–16, 543
containment (aggregation) 499, 514–15,
543
context switching 373, 379, 381, 543
contiguous 137, 140, 543
single (contiguous) memory allocation
383
control 857, 130, 131–2, 543
control bus 108, 112, 543
control unit 108, 109, 110, 543
copyright issues 186–9
cores 108, 113, 543
corrective maintenance 294, 299, 543
count-controlled loops 274, 275
criminal justice system 192
cross-coupling 354, 358–9, 543
CSMA/CA (carrier sense multiple access
with collision avoidance) 335
CSMA/CD (carrier sense multiple access
with collision detection) 29, 51,
543
culture 179, 543
current instruction register (CIR) 108,
110, 116, 117, 543
cyclic shift 130, 543
D
database management systems (DBMSs)
20810, 543
databases 196–208, 543
normalisation 203–7
data bus 108, 112, 543
data definition language (DDL) 21112,
543
data dependency 209
data dictionary 208, 209, 543
data entry, verification during 1702
datagrams 330
data hiding 498, 503, 543
data inconsistency 209
data integrity 169–76, 411, 543
data input instructions 124
data-link layer 329, 330, 334–7
data loss
in cloud storage 40–1
preventing 1604
data management 208, 209, 543
data manipulation language (DML) 211,
213–14, 543
data modelling 208, 210, 543
data movement instructions 123–4
data output instructions 124
data privacy 159, 160, 543
data protection laws 159, 160, 543
data recovery 167
data redundancy 28, 40, 209, 543
data representation 2–15, 304–27
ASCII code 2, 12–14, 541
file organisation and access 30811
floating-point numbers 312–25
number systems 2–12
Unicode 2, 14, 15, 552
user-defined data types 3047, 552
data security 40, 159–68, 41024, 543
digital signatures and digital
certificates 418–23
encryption 160, 163, 410–14, 544
protocols 416–18
quantum cryptography 414–15, 549
when using cloud storage 401
data transfer, verification during 172–5
data types 238–41, 543
abstract see abstract data types (ADTs)
composite 238, 240, 306–7, 543
non-composite 305–6, 547
debugging 150, 155–6, 543
declarative programming 499, 5214,
543
decomposition 217, 219, 330, 543
deep learning 434, 435, 439–43, 543
default 273
defragmentation software 144–5
De Morgan’s Laws 355
denary numbers 2, 78
converting between binary numbers
and 2–3
converting binary floating-point
numbers into 314–17
converting into binary floating-point
numbers 317–25
design 283, 284, 285, 286, 543
destructors 499, 515, 517, 543
developer interface 209, 210, 543
device driver 137, 543
dictionaries 451, 488–9, 544
digest 418, 419, 420, 544
digital certificates 418, 420–2, 544
digital rights management (DRM) 186,
187, 544
digital signatures 162, 418, 419–20, 544
555
INDEX
digital to analogue converter (DAC) 69,
801, 84, 544
Dijkstra’s algorithm 425–9, 544
direct 3D printing 69, 79, 544
direct access 308, 310, 311, 544
direct addressing 121, 125, 544
direct memory access (DMA) controller
373, 375, 544
dirty pages 373, 383, 544
disk compression 137, 145, 544
disk content analysis software 137,
145, 544
disk defragmenter 137, 145, 544
disk formatter 137, 143, 544
disk thrashing 373, 386, 544
DNS cache poisoning 160, 166, 544
DO ... ENDWHILE loops 274–5
domain name system/service (DNS) 54,
61–2, 330, 544
double entry 171
dry runs 294, 296–8, 544
dual core 108, 113, 544
dual layering 69, 75–6, 544
DV (digital video) cameras 20, 21
DVDs 75–6
dynamic link files (DLL) 138, 148, 544
dynamic RAM (DRAM) 68, 70–1, 544
E
eavesdropper 410, 411, 544
electromagnetic radiation 42–3
electronically erasable programmable
read-only memory (EEPROM) 69,
74, 544
Else 273
embedded systems 72
emulation 392, 544
encapsulation 498, 501, 544
encryption 160, 163, 410–14, 544
entities 197, 200, 544
entity-relationship (E-R) diagrams 197,
202, 544
enumerated data types 305, 544
erasable PROM (EPROM) 69, 72, 544
errors in programs 294–6
Ethernet 29, 50–1, 544
protocols 334–5
ethical hacking 160, 164, 544
ethics 179–85, 544
even parity 169, 173, 544
exception handling 525, 535–7, 544
exceptions 525, 535–6, 544
exploding laptop computers 184
exponent 313–24, 544
extreme test data 294, 298, 544
F
face recognition software 439–40
facts 499, 5213, 544
false positives 137, 544
faults in programs 294–6
Federation Against Software Theft (FAST)
186
fetch-execute cycle 108, 116–18, 544
fibre optic cables 28, 44, 544
fields 197, 199–200, 544
file access 308, 30911, 544
file-based approach 197–9
how a DBMS addresses limitations of
209–10
file compression 21–5, 145
file organisation 308–9, 544
file processing 525–35
adding records 531–5
finding records 535
storing records 526–31
files 238, 249–50, 544
bit-map image file sizes 1718
management of 142
file server 28, 30, 545
file transfer protocol (FTP) 329, 330,
331–2, 545
fingerprint scans 164
finite state machine (FSM) 287, 292,
545
firewalls 48, 160, 162–3, 545
first come first served (FCFS) scheduling
379, 381
first in first out (FIFO) page replacement
373, 388, 545
first normal form (1NF) 197, 203,
204–5, 545
flags 108, 111, 545
flash memory 69, 74–5, 374, 545
flip-flop circuits 354, 358–61, 545
floating-point numbers 312–25
flooding 38
flowcharts 219, 220, 221, 545
writing pseudocode from 229–31
foreign keys 197, 200, 201, 545
FOR loops 225, 226
FOR ... NEXT loops 274, 275
fragmentation 69, 73, 545
frame rate 15, 21, 24, 545
frames
memory blocks 373, 383–4, 545
packets 330
Free Software Foundation 186,
187–8, 545
freeware 186, 189, 545
FTP (file transfer protocol) 329, 330,
331–2, 545
full adder circuits 354, 357–8, 545
functions 264, 269, 545
string manipulation functions 269–71
structural programming 278–80
G
gateways 28, 45, 48, 49, 545
general AI 435
general case 490–1, 545
getters 499, 515, 516, 545
graphical user interface (GUI) 137, 138,
139, 545
graphs 451, 487, 545
shortest path algorithms 42534
gray codes 354, 363, 364, 545
guest operating system (OS) 392,
393, 545
GUI (graphical user interface) 137, 138,
139, 545
H
hacking 160, 164, 179, 545
half adder circuits 354, 356–7, 545
handshake 416, 417, 418, 545
hard disk drives (HDDs) 69, 73–4, 545
hardware 30, 68–106, 34671
Boolean algebra and logic circuits
354–68
computers and their components
68–89
logic gates and logic circuits 89–104
needed to support the internet 557
processors and parallel processing
346–53
requirements of networks 45–50
hardware management 137, 142, 545
hashing algorithms
cryptography 418, 419, 420, 545
file access 308, 309, 310–11, 545
HCI (human-computer interface) 137,
138, 545
headers
data packets 337, 3401, 342, 545
procedures or functions 275, 280, 545
heuristic checking 137, 144, 545
heuristics 425, 430, 545
hexadecimal number system 2, 710, 545
high-bandwidth digital copy protection
(HDCP) 108, 115, 545
high-definition multimedia interface
(HDMI) 108, 115, 116, 545
hop number/hopping 337, 340, 545
host 329, 333, 545
host operating system (OS) 392, 393,
545
host-to-host protocol 329, 333–4, 545
HTTP (hypertext transfer protocol) 329,
3301, 545
hubs 28, 37, 45–6, 545
repeating 28, 467, 550
human-computer interface (HCI) 137,
138, 545
hybrid cloud 40
hybrid networks 28, 39, 545
HyperText Mark-up Language (HTML) 54,
55, 545
scripting in 62–4
hypervisor 392, 545
I
icons 137, 545
identifier 238, 239, 545
identifier tables 221, 227, 230, 233, 244,
246, 265, 290
IEEE 50, 179, 1801, 546
IF statements 222, 223, 224, 271, 457
556
INDEX
image resolution 15, 16–17, 24, 546
images
general file compression methods 24
run-length encoding with 23–4
IMAP (internet message access protocol)
329, 330, 332–3, 546
immediate access store (IAS) 108,
110, 546
immediate addressing 121, 126, 546
imperative programming 498, 5001,
546
in demand paging 373, 385–6, 546
index
array 238, 241, 546
database 197, 202, 546
indexed addressing 121, 125, 546
indirect addressing 121, 125, 546
infrared radiation 42–3
inheritance 499, 505–9, 51415, 546
inkjet printers 78
input data instructions 124
input devices 81, 847
input/output (I/O) system 374–5
insertion sort 451, 461–4, 546
instances 498, 502–4, 546
Institute of Electrical and Electronics
Engineers (IEEE) 50, 179, 1801,
546
instructions 1212, 546
assembly language instructions 123–5
instruction set 121, 122, 546
integrated development environments
(IDEs) 150, 151, 153–7, 546
integration testing 294, 299, 546
integrity, data 169–76, 411, 543
intellectual property rights 179, 180,
546
copyright issues 186–9
internet 54–65, 187, 546
communication and internet
technologies 328–45
hardware and software needed 55–7
IP addresses 57–61
TCP/IP protocols 57, 32937
internet message access protocol (IMAP)
329, 330, 332–3, 546
internet/network layer 329, 330, 334–7
internet protocols (IPs) 54, 57–61, 334,
546
internet service providers (ISPs) 54,
55, 546
interpreters 149, 151–2, 155, 394–5, 546
interrupt dispatch table (IDT) 373,
382, 546
interrupt priority 108, 119, 546
interrupt priority levels (IPL) 373,
382, 546
interrupts 108, 118–19, 349–50,
382, 546
interrupt service routine (ISR) (interrupt
handler) 108, 118, 119, 546
IPv4 addressing 54, 578, 546
IPv6 addressing 54, 58–9, 546
iterative model 283, 286, 546
J
Java 228, 239, 271
binary search 456, 457
bubble sort 460
case statements 273
constants and variables 266, 267,
268, 269
exception handling 537
file processing 529–31, 533
functions 278, 280
IF statement 224
insertion sort 463
linear search 453–4
linked lists 473, 476, 480
loops 274, 275
OOP 503, 504, 508–9, 512, 514
procedures 275, 276, 277, 278
queues 466, 467, 468
recursion 492
stacks 464, 465, 466
writing programs for binary trees 518,
520, 521
JavaScript 54, 63, 546
JK flip-flops 3601
JPEG 21, 22, 546
K
Karnaugh maps (K-maps) 354, 363–7, 546
kernel 373, 375–6, 546
key distribution problem 410, 412, 546
keyword table 396
L
LA airport shutdown 184
labelled data 434, 437–8, 440, 441, 546
language translation 149–57, 394–402
LANs (local area networks) 28, 29, 31,
32, 546
laser printers 77
latency 69, 73, 74, 351–2, 546
least recently used (LRU) page
replacement 373, 388, 546
leeches 329, 336, 337, 546
left shift 130, 131, 546
legality 179, 546
lexical analysis 394, 395–7, 546
library programs 138, 147–8, 546
library routines 138, 147–8, 264,
271, 546
linear search 238, 243–4, 451–4, 546
linked lists 238, 250–1, 464, 469–81,
547
deleting items 477–81
finding items in 46974
inserting items 4747
linked list operations 255–9
local area networks (LANs) 28, 29, 31,
32, 546
logical memory 373, 383–4, 547
logical schema 208, 210, 547
logical shift 130, 547
logic bombs 165
logic circuits 89, 92–101, 356–68, 547
Boolean algebra and 361–8
flip-flop circuits 358–61
half adder and full adder circuits
3568
in the real world 99–101
simplification 101
logic errors 150, 155, 295, 547
logic gates 89–92, 547
multi-input 101–4
loops 274–5, 456
writing algorithms 220–9
lossless file compression 21, 547
lossy file compression 21, 547
lower bound 238, 2412, 547
low-level programming 498, 499–500,
547
low level scheduling 373, 377, 547
lurkers 329, 336, 547
M
machine code 121–2, 547
machine learning 193, 434, 435, 436–9,
443, 547
maintenance 283, 284, 285, 286, 294,
299, 547
malicious hacking 160, 164, 547
malware 160, 162, 164–6, 547
MANs (metropolitan area networks) 28,
30, 32, 547
mantissa 313–24, 547
mask 130, 547
massively parallel computers 347,
352, 547
memory 69–77
measurement of size 6–7
memory cache 68, 69, 71, 108, 113,
542, 547
memory dumps 2, 910, 547
memory management 137, 140–1, 373,
382–5, 389, 547
memory optimisation 137, 140, 382,
547, 548
memory organisation 137, 140, 547
memory protection 137, 1401, 547
memory sticks (flash memories) 69,
74–5, 374, 545
mesh network topology 28, 38, 547
metadata 329, 335, 547
methods 498, 501, 547
object methods 515–17
metropolitan area networks (MANs) 28,
30, 32, 547
microphones 81
microwave radiation 42–3
MIMD (multiple instruction multiple data)
347, 351, 352, 547
MIME (multi-purpose internet mail
extension) protocol 329, 332, 547
MISD (multiple instruction single data)
347, 351, 547
modems 28, 48–9, 547
modulo-11 169, 171, 547
557
INDEX
monitoring 857, 130, 131–2, 547
morality 179, 547
motion JPEG 20
movie files 20–1, 24
MPEG-3 (MP3) files 21–2, 547
MPEG-4 (MP4) files 21, 22, 547
multi-input logic gates 101–4
multimedia 1521
multitasking 373, 376, 547
N
NAND gates 89, 91, 100
narrow AI 435
negative numbers 3–4
converting binary floating-point
numbers into denary 315–17
converting denary numbers into binary
floating-point numbers 319–20, 323
normalisation 322
network/data-link layer 329, 330, 334–7
networking 28–53
bit streaming 29, 52–3, 542
client/server model 28, 32–4,
35–6, 542
devices 29–32
Ethernet 29, 50–1, 544
hardware requirements 45–50
peer-to-peer model 28, 34–5, 548
public and private cloud computing
39–41
topologies 36–9
wired and wireless 41–5
network interface cards (NICs) 28, 49, 547
wireless 29, 50, 552
nodes
networks 28, 34, 547
vertices (in graphs) 42534, 547
non-composite data types 305–6, 547
non-preemptive scheduling 373,
376, 547
non-repudiation 411
NOR gates 89, 91
normalisation
databases 197, 203–7, 547
floating-point numbers 313, 322, 547
normal test data 294, 298, 547
NOT gates 89, 90, 100
number systems 2–12
BCD 2, 10–12, 542
binary 2–8, 8–9, 542
hexadecimal 2, 710, 545
O
object code 121, 123, 548
object-oriented programming (OOP) 498,
501–21, 548
containment 499, 51415, 543
inheritance 499, 505–9, 51415, 546
object methods 515–17
polymorphism and overloading 509–14
writing a program for a binary tree
517–21
objects 307, 498, 502–4, 547
odd parity 169, 173, 548
on demand (bit streaming) 29, 53, 548
ones complement 2, 3, 548
opcode 121, 122, 548
open (file processing) 525, 533, 548
Open Source Initiative 186, 187–9, 548
operand 121, 122, 548
operating systems (OS) 136–49,
372–92, 548
memory management 137, 140–1, 373,
382–5, 389, 547
need for 138–9
page replacement 373, 388–9, 548
process management 137, 142, 376–7,
389, 549
process states 373, 377–82, 549
program libraries 138, 147–8, 549
resource maximisation 374–6
tasks 140–2
utility software 137, 143–6, 552
virtual memory 373, 3857, 552
optical storage 69, 75–6, 548
optimal page replacement (OPR) 373,
388, 548
optimisation
compilation 394, 395, 398, 548
memory management 137, 140, 382,
547, 548
organic light emitting diode (OLED) 69,
81–2, 548
OR gates 89, 91, 100
multi-input 102–3
OTHERWISE 2713
output data instructions 124
output devices 77–84
overclocking 108, 113, 548
overflow errors 313, 325, 548
overloading 499, 509, 51314, 548
P
packets 28, 37, 329, 330, 548
packet switching 56, 337, 339–43, 548
compared with circuit switching
340–1
page fault 373, 388, 389, 548
page replacement 373, 388–9, 548
pages 373, 383–4, 548
page tables 373, 383–4, 548
paging 373, 383–4, 385, 548
using virtual memory 385–7
PANs (personal area networks) 28,
32, 548
parallel processing 347, 3503, 548
parameters 275, 276–8, 280, 548
functions with and without 279
parity bit 169, 173, 548
parity blocks 169, 174, 548
parity byte 170, 174–5, 548
parity checks 169, 173–5, 329, 548
partial compiling and interpreting
152–3
passwords 161–2
pattern recognition 217, 219, 548
peers 329, 335, 548
peer-to-peer file sharing 335–7
peer-to-peer network model 28,
34–5, 548
perceptual music shaping 21, 22, 548
perfective maintenance 294, 299, 548
personal area networks (PANs) 28,
32, 548
pharming 160, 166, 548
phishing 160, 165–6, 548
phone calls 55–7
photographic (bit-map) images 22
photographs
enhancing 442
turning monochrome photos into colour
photos 442
PHP 54, 63–4, 548
physical memory 373, 383–4, 548
pieces 329, 335, 548
piezoelectric technology 78
pinching and rotating 137, 139, 548
pipelining 347, 348–50, 548
piracy 186, 548
pixel density 15, 17, 440, 548
pixels 15–16, 82, 548
plagiarism 179, 180, 548
plaintext 410, 411, 548
pointer data types 305, 306, 548
polymorphism 499, 50913, 549
POP (or POP3/4) (post office protocol)
329, 330, 332–3, 549
ports 108, 114–16, 549
positive feedback 84, 354, 359, 549
positive numbers
converting binary floating-point
numbers into denary 314–15
converting denary numbers into binary
floating-point numbers 31719,
323, 324
normalisation 322
post-condition loops 274
post office protocol (POP or POP3/4)
329, 330, 332–3, 549
post-WIMP 137, 139, 549
precision 323–4
pre-condition loops 274–5
pre-emptive scheduling 373, 376, 549
prettyprinting 149, 154, 549
primary keys 197, 2001, 549
primary memory 70–3
printers 77–9
privacy 179, 549
data privacy 159, 160, 543
software copyright and 1867
private cloud 40
private IP addresses 54, 61, 549
private keys 410, 413–14, 549
private networks 31
procedures 264, 271, 275–8, 280, 549
process control block (PCB) 373,
377, 549
processes 373, 376, 549
process management 137, 142, 376–7,
389, 549
558
INDEX
processors 10735, 346–53
assembly language 121–9, 541
bit manipulation 1302
CPU architecture 10720
parallel processing 3503
RISC and CISC processors 347–50
process priority 377
process states 373, 377–82, 549
product key 186, 549
professional ethical bodies 180–3
program counter (PC) 108, 116, 117, 549
program design 287–93
program development lifecycle 283–7,
549
different development lifecycles
285–7
purpose 284
stages 284–5
program libraries 138, 147–8, 549
programmable ROM (PROM) 69, 72, 549
program maintenance 283, 284, 285,
286, 294, 299, 547
program testing 283, 284, 285, 286,
293–4, 296–9, 551
programming 264–82, 498–540
basics 264–71
constants and variables 265–71
constructs 271–5
exception handling 525, 535–7,
544
file processing operations 525–35
library routines 264, 271
structured 275–80
programming paradigms 498–525, 549
declarative programming 499, 521–4,
543
imperative programming 498, 5001,
546
low-level programming 498, 499–500,
547
OOP 498, 501–21, 548
properties 498, 502, 549
protocols 328–37, 549
security and 41618
prototyping 287
pseudocode 219, 220, 22133, 549
structure charts 289–91
writing algorithms using 221–9
writing from a flowchart 2313
writing from a structured English
description 229–31
public cloud 40
public impact of hardware or software
183–5
public IP addresses 54, 61, 549
public key infrastructure (PKI) 416, 418,
549
public keys 410, 413–14, 549
public networks 31
public switched telephone network (PSTN)
54, 55, 549
pull protocols 329, 332–3, 549
push protocols 329, 332, 549
Python 228, 239, 271, 273
binary search 456, 457
bubble sort 459
constants and variables 266, 267, 268
exception handling 536
file processing 527–8, 533
functions 278, 280
IF statement 224
insertion sort 463
linear search 452
linked lists 471, 476, 479
loops 274, 275
OOP 502, 503, 506, 510, 513
procedures 275, 276, 277, 278
queues 466, 467, 468
recursion 491
stacks 464, 465
writing programs for binary trees 518,
519, 520
Q
quad core 108, 113, 549
quantum 373, 376, 379, 381, 549
quantum cryptography 414–15, 549
quantum key distribution (QKD) 414,
549
quarantine 137, 144, 549
qubit 414, 549
query processor 209, 210, 549
queues 238, 2501, 464, 466–9, 549
queue operations 253–5
R
radio waves 42–3
random access memory (RAM) 68, 70–1,
72, 374, 385, 549
random file organisation 308, 309, 310,
549
adding records to random files 533–5
finding records in random files 535
range 323–4
rapid application development (RAD)
283, 286–7, 549
read file access mode 525, 526–7, 549
read-only memory (ROM) 68, 70, 71–2,
549
ready state 3778
real-time (bit streaming) 29, 53, 549
record protocol 417
records
database 196, 199–200, 549
data type 238, 2401, 549
recursion 490–4, 549
referential integrity 197, 201, 549
refreshed 68, 71, 550
registers 109, 11011, 550
Register Transfer Notation (RTN) 108,
11718, 550
regression 435, 445, 550
reinforcement learning 434, 439, 550
relational databases 196, 198–207, 550
relationships 197, 201–2, 550
relative addressing 121, 126, 550
removable hard disk drives 69, 74, 550
repeaters 28, 467, 550
repeating hubs 28, 46–7, 550
REPEAT ... UNTIL loops 225, 226,
227, 274
report window 150, 155–6, 550
resistive touch screens 69, 83, 550
resolution 15, 17, 550
resource management 374–6
retina scans 164
RETURN 279
Reverse Polish notation (RPN) 394,
400–1, 550
reward and punishment 434, 439, 550
right shift 130, 131, 550
RISC (reduced instruction set computer)
347–8, 550
robotics 190
ROM (read-only memory) 68, 70,
712, 549
rounding errors 320–2
round robin scheduling 373, 378–9,
381, 550
routers 28, 47–8, 49, 330, 550
routing 38
routing tables 337, 341–2, 550
rules 499, 521–4, 550
run-length encoding (RLE) 21, 22–4, 550
with images 23–4
with text data 23
running state 3778
runtime environment with a debugger
155–6
run-time errors 294, 296, 550
S
sampling rate 15, 20, 24, 550
sampling resolution/bit depth 15, 16,
20, 24, 542, 550
satellites 43, 56–7
scalable vector graphics (SVG) 22
scheduling 373, 374, 376–82, 550
routines 379–81
screen resolution 15, 16–17, 69, 82, 550
screens 82–4
secondary keys 197, 200, 550
secondary storage 70, 72–7
second normal form (2NF) 197, 203,
205, 550
Secure Sockets Layer (SSL) 416–17,
41718, 550
digital certificate 421
security see data security
security management 137, 141, 550
seeds 329, 336, 337, 550
segmentation 384–5
segment map table 373, 384, 550
segment numbers 373, 384, 550
segments
memory 373, 384–5, 550
transport layer 329, 330, 550
semi-supervised (active) learning 434,
439, 550
sensors 69, 847, 550
559
INDEX
sequential access 308, 30910, 550
sequential circuits 354, 358, 550
sequential file organisation 308,
30910, 550
adding records to sequential files
531–3
storing records in sequential files
52631
serial access 550
serial file organisation 308, 309,
531, 550
storing records in serial files 526–31
services 30
session caching 416, 417, 550
sets 305, 307, 550
setters 499, 515, 516, 551
shareware 186, 189, 551
shifts 1301, 551
shortest job first (SJF) scheduling
379–80, 381
shortest path algorithms 42534
shortest remaining time first (SRTF)
scheduling 379–80, 381
sign and magnitude 2, 3, 551
SIMD (single instruction multiple data)
347, 350, 352, 551
simple mail transfer protocol (SMTP)
329, 330, 332, 351
simplification
of logic circuits 101
using Boolean algebra 355–6
single (contiguous) memory allocation
383
single pass assemblers 122
single stepping 150, 155, 551
SISD (single instruction single data)
347, 350, 551
SMTP (simple mail transfer protocol)
329, 330, 332, 551
softmodem 28, 49, 551
software 30, 136–58
cloud software 41
copyright and privacy 186–7
language translation 149–57, 394–402
licensing 1879
needed to support the internet
55–7
operating systems see operating
systems
software development 283–303
program design 287–93
program development lifecycle 283–7
program testing and maintenance
293–300
Software Engineering Code of Ethics
181–3
solid state drives (SSDs) 69, 74–5, 551
sound files 19–20
source code 121, 122, 551
source code editor 154–5
space complexity 490
speakers 80–1
spread spectrum frequency hopping 28,
41–2, 551
spread spectrum technology 28, 31, 551
spyware 165
SQL scripts 21114, 521, 551
SR flip-flops 358–60
stacks 238, 2503, 464–6, 551
stack operations 251–3
star network topology 28, 378, 39, 551
starving a process 373, 376, 551
state-transition diagrams 287, 292–3,
551
state-transition tables 287, 292, 551
static libraries 148
static RAM (SRAM) 68, 701, 551
status register 108, 109, 110, 111, 551
stepwise refinement 219, 233–5, 551
storage devices 6977
stream cipher 410, 411, 551
strings 269
manipulation functions 269–71
strong AI 435
structure charts 287, 288–92, 551
structured English 219, 220, 551
writing pseudocode from a structured
English description 229–31
structured programming 275–80
structured query language (SQL) 209,
210, 211, 551
SQL scripts 21114, 521, 551
stub testing 294, 299, 551
sub-netting 54, 59–61, 551
subtraction 5–6
sum of products (SoP) 354, 361, 551
super computers 347, 352, 551
supervised learning 434, 438, 551
swap space 373, 385, 551
swarm 329, 336, 551
switches 28, 37, 46, 551
symbolic addressing 121, 126, 551
symmetric encryption 410, 41112, 551
syntax analysis 394, 395, 397, 551
syntax diagrams 394, 398–400, 551
syntax errors 150, 155, 295, 551
system buses 109, 11214
system clock 108, 109, 110, 113, 551
system software 136–58
language translation 149–57, 394–402
operating systems see operating
systems
T
tables 196, 199–200, 551
TCP (transmission control protocol) 329,
333–4, 551
TCP/IP protocols 57, 32937
terminology databases 441
test data 298
testing 283, 284, 285, 286, 293–4,
296–9, 551
test plans 294, 296, 298, 551
test strategy 294, 296, 551
text data, RLE on 23
text files 249–50
text mining 441
thermal bubble technology 78
thick clients 28, 35–6, 551
thin clients 28, 35–6, 551
third normal form (3NF) 197, 203–4,
2067, 551
thrash point 373, 386, 551
time complexity 489
timeout 170, 175, 551
tokenisation 396
touch screens 69, 82–3, 552
trace tables 128, 294, 295, 297, 552
tracker 329, 336, 552
translation lookaside buffer (TLB) 373,
383, 552
translation memories 441
translation software 149–57, 394–402
translators 149, 150–1, 552
transmission control protocol (TCP) 329,
333–4, 551
TCP/IP protocols 57, 32937
transport 192
transport layer 329, 330, 333–4
Transport Layer Security (TLS) 416,
41718, 552
Trojan horses 165
truth tables 89, 90–8, 552
tuples 197, 200, 552
twisted pair cables 28, 44, 552
two pass assemblers 1223
two’s complement 2, 3–4, 552
U
unconditional instructions 125
underflow errors 313, 325, 552
Unicode 2, 14–15, 552
unidirectional buses 108, 112, 552
uniform resource locators (URLs) 54, 55,
61, 552
Universal Serial Bus (USB) ports 108,
114–15, 552
unlabelled data 434, 437, 440–1, 552
unsupervised learning 434, 438–9, 552
unwinding 490, 491, 552
upper bound 238, 241–2, 552
USB ports 108, 114–15, 552
use of data 193
user accounts 159, 1601, 552
user-defined data types 3047, 552
utility programs 137, 143–6, 552
V
validation 169–70, 552
variables 264, 265–71, 552
VB 228, 239, 271
binary search 456, 457
bubble sort 459–60
case statements 273
constants and variables 266, 267, 268
exception handling 536–7
file processing 528–9, 533
functions 278, 280
IF statement 224
insertion sort 463
560
INDEX
linear search 453
linked lists 472, 476, 479–80
loops 274, 275
OOP 502, 504, 5067, 510–11, 513–14
procedures 275, 276, 277, 278
queues 466, 467, 468
recursion 492
stacks 464, 465
writing programs for binary trees 518,
519, 520
vector graphics 15, 18–19, 552
file compression 22
verification 169, 170–6, 552
during data entry 170–2
during data transfer 172–5
vertices (nodes) 425–34, 547
video 20–1, 24
Video Graphics Array (VGA) 108,
115–16, 552
virtual machines (VMs) 392–4, 552
virtual memory 373, 3857, 552
virtual memory systems 137,
140, 552
virtual reality headsets 69, 83–4, 552
virus checkers 144
viruses 164–5
visual check 171
Voice over Internet Protocol (VoIP) 54,
55, 56, 552
Von Neumann architecture 108,
109, 552
W
walkthrough 294, 298, 552
WANs (wide area networks) 28, 29–30,
32, 552
WAPs (wireless access points) 28,
31, 552
waterfall model 283, 285, 552
web browsers 54, 55, 61, 552
web crawler 435, 439, 552
WHILE ... DO ... ENSEMBLE 274–5
white-box testing 294, 299, 552
wide area networks (WANs) 28, 29–30,
32, 552
Wi-Fi 28, 41–2, 552
WiMax (worldwide interoperability for
microwave access) 335
WIMP (windows, icons, menu and pointing
device) 137, 138, 552
winding 490, 491, 552
wired networking 43–5
vs wireless 44–5
wireless access points (WAPs) 28,
31, 552
wireless LANs (WLANs) 28, 31, 552
wireless networking 413, 44–5
wireless network interface cards/
controllers (WNICs) 29, 50, 552
wireless personal area networks (WPANs)
28, 42, 552
wireless (Wi-Fi) protocols 335
word 108, 112, 552
World Wide Web (WWW) 54–5, 187, 552
worms 165
WPANs (wireless personal area networks)
28, 42, 552
write file access mode 525, 526–7, 552
X
XOR gates 89, 92
Z
zero compression 54, 58–9, 552
zero value 325