Further Programming A Python
Further Programming A Python
Key terms
Programming paradigm – a set of programming concepts.
Low-level programming – programming instructions that use the computer’s basic instruction
set.
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.
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.
Class – a template defining the methods and data of a certain type of object.
Attributes (class) – the data items in a class.
Method – a programmed procedure that is defined as part of a class.
Encapsulation – process of putting data and methods together as a single unit, a class.
Object – an instance of a class that is self-contained and includes data and methods.
Property – data and methods within an object that perform a named action.
Instance – An occurrence of an object during the execution of a program.
Data hiding – technique which protects the integrity of an object by restricting access to the
data and methods within that object.
Inheritance – process in which the methods and data from one class, a superclass or base
class, are copied to another class, a derived class.
Polymorphism – feature of object-oriented programming that allows methods to be redefined
for derived classes.
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.
Containment (aggregation) – process by which one class can contain other classes.
Getter – a method that gets the value of a property.
Setter – a method used to control changes to a variable.
Constructor – a method used to initialise a new object.
Destructor – a method that is automatically invoked when an object is destroyed.
Declarative programming – statements of facts and rules together with a mechanism for
setting goals in the form of a query.
Fact – a ‘thing’ that is known.
Rules – relationships between facts.
ACTIVITY 20A
A section of memory in a computer contains these denary values:
Give the value stored in the accumulator (ACC) and the index register (IX) after each of these
instructions have been executed and state the mode of addressing used.
ACTIVITY 20B
Write a pseudocode algorithm to calculate the areas of five different shapes (square, rectangle,
triangle, parallelogram and circle) using the basic imperative programming paradigm (no
procedures or functions, and using only global variables).
Rewrite the pseudocode algorithm in a more structured way using the procedural programming
paradigm (make sure you use procedures, functions, and local and global variables).
Write and test both algorithms using the programming language of your choice.
20.1.3 Object-oriented programming (OOP)
Object-oriented programming (OOP) is a programming methodology that uses self-contained
objects, which contain programming statements (methods) and data, and which communicate
with each other. This programming paradigm is often used to solve more complex problems as it
enables programmers to work with real life things. Many procedural programming languages
have been developed to support OOP. For example, Java, Python and Visual Basic all allow
programmers to use either procedural programming or OOP.
Object-oriented programming uses its own terminology, which we will explore here.
Class
A class is a template defining the methods and data of a certain type of object. The attributes are
the data items in a class. A method is a programmed procedure that is defined as part of a class.
Putting the data and methods together as a single unit, a class, is called encapsulation. To ensure
that only the methods declared can be used to access the data within a class, attributes need to be
declared as private and the methods need to be declared as public.
For example, a shape can have name, area and perimeter as attributes and the methods set
shape, calculate area, calculate perimeter. This information can be shown in a class
diagram (Figure 20.1).
Object
When writing a program, an object needs to be declared using a class type that has already been
defined. An object is an instance of a class that is self-contained and includes data and methods.
Properties of an object are the data and methods within an object that perform named actions.
An occurrence of an object during the execution of a program is called an instance.
For example, a class employee is defined and the object myStaff is instanced in these programs
using Python, VB and Java.
Python
VB
Java
Data hiding protects the integrity of an object by restricting access to the data and methods
within that object. One way of achieving data hiding in OOP is to use encapsulation. Data hiding
reduces the complexity of programming and increases data protection and the security of data.
Here is an example of a definition of a class with private attributes in Python, VB and Java.
Python
VB
Java
ACTIVITY 20C
Write a short program to declare a class, student, with the private attributes name,
dateOfBirth and examMark, and the public method displayExamMark. Declare an object
myStudent, with a name and exam mark of your choice, and use your method to display the
exam mark.
Inheritance
Inheritance is the process by which the methods and data from one class, a superclass or base
class, are copied to another class, a derived class.
Figure 20.2 shows single inheritance, in which a derived class inherits from a single superclass.
Multiple inheritance is where a derived class inherits from more than one superclass (Figure
20.3).
Python
VB
Java
Figure 20.4 shows the inheritance diagram for the base class employee and the derived classes
partTime and fullTime.
ACTIVITY 20D
Write a short program to declare a class, student, with the private attributes name,
dateOfBirth and examMark, and the public method displayExamMark.
VB
Java
ACTIVITY 20E
Write a short program to declare the class shape with the public method area.
Declare the derived classes circle, rectangle and square.
Use polymorphism to redefine the method area for these derived classes.
Declare objects for each derived class and instance them with suitable data.
Use your methods to display the areas for these shapes.
Example of overloading
One way of overloading a method is to use the method with a different number of parameters.
For example, a class greeting is defined with the method hello. The object myGreeting is
instanced and uses this method with no parameters or one parameter in this Python program.
This is how Python, VB and Java manage overloading.
Python
VB
Java
ACTIVITY 20F
Write a short program to declare the class greeting, with the public method hello, which can
be used without a name, with one name or with a first name and last name.
Declare an object and use the method to display each type of greeting.
Containment
Containment, or aggregation, is the process by which one class can contain other classes. This
can be presented in a class diagram.
When the class ‘aeroplane’ is defined, and the definition contains references to the classes – seat,
fuselage, wing, cockpit – this is an example of containment.
Figure 20.5
When deciding whether to use inheritance or containment, it is useful to think about how the
classes used would be related in the real world.
For example
• when looking at shapes, a circle is a shape – so inheritance would be used
• when looking at the aeroplane, an aeroplane contains wings – so containment would be used.
Consider the people on board an aeroplane for a flight. The containment diagram could look like
this if there can be up to 10 crew and 350 passengers on board:
Figure 20.6
ACTIVITY 20G
Draw a containment diagram for a course at university where there are up to 50 lectures, three
examinations and the final mark is the average of the marks for the three examinations.
Object methods
In OOP, the basic methods used during the life of an object can be divided into these types:
constructors, setters, getters, and destructors.
A constructor is the method used to initialise a new object. Each object is initialised when a new
instance is declared. When an object is initialised, memory is allocated.
For example, in the first program in Chapter 20, this is the method used to construct a new
employee object.
Constructor Language
Python
VB
Table 20.1
A setter is a method used to control changes to any variable that is declared within an object.
When a variable is declared as private, only the setters declared within the object’s class can be
used to make changes to the variable within the object, thus making the program more robust.
For example, in the employee base class, this code is a setter:
Setter Language
Python
VB
Java
Table 20.3
Getter Language
Python
VB
Java
Table 20.4
A destructor is a method that is invoked to destroy an object. When an object is destroyed the
memory is released so that it can be reused. Both Java and VB use garbage collection to
automatically destroy objects that are no longer used so that the memory used can be released. In
VB garbage collection can be invoked as a method if required but it is not usually needed.
For example, in any of the Python programs above, this could be used as a destructor:
Destructor Language
Python
VB – only if required, automatically called at
end of program
Table 20.6
VB – the function
returns the value
searched for if it is
found, otherwise it
returns Nothing
Java – the function
returns the value
searched for if it is
found, otherwise it
returns null
Table 20.9
ACTIVITY 20H
In your chosen programming language, write a program using objects and recursion to
implement a binary tree. Test your program by setting the root of the tree to 27, then adding the
integers 19, 36, 42 and 16 in that order.
Declarative programming uses statements of facts and rules together with a mechanism for
setting goals in the form of a query. A fact is a ‘thing’ that is known, and rules are relationships
between facts. Writing declarative programs is very different to writing imperative programs. In
imperative programming, the programmer writes a list of statements in the order that they will be
performed. But in declarative programming, the programmer can state the facts and rules in any
order before writing the query.
Prolog is a declarative programming language that uses predicate logic to write facts and rules.
For example, the fact that France is a country would be written in predicate logic as:
Note that all facts in Prolog use lower-case letters and end with a full stop.
Another fact about France – the language spoken in France is French – could be written as:
Note that a variable in Prolog – Country, in this example – begins with an uppercase-letter.
This would give the following results:
The results are usually shown in the order the facts are stored in the knowledge base.
A query about the languages spoken in a country, Switzerland, could look like this:
When a query is written as a statement, this statement is called a goal and the result is found
when the goal is satisfied using the facts and rules available.
ACTIVITY 20I
Use the facts above to write queries to find out which language is spoken in England and
which country speaks Japanese. Take care with the use of capital letters.
The results for the country Switzerland query would look like this in SWI-Prolog:
Most knowledge bases also make use of rules, which are also written using predicate logic.
Here is a knowledge base for the interest paid on bank accounts. The facts about each account
include the name of the account holder, the type of account (current or savings), and the amount
of money in the account. The facts about the interest rates are the percentage rate, the type of
account and the amount of money needed in the account for that interest rate to be paid.
ACTIVITY 20J
Carry out the following activities using the information above.
1 Write a query to find out the interest rate for Laila’s bank account.
2 Write a query to find who has savings accounts.
3 a) Set up a savings account for Robert with 300.00.
b) Set up a new fact about savings accounts allowing for an interest rate of 7% if there is
2000.00 or more in a savings account.
ACTIVITY 20K
1 Explain the difference between the four modes of addressing in a low-level programming
language. Illustrate your answer with assembly language code for each mode of addressing.
2 Compare and contrast the use of imperative (procedural) programming with OOP. Use the
shape programs you developed in Activities 20B and 20E to illustrate your answer with
examples to show the difference in the paradigms.
3 Use the knowledge base below to answer the following questions:
a) Write two new facts about Java, showing that it is a high-level language and uses OOP.
b) Show the results from these queries
i) teaching(X).
ii) teaching(masm).
c) Write a query to show all programming languages translated by an assembler.
20.2 File processing and exception handling
WHAT YOU SHOULD ALREADY KNOW
In Chapter 10, Section 10.3, you learnt about text files, and in Chapter 13, Section 13.2, you
learnt about file organisation and access. Review these sections, then try these three questions
before you read the second part of this chapter.
1 a) Write a program to set up a text file to store records like this, with one record on every
line.
Key terms
Read – file access mode in which data can be read from a file.
Write – file access mode in which data can be written to a file; any existing data stored in the
file will be overwritten.
Append – file access mode in which data can be added to the end of a file.
Open – file-processing operation; opens a file ready to be used in a program.
Close – file-processing operation; closes a file so it can no longer be used by a program.
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.
20.2.1 File processing operations
Files are frequently used to store records that include data types other than string. Also, many
programs need to handle random access files so that a record can be found quickly without
reading through all the preceding records.
A typical record to be stored in a file could be declared like this in pseudocode:
If a sequential file was required, then the student records would need to be input into an array of
records first, then sorted on the key field registerNumber, before the array of records was
written to the file.
Here are programs in Python, VB and Java to write a single record to a file.
Python
VB
Java
(Java programs using files need to include exception handling – see Section 20.2.2 later in this
chapter.)
ACTIVITY 20L
In the programming language of your choice, write a program to
• input a student record and save it to a new serial file
• read a student record from that file
• extend your program to work for more than one record.
Note that you can directly append a record to the end of a file in a programming language by
opening the file in append mode, as shown in the table below.
ACTIVITY 20M
In the programming language of your choice, write a program to
• put a student record and append it to the end of a sequential file
• find and output a student record from a sequential file using the key field to identify the
record
• extend your program to check for record not found (if required).
The algorithm written in pseudocode below inserts a student record into a random file.
EXTENSION ACTIVITY 20G
In the programming language of your choice, write a program to input a student record and
save it to a random file.
Here are programs in Python, VB and Java to catch an integer division by zero exception.
Python
VB
Java
ACTIVITY 20N
In the programming language of your choice, write a program to check that a value input is an
integer.
ACTIVITY 20O
In the programming language of your choice, extend the file handling programs you wrote in
Section 20.2.1 to use exception handling to ensure that the files used exist and allow for the
condition unexpected end of file.
Clause Explanation
01 Ahmed is male
05 Aisha is female
08 Ahmed is a parent of Raul
14 A is the mother of B if A is female and A is a parent of B
returns
Write the result returned by the goal
[2]
c) Use the variable M to write the goal to find the mother of Gina.
[1]
d) Write the rule to show that F is the father of C.
[2]
i) State the pseudocode line number which causes the exception to be raised.
[1]
ii) Explain the purpose of the pseudocode on lines 11 and 12.
[3]
Cambridge International AS & A Level Computer Science 9608
Paper 42 Q5(b)–(d) June 2016
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.
Belady’s 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.
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 × 2E (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.
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 28 = 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.
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.
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 owner’s 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.
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 data’s 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 individual’s 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.
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.
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 one’s 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.
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.
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.
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.
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.
TLB 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 22
(4) possible binary combinations, 3 inputs will have 23 (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 computer’s 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.
Index
1D arrays 241–2
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, 481–7, 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, 250–1, 253–5, 464, 466–9, 549
stacks 238, 250–3, 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 425–34
writing 220–35
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, 330–3
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 190–3
machine learning, deep learning and 434–45
shortest path algorithms 425–34
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 490–1, 541
basic input/output system (BIOS) 108, 113, 542
Belady’s 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, 10–12, 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 130–1
binary trees 451, 481–7, 542
finding items 482–3
inserting items 484–7
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 130–2
bit-map images 15–18, 542
calculating file size 17–18
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
bus network topology 28, 37, 39, 542
by reference method 275, 277–8, 542
bytecode 152–3
bytes 6–7
by value method 275, 277, 542
C
cache memory 68, 69, 71, 108, 113, 542, 547
Cambridge Analytica scandal 193
candidate keys 197, 200–1, 542
capacitive touch screens 69, 82–3, 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 86–7
CASE statements 222, 223, 271–3
CDs 75–6
cellular networks 56
central processing unit (CPU) architecture 107–20
components 109–10
computer ports 108, 114–16, 549
fetch-execute cycle 108, 116–18, 544
interrupts 108, 118–19
registers 108, 109, 110–11, 550
system buses 109, 112–14
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, 32–4, 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 27–67, 328–45
circuit switching and packet switching 337–43
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 217–19
computer-assisted translation (CAT) 441
computer ethics 180–1
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 85–7, 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) 208–10, 543
databases 196–208, 543
normalisation 203–7
data bus 108, 112, 543
data definition language (DDL) 211–12, 543
data dependency 209
data dictionary 208, 209, 543
data entry, verification during 170–2
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 160–4
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 308–11
floating-point numbers 312–25
number systems 2–12
Unicode 2, 14, 15, 552
user-defined data types 304–7, 552
data security 40, 159–68, 410–24, 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 40–1
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, 521–4, 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, 7–8
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
digital to analogue converter (DAC) 69, 80–1, 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, 521–3, 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, 309–11, 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 17–18
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 425–34
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, 346–71
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 55–7
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, 340–1, 342, 545
procedures or functions 275, 280, 545
heuristic checking 137, 144, 545
heuristics 425, 430, 545
hexadecimal number system 2, 7–10, 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, 330–1, 545
hubs 28, 37, 45–6, 545
repeating 28, 46–7, 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, 180–1, 546
IF statements 222, 223, 224, 271, 457
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, 500–1, 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, 514–15, 546
inkjet printers 78
input data instructions 124
input devices 81, 84–7
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, 180–1, 546
instructions 121–2, 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, 329–37
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, 57–8, 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 360–1
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 469–74
inserting items 474–7
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 356–8
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, 241–2, 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, 9–10, 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, 140–1, 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
monitoring 85–7, 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 15–21
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) 425–34, 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, 7–10, 545
O
object code 121, 123, 548
object-oriented programming (OOP) 498, 501–21, 548
containment 499, 514–15, 543
inheritance 499, 505–9, 514–15, 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
one’s 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, 385–7, 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 271–3
output data instructions 124
output devices 77–84
overclocking 108, 113, 548
overflow errors 313, 325, 548
overloading 499, 509, 513–14, 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, 350–3, 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, 509–13, 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 317–19, 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, 200–1, 549
primary memory 70–3
printers 77–9
privacy 179, 549
data privacy 159, 160, 543
software copyright and 186–7
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
processors 107–35, 346–53
assembly language 121–9, 541
bit manipulation 130–2
CPU architecture 107–20
parallel processing 350–3
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, 500–1, 546
low-level programming 498, 499–500, 547
OOP 498, 501–21, 548
properties 498, 502, 549
protocols 328–37, 549
security and 416–18
prototyping 287
pseudocode 219, 220, 221–33, 549
structure charts 289–91
writing algorithms using 221–9
writing from a flowchart 231–3
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, 250–1, 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 377–8
real-time (bit streaming) 29, 53, 549
record protocol 417
records
database 196, 199–200, 549
data type 238, 240–1, 549
recursion 490–4, 549
referential integrity 197, 201, 549
refreshed 68, 71, 550
registers 109, 110–11, 550
Register Transfer Notation (RTN) 108, 117–18, 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, 46–7, 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, 71–2, 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 377–8
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, 417–18, 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, 84–7, 550
sequential access 308, 309–10, 550
sequential circuits 354, 358, 550
sequential file organisation 308, 309–10, 550
adding records to sequential files 531–3
storing records in sequential files 526–31
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 130–1, 551
shortest job first (SJF) scheduling 379–80, 381
shortest path algorithms 425–34
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 187–9
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 211–14, 521, 551
SR flip-flops 358–60
stacks 238, 250–3, 464–6, 551
stack operations 251–3
star network topology 28, 37–8, 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, 70–1, 551
status register 108, 109, 110, 111, 551
stepwise refinement 219, 233–5, 551
storage devices 69–77
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 211–14, 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, 411–12, 551
syntax analysis 394, 395, 397, 551
syntax diagrams 394, 398–400, 551
syntax errors 150, 155, 295, 551
system buses 109, 112–14
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, 329–37
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, 206–7, 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, 329–37
transport 192
transport layer 329, 330, 333–4
Transport Layer Security (TLS) 416, 417–18, 552
Trojan horses 165
truth tables 89, 90–8, 552
tuples 197, 200, 552
twisted pair cables 28, 44, 552
two pass assemblers 122–3
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, 160–1, 552
user-defined data types 304–7, 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
linear search 453
linked lists 472, 476, 479–80
loops 274, 275
OOP 502, 504, 506–7, 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, 385–7, 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 41–3, 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