key terms explained
An ever expanding list of computing key terms and definitions
Computing Key Terms
key term | definition |
---|---|
absolute error | The difference between the actual number and the nearest representable value. |
abstract | Either a verb to describe the process of removing detail from something to make it easier (to make abstract), or adjective to describe what is left over after abstraction (an abstract thing). |
abstract data type (adt) | A data type whose properties are specified independently of any particular programming language. |
abstraction (entity) | Representation that is arrived at by removing unnecessary details. "This is the abstraction I have produced" |
abstraction (process) | Simplifying a problem by removing unnecessary detail to enable the problem to be solved using simpler steps. "I abstract detail from a situation" |
abstraction (technique) | Methods of assessing how important parts of a problem are before deciding whether they have insignificant impact on the solution and can therefore be ignored. "I use abstraction to make my problem easier". |
access rights | Permissions on a computer network that give users or deny users access to certain parts of a network. |
accumulator (acc) | Holds the result of the last calculation to be carried out by the Arithmetic Logic Unit (ALU). Part of the CPU. |
acid | A set of rules that guarentee that database transations are processed reliably. |
actuator | An output device which converts electrical signals into physical movement. An example might be an automatic door opener or a robot arm. |
addition | Mathematical addition (represented using a '+' sign in Python) |
address | A location in main memory used to store data or instructions. |
adware | Malicious software which infects a host computer and displays unwanted adverts trick consumers. |
aggregation | A type of association where the aggregated object has a weaker form of association with the objects that it is aggregating than is the case with composition. These objects have an existence independent of the aggregated object and can continue to exist even after the aggregated object is disposed of. |
ajax | Web technology that allows only the part of a web page that needs updating to be fetched from the web server. |
algorithm | A 'recipe' or sequence of 'unambiguous' instructions for solving a problem. |
algorithmic thinking | Solving a problem using a combination or abstraction, decomposition, generalisation to identify the steps required to solve it. |
alpha type check | Making sure that the data entered into a computer program contains only letters. |
amplitude (sound) | A measurement of the displacement of a wave from zero. Determines the loudness of a sound. |
analogue | Continually varying electrical signal - not a digital signal. |
and gate | A logic gate with at least two inputs which generates a True output if, and only if, all the inputs are True. |
anti-malware software | Special system / utility software which scans the computer system for malware such as viruses, worms, trojans, spyware, rootkits, etc. |
append (file handling) | Adding onto the end of the existing contents of a file. |
application layer (tcp/ip) | The layer where network application (web browsers, email, FTP clients) operate |
application programming interface (api) | A layer of software that allows application programs to call on the services of the operating system. |
application software | Software designed to perform a particular function required by the user rather than by the computer. |
archive | Policy that involves moving data that is no longer in active use to a different location. |
arithmetic (and) logic unit (alu) | A component in the CPU which performs mathematical calculations and logical operations. |
arithmetic operator | A symbol which is used in programming to represent a mathematical operation. |
arithmetic, binary | Peforming arithmetic in base 2 |
array | A collection of data items stored under one variable name. Strictly, each item in an array must be the same data type. Sometimes known as a 'vector'. |
ascending | Increasing in value, either numerical or alphabetical. |
ascii | "American Standard Code for Information Interchange". A standard encoding system for western characters using 7 bits (128 characters). |
assembler | Specific language translation which converts assembly code into machine code. Processor specific. |
assembly language | Mnemonic based programming language with a 1:1 representation of machine code. Processor dependent. |
assignment | Storing a 'value' in the computers memory and giving (assigning) it a 'name' or identifier to allow the computer to retrieve the value later on. |
assignment operator | A mathematical operator used to assign a value to a variable or a constant. Usually an equals (=) sign or a leftward facing arrow (←) in pseudocode. |
association | If the relationship is not inheritance or aggregation it is an association. |
asterisk | A '*' character used to as a wildcard to represent 'any character' in a string. |
asymptotic behaviour of 'f' | Behaviour of the function f(n) for very large values of n. |
asynchronous serial data transmission | Transmission system in which the sender and receiver have separate clocks which are not kept synchronised. Instead, the clocks are synchronised temporarily at the start of a transmission. The arrival of data cannot be predicted by the receiver; s a start bit is used to signal the arrival of data and to synchronise the transmitter and receiver temporarily. |
attribute | A property or characteristic of an entity (databases) or an object (OOP). |
authentication | A programming method which is used to prove the identity of a human |
authentication (network) | A method to identify a user on a network |
authentication routine | A programming routine which authenticates a user |
auto documentation | Software feature used to generate written information about the source code. |
automation | Turning an abstraction into a form that can be processed by a computer. |
average case | When running an algorithm, the average number of operations between the best and worst case. |
backslash character | A backwards facing slash (\) often used to indicate that the next character should be ignored as an escape character. |
backup | Making a copy / duplicate of files in case they corrupt or are lost / deleted. |
backus-naur form, (bnf) | A formal language used to define other languages |
bandwidth | For a transmission medium, the range of signal frequencies it may transmit. |
base case | A value that has a solution which does not involve any reference to the general case solution. |
base, number | The maximum number of individual digits available in a number system. |
baseband system | A system that uses a single data channel system in which the whole bandwidth of the transmission medium is dedicated to one data channel at a time. |
basic operation | The operation which contributes most to the total running time. |
baud rate | The rate at which signals on a wire may change. |
behavioural (biometric) | Characteristics of the ways in which humans behave which can be used to authenticate / identify them. |
behaviours | The functions of the object or what the object does. |
best case | When running an algorithm when it needs to perform the minimum number of operations possible. |
bidmas | Order of operator precedence (brackets, indices, division / multiplication, addition / subtraction) |
binary | Base 2 (number system containing two symbols, 0 and 1). |
binary digit (bit) | Either a 1 or a 0. Symbol 'b'. |
binary encoding | Representing something with a binary code. |
binary encoding table | An 'in order' binary table used to represent binary codes for a collection of objects. |
binary prefix | Kibi (ki), Mebi (Mi), Gibi (Gi), Tebi (Ti), Pebi (Pi), Exbi (Ei), Zebi (Zi), Yobi (Yi) |
binary search | A search algorithm which can only be performed on an ordered (sorted) list and works by splitting the list in half and discarding the unwanted items until a search item is either found or not found. |
binary shift | A method of multiplying or dividing binary numbers by 2 by shifting the whole number left or right one position. |
binary shift, left | Multiplying a binary number by 2 |
binary shift, right | Dividing a binary number by 2 |
biometric (authentication / security) | Using a physical or behavioural characteristic to identify you to a computer system (fingerprint, iris, face, mouse movement, typing style, gait) |
bit | See 'Binary Digit (bit)' |
bit / colour depth (image) | The number of bits used to represent the colour palette of an image. |
bit pattern | A unique pattern of bits used to encode data. |
bitmap | A two dimensional grid of pixels which make up an image |
bitrate | The number of bits transmitted per second through a communication channel. |
black-box penetration testing | A type of penetration testing used to simulate external hacking or a cyber warfare attack. |
blagging (social engineering) | Blagging is the act of creating and using an invented scenario to engage a targeted victim in a manner that increases the chance the victim will divulge information or perform actions that would be unlikely in ordinary circumstances. |
blu-ray | A high-capacity type of optical disk pioneered by Sony for the storage of HD films and video games. |
bluetooth | A short range, radio-wave connectivity protocol. |
boole | Surname of George Boole |
boolean / boolean variable | Of, or pertaining to, 'True' or 'False' |
boolean / logical operator | An operator which returns True or False depending on its operands. AND, OR, NOT, XOR are common examples. |
bootloader | Special software which runs when the computer is started up. It's job is to initialise the basic hardware and load in the operating system. The bootloader is stored in ROM (Read Only Memory) |
boundary data / test | Tests at the edges of a decision. For instance the boundary tests for 'age <= 5' would be 5 and 6. These tests are designed to test program flow. |
branching, conditional | Taking one path or another path through an algorithm dependant on the outcome of a decision statement. |
bridge | Device that connects different network segments and media. |
broadband | A multiple data channel system in which the bandwidth of the transmission medium carries several data streams at the same time. |
brute force attack | Repeatedly trying to gain access to a computer system via trial and error. Often automated using dictionaries or common passwords. |
bubble sort | A sorting algorithm where during a pass, neighbouring values are compared and swapped if necessary. Passes are made until no further swaps are needed. |
bus (computer) | Collection of wires used to transmit data from one component of a computer to another. |
bus topology | A physical arrangement of computers in a network where all the computers are attached along a single wire. |
byte | A group of 8 bits. Symbol 'B'. |
cache (memory) | Fast memory on the processor which is used to store recently / commonly used instructions. Level 1 cache is faster (but more expensive) than Level 2 cache. |
camel caps | A way of writing identifier names with no spaces and the first letter of the second and subsequent words are written in capitals. For instance, the identifier 'number of spokes' would be written 'numberOfSpokes' in camelCaps. |
captcha | Short for "Completely Automated Public Turing test to tell Computers and Humans Apart". |
cast / casting | See Type Casting |
central processing unit (cpu) | Fetches instructions from memory, decodes the instructions based on it's instruction set and executes them. Some instructions will require data to be fetched from memory as well. |
character | A symbol / letter / number / shape. |
character code | A binary code for a particular character in a character set. Humans often prefer them in denary. |
character encoding | Designing an encoding table for characters (letters, numbers, symbols). |
character set | A list of characters known to a computer system recognisable from their binary representation. |
check digit | A calculation performed on one number or sequence of characters to generate another number or character. Used to check for errors in the original sequence. |
cipher text | Message data after it has been encrypted. |
circular queue | When the array element with the largest possible index has been used, the next element to join the queue reuses the vacated location at the beginning of the array. |
class definition | A template that can be used to create objects of that class. |
client | A computer that uses the services provided by a server. |
client-server network | A network in which some computers (the clients), request services provided by other computers, the servers. |
clock (system) | Keeps the whole computer system synchronised. |
clock speed | The clock speed determines (and represents) the number of operations that a processor can perform per second. |
closed path/circuit | A sequence of edges that start and end at the same vertex and such that any two successive edges in the sequence share a vertex. |
closed source software | See 'Proprietary software' (because it means the same thing!) |
cloud storage | Magnetic or Solid State storage at a remote location accessed via the Internet (through a web browser or client software) |
code (encoding) | A value which is used to represent something else |
code (programming) | Another word for program / the act of programming |
collective noun | A word used to name a group of objects. |
colossus | Colossus was a set of computers developed by British codebreakers in the years 1943–1945 to help in the cryptanalysis of the Lorenz cipher. |
colour depth | Refers to the number of bits used to represent the colour of each individual pixel. |
column | Vertical |
comma separated value | See 'CSV' |
command line interface (cli) | Text based user interface based on the use of scripts, typed commands. Commonly used for servers or remote access. |
command prompt (computer system) | A series of characters which displays in a Command Line Interface (CLI) followed by a flashing cursor which tells the user that the computer system is waiting for input. |
command prompt (programming) | In programming, a message which tells the user what data to enter. |
comment | A line in a computer program which is ignored by the language translator and is only included for the benefit of programmers. |
communication protocol | A set of agreed signals, codes and rules to be used for data and information exchange between computers. |
comparison | Meaning to compare mathematically |
comparison operator | A mathematical operator used to compare two operands returning True or False. |
compiler | Language translator which converts source code to object code all in one go. Platform dependant. |
complexity of a problem | Taken to be the worst case complexity of the most efficient algorithm which solves the problem. |
component | Part of a whole system |
composite key | A combination of attributes that uniquely identifies a tuple / record. |
compression (data) | Reducing data storage requirements in order to reduce storage requirements or enable faster data transfer across a network. |
computational complexity | A measure of how economical an algorithm is with time and space. |
computational thinking | A way of thinking where a problem and a solution is expressed in such a way that a computer could be given the instructions to solve the problem. |
computer architecture | The way that a computer is 'designed' or 'built' to operate. There are two main types - von Neumann and Harvard. |
computer misuse act (1990) | Legislation used to safeguard data on computer systems from intentional theft (hackers / viruses). |
computer program | A list of unambiguous instructions for completing a computable task. |
computer system | Combination of hardware and software to produce a viable computational device |
concatenation | To join together as in string concatenation. |
conceptual model | A representation of the data requirements of an organisation constructed in a way that is independent of any software that is used to construct the database. |
condition-controlled loops | A looping/interation structure which continues while a condition or true, or until a condition is met. |
conditional branching | An alternative path through an algorithm which is determined by the outcome of a decision statement. |
conjunction | An alternative name for an AND operation. Given the symbol ⋀ (wedge) in Boolean expressions. |
constant | A named value which is not changed during the operation of a program. Used to 'define once, use many'. Mathematical constants include 'Pi' and 'e'. |
context | Puts the data into a valid human situation. |
control unit (cu) | Part of the CPU which controls the flow of instructions and data around the processor. It coordinates and carries out the Fetch, Decode, Execute cycle. |
copper (cable) | Most common electrical conductor. |
copyright designs and patents act (1988) | Legislation used to protect the Intellectual Property (IP) of authors of creative work. |
core / cores | A single processing element in a Central Processing Unit (CPU) or in a Graphics Processing Unit (GPU) |
count-controlled loop | A looping/iteration structure which executes a fixed number of times. |
creative commons licensing | A method used to grant copyright permission to creative work which allows the author to retain copyright whilst allowing others to copy, modify and distribute their work. |
cryptanalysis | A method of trying to find the plain text from the cipher text without the decryption key. |
cryptography | The science of designing cipher systems. |
csv | Stands for 'Comma Separated Value' - where each record in the file is stored on a separate line and each value in the record is separated by a comma. |
cultural | Issues caused by computer systems which affect what is culturally acceptable, i.e. political / economic, religious, changing working patterns, education, impact on the third world. |
current instruction register (cir) | Holds the current instruction being executed. Part of the CPU. |
cyber security | Processes, practices and technologies designed to protect networks, computers, programs and data from attack, damage or unauthorised use. |
cycle | A closed path in which all the edges are different and all the intermediate vertices are different. |
data | Raw facts and figures with no meaning. |
data inspection | Using monitoring software or hardware to 'listen' to network traffic in order to steal information. |
data interception | A method of evesdropping on data traffic in order to gather data. |
data model | A method of describing the data, it's structure, the way it is interrelated and the constraints that apply to it for a given system or organisation. |
data protection act (1998) | Legislation used to safeguard the collection of personal data by organisations. Replaced by the General Data Protection Regulation (2016). |
data security | Providing facilities to safeguard the data inside a computer system from accidental or deliberate loss, corruption or theft. |
data structure | A method of grouping data together in order to make it more straight forward to store, find, update and delete. Examples include lists, stacks, queues, graphs and trees. |
data transmission | Movement of data. |
data type | The class of data for example integer, decimal (float), string, character, boolean. Determines what types of processing can occur with the data. |
database | A persistent, organised store of data in electronic form. |
database management system | A software system that enables the definition, creation and maintenance of a database and which provides controlled access to this database. |
decidable | A problem which is able to be solved with a 'yes' or 'no' answer. |
decimal | Number with a fractional part. Often used instead of the term 'denary' to represent a base 10 number. |
decision problem | A problem that has a 'yes' or 'no' answer. |
decision statement | A statement with a True or False outcome |
decision symbol (flowchart) | A diamond shaped symbol on a flowchart which is designed to facilitate branching. |
declaration | To define a variable or subroutine. |
declare | Creating a variable (usually of a certain data type) before you use it to reserve space in memory. Some programming languages (like Python) don't require you to do this but it's always good practice anyway. |
decode (operation) | The instruction code is decoded using the processor instruction set to work out what it is |
decoding | Converting a code into raw data. |
decomposition | To break down into smaller, more manageable parts in order to make a problem easier to solve. (decompose, decomposing) |
decryption | Using an algorithm and a key to convert encrypted message data into its plain text equivalent. |
defensive design | Methods which are used to design software to pre-empt user behaviour and handle any potential errors before the program crashes. |
definite iteration | Knowing, before a loop is executed, how many times it will run. |
defragmentation software | Organises files / parts of files on an internal secondary storage device (hard disk drive) to maximise drive performance and free up unusable space. |
degree (of a vertex) | The number of neighbours for that vertex. |
degree of relationship | Between two entities, it refers to the number of entity occurrences of one entity which are associated with just one entity occurrence of the other and vice versa. |
delimited | Surrounded by or separated by. Define the boundaries. |
denary | Base 10. Number system containing 10 symbols (0 to 9). |
denary prefix | Kilo (k), Mega (M), Giga (G), Tera (T), Peta (P), Exa (E), Zetta (Z), Yotta (Y) |
denial of service attack | Using a host computer to repeatedly request data from a server causing the server to crash or 'deny service'. |
descending | Decreasing in value, either numerical or alphabetical. |
design (software) | The process of constructing algorithms, data structures and user interfaces for a software application. |
desk checking | Manually checking the operation of an algorithm with test data before running the program. |
deterministic finite state machine (fsm) | An FSM that has just one next state for each pair of state and input symbols. |
device driver | Software which translates signals from a hardware device into commands understood by the Operating system and vice versa. Usually written by the device manufacturer. |
diamond (flowchart) | A symbol used in a flowchart which contains a decision statement. Only ever have two outcomes, one for True and one for False. |
dictionary | A data structure which links a 'key' to a 'value'. |
digit type check | Making sure that the data entered into a computer program contains only numbers. |
dimensions, image | The width and height of a bitmap image |
directed graph | A diagram consisting of vertices, joined by directed edges. |
disjunction | An alternative name for an OR operation. Given the symbol ⋁ (vee) in Boolean expressions. |
display / monitor | An output device which produces a visual image. There are many different types including LED, LCD, OLED. |
display unit, visual (vdu) | An output device which displays text and images using pixels. |
distributed denial of service attack (ddos) | Using host computers or bots to repeatedly request data from a server causing the server to crash or 'deny service'. |
divide and conquer | A strategy to solve a problem where the problem is broken down into smaller and smaller parts which are easy to solve before combining the solutions back together to solve the initial problem. |
dlp projector | Digital Light Processing projector which uses a 'microelectromechanical' device which uses digital 'micromirrors' to produce an image. |
do ... while | An iteration structure which executes a loop body whilst a condition at the end of the loop is true. |
domain name system (dns) | Global network which runs on top of the Internet and converts the URL of a website into an IP address of a server so that we can request a web service via its human readable domain namewithout having to remember the individual server IP address. |
driver | A piece of software usually written by a hardware manufacture which allows the operating system to interact with the hardware. |
dynamic allocation | Memory space is only allocated when required at runtime. |
dynamic data structure | The memory taken up by the data structure varies at run time. |
dynamic web page content | Content that is generated when the web browser request is received. |
efficiency, algorithmic | A measure of the time or space required for an algorithm to run. |
email verification | Using email to check that a new user to a system has access to a specific email address. The assumption is that this ensures they are who they say they are as they, and only they, would have access to the email. |
embedded system | A computer system inside another electronic device with a specialised purpose (which it is designed to perform very well). |
encapsulation | Combining a record with the procedures and functions that manipulate it to form a new data type; a class in OOP. |
encode / encoding | Representing something with a code. |
encoding system | The rules / patterns used in an encoding table. |
encryption | Using an algorithm and a key to convert plain text into cipher text, a form that is not understandable without decrypting using the key. Used for safe storage or transmission of data. |
encryption (network) | Usually takes place in an 'end-to-end' fashion - using ciphers to encode and decode information so that no-one can evesdrop on the data traffic. |
end user | Another way of referring to the person using the computer system. |
entity | An object, person, event or thing of interest to an organisation and about which data are recorded. |
environmental | Effect that computer systems have on the environment, i.e. use of fossil fuels, mining and use of natural resources, disposal. |
equal to | Mathematically the same. |
erroneous test data | Testing data which is obviously wrong (i.e. wrong data type) or outside range. |
error checking | Checking data to find errors / mistakes. |
escape (character) | To force the next character to be ignored as a control character in a string |
ethernet | A local area networking communication protocol. |
ethical | Issues caused by computer systems which affect what is right and wrong from a societal perspective i.e. impact of robotics / AI, digital divide, privacy, online content. |
evaluation | A systematic assessment of whether something meets its objectives or specifications and how well it meets the latter in terms of effectiveness, usability, maintainability. |
exception block | A section of code containing 'try ... except' which is designed to trap unexpected errors. |
exception handling | A technique which tries to force a program to crash but traps the error before it displays on the screen. A way of trapping unexpected errors. |
execute (operation) | The instruction is carried out. This may involve reading / writing to main memory. |
exif | Common metadata standard used to store information about JPEG images. |
explorer's problem | The solution finds a route that traverses each road exactly once before returning to the starting point. |
exponential growth | Growth that has the form kn, e.g. 2n where k = 2 and n = 1, 2, 3, etc. |
exponential time algorithm | An algorithm whose execution time grows exponentially with input size. |
exponentiation | Raising one value to the power of another. |
expression | A part of a computer program which represents a value. May or may not contain variables. |
extended ascii | A character encoding system extending ASCII to 256 characters using 8 bits. Includes some non-western characters and drawing symbols as well. |
extreme data / test | Alternative name for 'boundary data / test'. |
failover | Process of automatically switching to a standby computer or network during system downtime. |
false | Not True / Incorrect. One of the two Boolean values. |
feasibility study | A study that investigates the potential of a new system. |
fetch (decode) execute cycle | The processor carries out these 3 (4) operations continually in a Von Neumann Architecture machine |
fetch (operation) | The next operation is fetched to the CPU from main memory |
fibre optic (cable) | Cable technology which uses light to transmit data |
field | One value from a record. A single property of an entity. |
file | A format in which data can be stored on secondary storage. |
file handle | An identifier which is used to interact with the operating system to gain access to a file. |
file handling | Using a programming language to read or write data to a file on secondary storage. Involves opening, reading, writing or appending to and finally closing a file. |
file management | A service provided by an operating system to enable the user to save, load and organise files and directories (folders). |
file transfer protocol (ftp) | A networking protocol used to transmit binary files between clients and a server. |
file, comma separated value (csv) | A file structure for storing records where the individual fields in each record are separated using commas. |
file, text | A file format which encodes the data using ASCII / Unicode. |
filesize | A downside of storing better quality images/audio is that this attribute will be larger. |
finite state automation | A finite state machine that produces no output whilst processing. It responds YES or NO when processing of the input data has finished. |
finite state machine (fsm) | A model of some types of computation that consists of a set of input rules and output conditions and a set of transitions between states. Generates an output as processing takes place. |
firewall | A computer application used on a network to prevent external users gaining unauthorised access to a computer system. |
firmware | Permanent software programmed into a read-only memory. |
first generation (programming) language. | Alternative name for 'machine code' - processor specific binary instructions. |
fixed program system | See Embedded System. |
flag | An alternative name for a Boolean variable which is used to indicate whether something has happened or not. A flag can either be True (indicating something has happened) or False (indicating something hasn't). |
flash memory | Solid state (no moving parts) memory. There are different types of flash for different purposes. Flash is semi-volatile, low power consumption, robust storage. |
flat file | Type of database which contains only one table. |
float | A number with a decimal part. |
float division | See 'Real / Float Division'. |
floating point notation | A real number represented by a sign, some significant digits (the mantissa) and a power of 2 (the exponent). |
flowchart / flow diagram | A visual way of representing an algorithm using special symbols and arrows. |
for ... next | An iteration structure which executes a loop body a fixed number of times. |
foreign key | An attribute in one table that is a primary key in another, related table. |
form | User interface tool which allows a user to enter or change data in a table. |
formatting | The process of wiping and preparing a disk drive for new use, carried out by software. |
freedom of information act (2000) | Legislation which allows citizens to request access to personal data from public bodies concerning their activities. |
frequence (sound) | The number of cycles per second of a vibrating object which generates a sound. Determines the pitch of the sound and is measured in Hertz (Hz). |
frequency / data pair | Used in run length encoding to compress data volume |
full backup | Making a copy of every file to a removable or offsite storage device. |
function | Functions in code work just like functions in mathematics: they are sections of code under a single name which always take at least one parameter (may be default and not actually specified), and always returns a result. |
gateway | A device used to connect networks using different protocols so that information can be successfully passed from one system to another. |
general case | The solution in terms of itself for a value n. |
gif | Common Internet file format used to display animated images. |
gigabyte (gb) | 1,000,000,000 (billion) bytes. 1000 megabytes. |
global variable | Variable that is available in all parts of a script. |
graph | A diagram consisting of vertices joined by edges. |
graphical user interface (gui) | User interface using Windows, Icons, Mouse, Pointer (WIMP). Commonly used for desktop / personal computing devices. |
graphics processing unit (gpu) | A processor specially designed for displaying and manipulating still and moving images. Massively parallel and used in many other data processing applications these days. |
greater than | Mathematically bigger in value |
greater than or equal to | Mathematically bigger than or equal in value |
hacking | The use of computers to access data without authorisation. |
halting problem | The unsolvable problem of writing a program that can tell whether a given program and its inputs will halt, without running the given program. |
halting state | A state that has no outgoing transition. |
handshaking protocol | The sending and receiving devices exchange signals to establish that they are each ready to initiate data transfer. |
hardware | Physical components of a computer |
harvard architecture | Computer architecture used in microcontrollers where the program and data are stored in separate memory. |
hash | To generate a hash value |
hash value | A value calculated from properties of an object which can be used to uniquely identify the object in a list. |
heuristic | An approach that uses experience to make informed guesses that assist in finding a polynomial time solution to an intractable algorithmic problem. The 'solution' may be non-optimal. |
hexadecimal | Base 16 number consisting of numbers 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E and F. |
high level (programming) language | A programming language which uses English like words, symbols and structure. |
hosting (web) | Storing the pages and supporting files for a website on a server. Due to ease of management, web hosting is commonly provided by third party companies although you can host websites yourself (either locally or publically with a fixed external IP address). |
hub | A device for connecting multiple network devices in one segment. |
huffman coding | A 'dictionary' encoding / compression technique |
huffman tree | The visual representation of Huffman coding |
human-computer interaction | The study, planning and design of what happens when a computer and human work together. |
hyperlink | An item on a web page that directs the user to another page when clicked. |
hypertext markup language (html) | The main markup language used for displaying web pages in a browser. |
hypertext transfer protocol (http) | A protocol (set of rules) which defines how to identify, request and transfer web pages over a network. |
hypertext transfer protocol secure (https) | A secure, end-to-end encrypted protocol (set of rules) which defines how to identify, request and transfer web pages over a network. |
identifier | A name which is used to reference a variable, constant, sub-program or a class. |
image | A visual artifact - can be either bitmap or vector |
immutable | Unable to be mutated or changed. |
imperative | Instructions which tell you how to complete a task. |
implementation (software) | Using software designs to produce a working solution. |
incremental backup | Making a copy of files which have changed since the last backup. Requires a full backup to be carried out first before incremental backup can be run. |
indefinite iteration | Not knowing, before a loop is executed, how many times it will run. |
indentiation | Tabbing' a line of code our from the left margin to give code structure. |
index / indices | Numbers which specify the position in a list or a string. |
information | Data + Structure + Context + Meaning |
inheritance | The relationship between two object types in which one is a kind of the other and shares some of its properties or behaviours. |
initialisation / initialise | Giving a variable an initial value so that it can be changed later in the program. |
input | Putting data into a computer system |
input / output symbol (flowchart) | A flowchart symbol which represents an input or an output from a system. |
input device | A device which is used to put data into a computer system. |
input sanitisation | "Cleaning" input values before sending them into the main program by removing unecessary or dangerous symbols or structures. |
input statement | A programming statement which is designed to ask the user for input. |
input validation | See Validation |
insertion sort | Each item in the unordered list is taken in turn and compared to the items in the ordered part of the list and placed in the correct position. |
instantiation | An object is defined based on a class. |
instruction set | A (small) list of commands that is built into a CPU. |
integer | A whole, positive or negative number. |
integer / quotient division | A type of division which only return the integer part of the result. The effect is always to round down. |
integrated development environment (ide) | Software tools used to write code. Often include features like code editors, syntax highlighting, run-time environment, breakpoint / debugging tools etc. |
internet | A global wide area network that is formed from the interconnection of many other networks and uses the TCP/IP protocol. |
internet layer (tcp/ip) | The layer which addresses and routes the packets across the network. |
internet message access protocol (imap) | A protocol used to retrieve email from a server, manage mailboxes and leave a copy on the server until its deletion is requested. |
internet protocol (ip) | Operates in the Internet layer. |
internet protocol addres | A 32 bit or 64 bit unique code within a network to identify the host. |
interpreter | Language translator which converts source code into object code one command at a time. Usually platform independent. |
intractable (problem) | A problem which is solvable but only with an algorithm which is in the exponential time complexity band at best. Intractable problems are solvable but only in a reasonable amount of time for small input sizes. |
invalid (test data) | Data which is outside the acceptable range or type. |
iso | The world's largest standards developing organisation. |
iteration / repetition | Repeating some code block until a specific goal is reached |
iterative testing | Testing each part of a program as it is developed. |
join | In databases, a way of linking two or more tables together in a query. |
jpeg | The most common compressed image format used today |
kernal | The lowest level of an operating system that controls the hardware |
key (encryption) | A secret word, phrase or collection of characters which is used alongside an algorithm to convert plain text into cipher text or vice versa. |
keyboard | An input device with keys. The computer maps the binary signals from the keyboard to characters from its character set. |
kilobyte (kb) | 1,000 (thousand) bytes |
labelled or weighted graph | A graph in which the edges are labelled or given a value called its weight. |
length (array / list) | The number of elements in an array / list |
length (string) | The number of characters (including spaces) contained in string |
length check | Ensuring that the data entered into a computer system is of an acceptable number of characters in length. |
length validation | Checking data is valid by inspecting its length. |
less than | A comparison operation represented by '<' |
less than or equal to | A comparision operation represented by '<=' |
linear queue | Elements join the queue at one end and leave the queue at the other. |
linear search | Starts at the beginning of the list and compares each element in turn with the required value until a match is found, or the end of the list is reached. Is the only option with an unordered list (though could be used for any list). |
linear time algorithm | An algorithm that executes in O(n) time. |
link layer (tcp/ip) | The layer where the networking hardware operates. |
list | A collection of elements with an inherent order. |
list slicing | Splitting up a list into sections using the indices of the positions in the list. |
local area network (lan) | A network, usually owned and managed by one organisation, located in a relatively small geographical area. |
local variable | Variable that is available only in the part of the script in which it is defined. |
logic circuit | A single or series of logic gates connected together which transforms inputs into outputs using logical operations. |
logic circuit diagram | A diagram which represents a logic circuit |
logic error | See Semantic/Logic error |
logical operator | See Boolean Operator |
login | Identifying yourself to a system with a username and gaining access by providing a secret 'key' / 'password'. |
loop body | The section of code inside a loop. |
loop, nested | One loop (inner loop) inside another loop (outer loop) |
lossless compression | A compression technique which guarantees no data loss. Used for files / documents. |
lossy compression | A compression technique which 'doesn't mind' losing information. Used mainly for media such as sound, images and video. |
low level programming language | A programming language which uses either mnenomics or binary. |
mac address filtering | Either a whitelist of allowed MAC addresses (devices) which are allowed to connect to a network or a blacklist of disallowed MAC addresses (devices) which are not allowed to connect to a network. |
machine code | Binary representation of processor dependent instruction set. The lowest level programming language. Used to write device drivers and other low level software by really clever programmers who like '0's and '1's. |
magnetic storage | Uses the magnetic properties of metals to store binary data. Example : Hard disk drive, magnetic tape, floppy disk. Non-volatile. |
main memory | Memory on the motherboard which is larger in size than Cache but which is much slower. Known as primary storage. Main memory is volatile and loses its contents when then power is removed. |
maintainability of software | How easy it is to fix bugs, change parameters and respond to changing requirements. |
maintenance | Fixing bugs, changing parameters and responding to changing requirements. |
malicious code | Software which is written to circumvent security protection like Viruses, Trojans and Worms. |
malware | An umbrella term used to refer to a variety of hostile or intrusive software |
maximum length check | Ensuring that the data entered into a computer system is less than or equal to a maximum required length. |
mealy machine | A finite state machine (FSM)that determines its outputs from the present state and from the inputs. |
meaning | Is implied from the data, the structure and the context. |
media access control (mac) address | A unique hardware address which is used to identify a networking device. |
megabyte (mb) | 1,000,000 (million) bytes. 1000 kilobytes. |
memory | A device in a computer which is used to store programs which are currently being executed. Sometimes known as 'RAM'. |
memory address register (mar) | Holds the current value of the Program Counter (PC) which gives the memory address of the next instruction / data to be fetched into the Memory Data Register (MDR). Part of the CPU. |
memory data register (mdr) | Holds the data which is currently being addressed by the Memory Address Register (MAR). Sometimes known as the Memory Buffer Register (MBR). Part of the CPU. |
memory management | Software which automatically handles the changing memory requirements of programs |
merge sort | An unordered list of 'n' items is split into 'n' individual lists and then combined into a ordered list (two lists at a time). Merge sort is classically implemented using recursion. |
mesh network/topology | Devices connected together through multiple networking devices (switches / hubs) such that there is more than one route between devices. |
metadata | Data describing other data. Often found in image and sound files. |
microcontroller | A compact integrated circuit designed to control the operation of an embedded system. |
minimum length check | Ensuring that the data entered into a computer system is equal to or greater than a minimum required length. |
misconfigured access rights | An error in the access rights granted to a person or a group of people which allow them access to data that they shouldn't have access to. |
model | An abstraction of an entity in the real world or in the problem that enables an automated solution. The abstraction is a representation of the problem that leaves out unnecessary detail. |
modem | Device which converts between digital and analogue signals, e.g. telephone line to computer |
module | Modules are extensions that can be imported into Python to extend its capabilities. For example, several useful mathematical functions are available in the math module. |
modulo arithmetic / division | Finding the remainder after an integer division. For instance, 13 MOD 3 = 1 because 3 'goes into' 13 with 1 left over. Sometimes called 'clock arithmetic'. Used for example, to determine whether a number is odd or even. |
monochrome | Image type consisting of various shades of a single colour |
motherboard | Central printed circuit board that holds the different computer components |
mp3 | The most common compressed audio format used today |
mpeg | Family of file standards used to store compressed video |
multicore processor | A processor made up from more than on processing core |
multiplication | A mathematical operation. |
multitasking / multitask | A device which can execute / carry out more than one task simultaneously by allocating each task a 'slice' of processing time. |
mutable / mutability | The property of being able to be mutated or changed. |
nand gate | A logical electronic device which will output False if both inputs are True, False otherwise. Inverts the logic of an AND gate. |
natural language interface | Uses speech as input and output. |
negation | Alternative name for a NOT operation. Given the symbol ¬ (not) in Boolean expressions. |
neighbours | Two vertices are neighbours if they are connected by an edge. |
nesting | One control block (selection / iteration) inside another one. |
network (computer) | A physical connection for data transfer between computer systems. |
network hub | Simple networking hardware which works in the Data Link layer of the TCP/IP stack using MAC addresses. Not aware of which devices are connected to it and broadcast traffic to all connected machines. |
network interface card (nic) | Circuit board installed into a computer to allow it to connect to networks |
network security | Providing facilities to safeguard network access to authorised persons to prevent accidental or deliberate loss, corruption or theft of data. |
network switch | Intelligent networking hardware which works in the Data Link layer of the TCP/IP stack using MAC addresses. Aware of different devices which are connected to it. Contains from 4 to 32 networking ports. |
non-computable | An algorithmic problem that admits no algorithm. |
non-embedded (computer system) | A computer system which 'stands alone'. |
non-volatile (storage) | Storage which retains it contents when the power is switched off. |
nor gate | A logical electronic device which will output False if either, or both, input is True. Inverts the logic of an OR gate. |
normal test data | Data which lies on the inner boundary of a condition or within an acceptable range. |
normalisation | A technique used to produce a normalised set of entities in a database. |
normalised entities | A set of entities that contain no redundant data. |
not equal to | Mathematically not equal. |
not gate | An invertor. The output will be the binary inverse of the input. |
noun | A word used to name an object. |
null pointer | A pointer that does not point to anything, usually represented by Ø or –1. |
nybble / nibble | Four bits / half a byte. |
object | An instance of a class. |
off the shelf | Software that is mass produced for a wide range of users |
offline (storage) | Secondary storage which can be removed from a computer system such as a removable disk. |
one dimensional | Having a single dimension. Often used for lists. |
online (storage) | Secondary storage which is permanently attached to a computer system and is always accessible whilst the computer is switched on |
open source software | Software which users can download, modify and distribute for free. Support is provided by the developer and the wider community. |
open standards | A standard that is freely available for public use |
operating system (os) | Software which controls the interface between the computer hardware and the user. It is used to manage the hardware resources in order to provide for an orderly and controlled allocation of the processors, memories and I/O devices among the various programs competing for them and manage the storage of data. It hides the complexities of the hardware from the user. |
operator | A symbol or function which represents a mathematical or logical operation. Usually (but no always) found between two operands. |
optical storage | Secondary storage which uses light (laser) to read from and write to the storage media. Examples CD/R, CD/RW, DVD/R, DVD/RW, Bluray. |
optionality | The condition of being or not being required |
or gate | A logic gate with at least two inputs which generates a True output if at least one input is True. |
order of complexity | Of a problem is its big O complexity. |
ordered list | A list of values in order |
output | Data flowing out of a computer system |
overclock (processor) | Forcing a processor to execute more operations that it was designed to do in a given time period. |
overflow (error) | The result of a calculation is too large to be represented using the available number of bits. |
packet | Formatted unit of data sent across networks |
packet switching | Data transmission methodology which splits data into small 'packets' which are suitably labelled with source and destination. Each packet takes it's own route to the destination and are assembled back into the correct order on arrival. |
parallel data transmission | Multiple bits are sent down several wires simultaneously. |
parameter / arguments | Values passed into a subroutine. |
password | Secret string used to authenticate a user to a system. |
File format designed for cross-platform document creation and distribution | |
peer-to-peer network | A network that has no dedicated servers. All computers are of equal status and can both share resources themselves and use resources from other computers, ie they are peers. |
penetration testing | Process of attempting to gain access to resources without knowledge of usernames, passwords and other normal means of access. |
peripheral | A device which is part of a computer system but the hardware is located outside the computer system and is necessarily integral to the computer system operating. |
peripheral managment | A function performed by the operating system which allows it to access and manage peripheral devices. |
persistent data store | A store of data which is non-volatile. |
personal area network (pan) | A short range connection between computer systems, usually using Bluetooth. |
petabyte (pb) | 1,000,000,000,000,000 bytes. 1000 terabytes. |
pharming (social engineering) | Pharming is a cyberattack intended to redirect a website's traffic to another, fake site. |
phishing (social engineering) | Phishing is a technique of fraudulently obtaining private information, often using email or SMS. |
physical security | Preventing access to a computer system by locking doors and windows and requiring identification to access. |
physiological (biometrics) | Actual physical characteristics of humans which can be used to authenticate / identify them. |
piracy | Unauthorised copying of computer software/media |
pitch (sound) | The audible note which is generated by a vibrating object. |
pixel | Picture Element - the smallest part / single point in a bitmap image |
plagiarism | The practice of taking someone else's work to claim as your own |
plain text | Message data before it is encrypted. |
pointer | A variable that contains a memory address. The pointer 'points' to the memory location with that address. |
pointer type | A variable of pointer type that stores an address of a data value. |
polymorphism | Giving an action one name that is shared up and down a class hierarchy. Each class in the hierarchy implements the action in a way appropriate to itself. |
polynomial growth | Growth that has the form nk, e.g. n3 where k = 3 and n = 1, 2, 3, etc. |
polynomial time algorithm | An algorithm whose execution time grows as a polynomial of input size. |
position | Starts at index 0 |
post office protocol version 3 (pop3) | An email protocol which is used to download email messages from a server and delete them from the server. |
precision | The maximum number of significant digits that can be represented. |
presence check (validation) | Checking data is valid by making sure it is not blank. |
primary key | An attribute or set of attributes which uniquely identifies a tuple. |
primary storage | Referring to the computers Random Access Memory where the programs and data which are executing is stored. |
principle of universality | A universal machine is a machine capable of simulating any other machine. |
printer | An output device which produces document hard copies. There are many types of printer including laser, inkjet, dot matrix, line, plotter, thermal. |
priority queue | Each element of a priority queue has an associated priority. |
privacy | Issues which affect the sharing of personal data, i.e. CCTV, snooping, voice control, GPS tracking. |
problem solving | A formal way of using computational thinking skills to solve a problem |
procedure | Type of subroutine which may take parameters but returns no value. Used to structure code. |
process symbol (flowchart) | A flowchart symbol which represents an assignment, mathematical or logical statement. |
processing | The act of calculation / manipulation of data. |
processor | A central device in a computer system which controls the operation of the computer and provides tools to perform calculations. See CPU. |
program / language translator | Software which converts a high level language into a low level language |
program counter (pc) | Holds the memory address of the next instruction / data to be fetched. Part of the CPU. |
programmer | Someone who writes computer programs |
programming construct | Blanket terminology for sequencing, selection and iteration. |
programming language | A machine or human level language which allows programmers to communicate an algorithm to a machine in a formal way. |
prompt (programming) | A series of characters followed by a flashing cursor which tells the user that the computer system is waiting for input. |
proprietary software | Users can download software (paid or free) but cannot modify or distribute. Support provided by developer. |
protocol (network) | An agreed set of rules (physical or software) for communication. |
prototype | An early or trial working version of the proposed system developed to test possible solutions. |
pseudo-code | Non-programming language specific way of communicating an algorithm. May contain symbols. |
pseudo-random number | A series of numbers generated by computer with apparent randomness. |
python | A programming language invented to teach programming but now widely used in education, industry and research. |
query | A request for data from a database. |
queue | A first-in-first-out (FIFO) abstract data type. |
quotation marks | Characters used to delimit strings. |
random access memory (ram) | Main memory / primary memory. Each location can be accessed immediately. Sometimes called immediate access store. RAM is volatile and loses its contents when the power is removed. Temporary store for programs currently running and data currently in use. |
random number | A number (usually between 0 and 1) generated using a random number generator. Used to simulate real life events. |
random number generator | Functions built into a programming language which allow it to generate random numbers. Pure RNGs usually generate numbers between 0 and 1. |
random number generator, pseudo | Computers use a 'seed' to generate the random number which is normally based on the system time. Depending on the size of the seed, the random number sequence can repeat and hence is not truly random. |
range check | Ensuring that the data entered into a ocmputer system is within a valid numerical range. |
range length check | Ensuring that the data entered into a computer system is no less than the minimum length and no more than the maximumlength. |
range validation | Checking data is valid and within a set numerical range. |
raster | Graphics format consisting of a matrix of dots |
read (file handling) | To retrieve data from a file. |
read only memory (rom) | Non volatile memory which does not lose its contents when the power is switchedoff. Stores instructions for starting up the computer called a bootloader. |
real / float | Alterative term for decimal - a number with a decimal part. |
real / float division | A type of division which always returns a decimal value. |
reassignment | Overwriting a value in memory with another value whilst retaining the same identifier. The original value is lost. |
record | A group of related data tied to a single key value / A collection of attributes which describe an instance of an entity. All the data in one item in a database. |
recursion | An subprogram which calls itself. |
recursive definition | One that is defined in terms of itself. |
recursive routine | A routine defined in terms of itself. |
redundancy | Name given to the undesirable effect of having duplicate data in a database |
reference language | A formal, non-programming language specific method of writing algorithms. See Pseudocode. |
referential integrity | If a value appears in a foreign key in one table it must also appear in the primary key in another table. |
register | Fast access part of the processor that stores data being used by the CPU |
regular expression | A notation for defining all the valid strings of a formal language or a special text string for describing a search pattern. |
regular language | Any language that a finite state machine (FSM) will accept. |
relation | A set of attributes and tuples, modelling an entity (a table). |
relational database | A collection of two or more tables which can be linked together by means of primary and foreign keys. |
relationship | An association or link between two entities. |
relative error | The absolute error divided by the actual numbers. |
remote | Something which is not where you are, in another building or another country perhaps. |
removable media | Secondary storage media that can be removed from a computer system like Flash memory, CDs and DVDs |
repeat ... until | An iteration structure which executes a loop body until a condition at the end of the loop is true. |
repl | Short for 'Read, Evaluate, Print, Loop' - an immediate console used to interact with a programming language interpreter. |
report | Database management tool used to present information to the user |
resolution (image) | The number of pixels displayed per unit length |
return value | A value returned from a function to the calling routine. |
ring network | Topology in which messages travel in one direction through a chain of computers |
rng | See 'Random Number Generator' |
robust (code) | The program will function reliably and not crash or go into infinite loops, even with incorrect inputs or unpredictable values. |
rooted tree | A tree in which one vertex has been designated as the root and every edge is directed away from the root. |
router | A device that receives packets or from one host (computer) or router and uses the destination IP address that they contain to pass them correctly formatted, to another host (computer) or router. Works in the Internet (IP) / Network layer of the TCP/IP Stack. |
row | Horizontal |
rubber duck | A plastic duck - programmers use the term when they are explaining code out loud - instead of speaking to human, the programmer will talk to a duck on his / her desk. The vocalisation of the problem often yields the solution. |
run length encoding (rle) | A compression technique which utilises repetition of data to reduce data volume |
runtime environment | Software feature which allows code to be run without being compiled |
runtime error | A error caused by an unexpected occurance during the operation of a program i.e. division by zero, file not found, incorrect data types etc. |
sample | A single measurement of wave amplitude at a point in time |
sampling | The act of measuring the height of a wave at a given interval |
sampling rate | The frequency of sampling of a sound wave or the number of samples taken per second, measured in Hertz (Hz). |
sampling resolution | The number of bits used to store a single analogue data sample. Also known as 'sample depth'. |
script (program) | A computer program which is stored in a text file and can be saved, loaded and executed by a programming language interpreter. |
search | To look for a value ina collection of values. |
search, binary | A search technique used to find a value in a sorted (in-order) list by successive halving of the original list. Runs in logarithmic time complexity. |
search, linear | A search technique mainly used to search for values in an un-sorted list by inspecting each value in turn until the value sought is either found or the list exhausted. Runs in linear time complexity. |
second generation (programming) language | Alternative name for 'assembly code' - processor specific mnemonic based language which is translated into machine code by an assembler. |
secondary storage | Permanent storage of instructions (operating system and programs) and data not currently in use by the processor. Read / write and non-volatile. |
selection / choice / decision | Means making choices on the direction of program flow depending on the outcome of a decision statement. |
selection statement | An 'if' statement and possibly multiple 'else if' blocks and an optional 'else' block |
selection, nested | One selection statement inside another. |
semantic / logic error | An error in the logic of a calculation which gives the wrong answer. You can only find logic errors by manually working out what the answer should be. |
sensor | A device which gathers data from the environment without human interaction. |
sequence | A programming construct where a set of instructions is executed in order |
sequence check | Ensuring that the data entered into a computer system is from a list of acceptable values. |
sequential file | A database file where a series of items is stored in a logical order |
serial data transmission | Single bits are sent one after another along a single wire. |
serial file | A database file where Items are stored as a series, one after another |
server | A computer that provides shared resources to network users or clients. |
shell (computer system) | An alternative name for the Command Line Interface. |
shell (programming) | An alternative name for the interface of an interpreter. |
shouldering (social engineering) | Shouldering is observing a person's private information over their shoulder eg cashpoint machine PIN numbers. Sometimes known as 'shoulder surfing' |
significant digits | Those digits which carry meaning contributing to the accuracy of a number. This includes all digits except leading and trailing zeros where they serve merely as placeholders to indicate the scale of the number. |
simple graph | A graph without multiple edges in which each edge connects to two different vertices. |
simple mail transfer protocol (smtp) | Protocol used to send email to an email server for relaying to another email address. |
social engineering | Using the inherent weakness of human character to gain access to data through a computer system. |
social network | Online service that allows easier communication between people, such as Facebook |
software | Programs which 'run' on a computer system |
software as a service (saas) | A model of software deployment where an application is hosted as a service provided to customers across the internet. |
software updates | Fixes and features which are added to software and operating systems after the general release of the software. Sometimes called 'patches' and often used to fix security vulnerabilities. |
solid state (storage) | Non-volatile storage based on solid state memory circuits using transistors. Example : Flash drives, memory cards, solid state drives (SSD). Used in digital cameras, phones, tablets and high end portable computers. |
sort | To put in order |
sorting algorithm | An algorithm designed to sort a sequence into order. |
sound | An aural artifact - can be sampled or generated |
space-complexity (of an algorithm) | How much memory an algorithm needs. |
speaker / headphone | An output device which converts analogue electrical signals into audio. Devices include speakers and headphones. |
spyware | Malicious software which silently installs on a computer system and tracks all the things you do, websites you visit and key-presses you make. |
sql | See 'Structured Query Language' |
sql injection | Typing special SQL commands in text entry fields on a website can lead to malicious SQL commands being run on a database in order to reveal usernames and passwords. |
stack | A last-in-first-out (LIFO) abstract data type. |
stack frame | The locations in the stack area used to store the values referring to one invocation of a routine. |
stakeholders | Individuals or organisations affected by technology, i.e. companies / company owners, employees, customers, students, teachers, suppliers, local communities. |
stand-alone computer | A computer not networked, requiring its own printer and other peripherals plus its own installation of application software. |
star topology | Devices are connected with wired or wireless connections to a central switch / hub. |
start / stop symbol (flowchart) | A flowchart symbol used at the start and end of flowchart representation of an algorithm. |
state transition diagram | A directed graph whose nodes represent the states. An edge leading from state s to state t is called a transition and is labelled with a symbolic code, eg a | b. The a part of the label is called the transition’s trigger and denotes the input symbol. The b part, which is optional, denotes the output symbol. |
statement | A statement is an instruction that tells the computer to do something, perform an operation. |
static data structure | The memory required to store the data structure is declared before run time. |
store / storage | A computer system can save data for use later on |
string | A sequence of characters delimited with quotation marks. |
structure | Presents the data in a real world form |
structured english | A way of writing out algorithms using english words and phrases but no symbols or signs. |
structured programming | A style of programming which involves breaking down a problem into smaller parts, solving each one and then building the collection back into a suitable solution. |
structured query language (sql) | A special language used to query, insert, delete and update data in a database. |
sub-problem | A small part of a larger problem. |
subprocess symbol (flowchart) | A symbol on a flowchart which represents a more complex process. Often used to split up an algorithm into separate parts using decomposition. |
subroutine | A small part of a program referred to by a name. Subroutines can either be functions or procedures. |
substring | Part of a string either referred to by the starting index position and the length or by the starting and ending index value. |
subtraction | Mathematical subtraction of one operand from another. |
switch | Device that connects multiple network devices and multiple segments |
syntax | The 'grammar' of a computer programming language. |
syntax error | An error in the grammar rules of a software language - caused when the code is typed incorrectly. |
system software | A platform that runs programs and manages the operation of a computer system. |
table | A set of data elements organised in fields and records |
tcp/ip stack | A layered software stack which provides error free communication (TCP) using packets via the Internet Protocol (IP). |
terabyte (tb) | 1,000,000,000,000 (trillion) bytes. 1000 gigabytes. |
terminal testing | Testing the whole program when it is completed. |
test (software) | A specific set of input values used to check whether an algorithm works correctly. |
testing (software) | Using specific values for inputs to ensure that a program functions correctly. Used in conjunction with selection and iteration statements. |
thin-client network | A network where all processing takes place in a central server; the clients are dumb terminals with little or no processing tower or local hard disk storage. |
time-complexity (of an algorithm) | How fast an algorithm runs, expressed as a function of the number of input values. |
topology (network) | The physical layout of a computer network |
trace table | A way of manually following an algorithm by writing down the values of variables during the algorithm. |
tractable | A problem that has a reasonable (polynomial) time solution as the size of the input increases. |
transition function | Maps (input symbol, current state) to (output symbol, next state, direction of movement). |
transition table | Tabulates the mappings (input symbol, current state) to (output symbol, next state, direction of movement) for all inputs. |
translation, language | The conversion of high level language into a low level language |
translator | Name for any utility which converts one programming language into another |
transmission control protocol (tcp) | A connection oriented communication protocol which operates in the transport layer. Used for data streaming. |
transport layer (tcp/ip) | The layer where communication rules are established and data packets are managed. |
traveller’s problem | The solution finds a route that visits each city exactly once before returning to the starting point. |
tree | A connected undirected graph with no cycles. |
trojan | A program that hides in or masquerades as desirable software, such as utility or a game, but attacks computers it infects. |
true | Not False / Correct. One of the two Boolean values. |
truth table | A table which is used to represent the operation of a logical electronic system or a logical expression using binary 1 and 0 to represent True and False. |
tuple | A set of attribute values in a database. |
turing machine (tm) | A formal model of computation that consists of a finite state machine (FSM) that controls one or more tapes, where at least one tape is of unbounded length (ie infinitely long). |
two dimensional | Having two dimensions. Often used for tables. |
type | The 'kind' of data being handled. |
type casting | Temporarily converting a value in one data type to a value in another one during an expression. The original value maintains its original data type. |
type check | Making sure that data entered into a computer system is of the correct data type. |
type conversion | Permanently converting a value from one data type into another. |
uncomressed | .WAV and .AIFF are file extensions for this category of audio file |
undecidable | Describes a decision-type algorithmic problem that is non-computable. |
underflow | The result of a calculation is too small to be represented using the available number of bits. |
unicode | International character encoding system. Represents a wide range of character sets using 8, 16 or 32 bits. Most common format is UTF-8 and UTF-16. |
unicode code charts | Character sets are available from the Unicode website |
universal tm, utm | A universal Turing machine can simulate any other Turing machine. A UTM, U, is an interpreter that reads the description |
unordered list | A list of values not in order. |
usability | The ease with which a user interface can be used by its intended audience to achieve defined goals. |
user | Someone who uses computer programs |
user account | A service provided by an operating system to manage the individuals settings, documents and permissions. |
user datagram protocol (udp) | A connectionless communication protocol which operates in the transport layer. Used for media (sound and video) streaming. |
user defined function | A section of code which is invoked using a name. UDFs can take parameters and return values. |
user interface | Blanket term to cover all methods of interaction between a computer system and its environment. |
username | Uniquely identifies a user of a computer system |
utility software | Software which provides a special service to a computer or a computer user to make the computer run more efficiently, i.e. compression software, anti-virus software. |
valid | Data that is within the required range, as expected by the program |
validation | Make sure that the data input into a computer system is in the correct format or data type. |
variable | A variable is a temporary value held in RAM and assigned a name / identifier. The value of the variable can change during program execution. |
vector (data structure) | Alternative name for 'array'. |
vector (graphics) | An element of an image which is represented using a mathematical formulae. |
verification | Ensuring the data being entered into a computer system matches the original source of the data. |
virtual machine | The apparent machine that the operating system presents to the user, achieved by hiding the complexities of the hardware behind layers of operating system software. |
virtual memory | Part of the hard disk which is used to replicate RAM. When the RAM gets full, the operating system'pages' sections of RAM into Virtual memory to allow more applications to be loaded into physical RAM |
virtual network | A software based logical network which runs on top of a physical network. Allows the 'network' to be expanded and managed more easily than making changes to a physical network. |
virus (computer) | A small program attached to another program or data file. It replicates itself by attaching itself to other programs. |
volatile (storage) | Storage which loses its contents when the power is switched off. |
volumetrics | Measurement or assessment of the volume of data that a system will be required to process and store. |
von neumann architecture | Term used to describe a computer which stores programs and instructions together in memory, executing programs using the Fetch Decode Execute cycle. |
voxel | A '3D' pixel (volumetric pixel) used to represent elements of 3D characters in games like Minecraft. |
weak / default passwords | Using passwords which are easy to guess or which are the system defaults is a security risk. |
web 2.0 | Software that becomes a service that is accessed over the Internet. |
web server extension | A program written in native code, ie an executable or a script that is interpreted by an interpreter running on the web server that extends the functionality of the web server and allows it to generate content at the time of the HTTP request. |
web services | Self-contained, modular applications that can be described, published, located and invoked over a network, generally the web. |
while ... do | An iteration structure which executes a loop body whilst a condition at the start of the loop is true. |
white-box penetration testing | A type of penetration testing used to simulate a 'malicious insider' with knowledge and possibly basic credentials for the target system. |
wide area network (wan) | A network spread over a wide geographical area. Often owned and managed by many organisations. The most common WAN is the Internet. |
wifi | Trademarked IEEE 802.11 technologies that support wireless networking of home and business networks. Requires a wireless access point. Data is transmitted between devices on specific frequencies (channels). |
wildcard character | A character used to represent other characters or groups of characters. |
wimp | Acronym standing for Windows, Icons, Menus, Pointer referring to the features provided by a graphical user interface. |
wired (network) | A network where the computer systems are connected by physical wires. |
wireless (network) | A network where the computer systems are connected by wireless (radio) waves |
wireless access point (wap) | Hardware used to connect wireless enabled device to a local area network. |
word | A group of (usually) two or more bytes. Named by the number of bits it contains, e.g. 16 bit word, 32 bit word. |
word processing | The production of typewritten documents using computerised systems. |
worm | A small program that exploits a network security weakness (security hole) to replicate itself through computer networks. |
worst case | When running an algorithm when it needs to perform the maximum number of operations possible. |
write (file handling) | To record data in a file. |
xnor gate | A logical electronic device which will output False if either, but not both, of the inputs are True. Inverts the logic of an XOR gate. |
xor gate | A logical electronic device which will output True if either, but not both, of the inputs are True. Short for eXclusive OR gate. |
xpath | A query language for selecting nodes from an XML document. |
Last modified: September 22nd, 2022