A field, or a set of fields, whose value uniquely identifies each record in a table; it can never be empty (null) and no two records may share it.
83 of the Computer Science glossary’s terms, each with the part of the syllabus where you first meet it.
A small unit of data sent across a network, made up of a header holding control information and a payload holding part of the data being transmitted.
A firewall technique that examines each packet's header fields, such as IP addresses, protocol and port, on their own and compares them with the rules, without considering earlier packets or the packet's contents.
The control information at the start of a packet, such as the source and destination addresses, sequence number and time to live, that lets the network deliver the packet and the receiver put the data back together.
A method of sending data across a network in which the data is split into packets that are each routed independently, possibly by different paths, and reassembled in order at the destination.
Extra pixels, usually zeros, added around the border of a CNN layer's input so that kernels can be applied at the edges and the output keeps its size.
A memory management technique that divides a process's memory into fixed-size pages and physical memory into frames of the same size, so that any page can be placed in any free frame and pages can be moved between RAM and secondary storage.
Carrying out several computations at the same time, using more than one processing unit, so that a task finishes sooner or more tasks finish in the same time.
A variable named in a subprogram's definition that receives a value when the subprogram is called, and exists only while the subprogram runs.
A database query whose SQL text is fixed in advance with placeholders, and whose input values are sent to the database separately as data, so that the input can never change the structure of the query.
A node that has one or more nodes directly below it, linked to it by edges.
Analysing a string to break it into its component parts, such as the fields of a record, and converting them into data the program can use.
A functional dependency in which a non-key field depends on only part of a composite primary key rather than on the whole key.
In quicksort, the step that rearranges part of a list so that all elements smaller than the pivot come before it and all others come after it, leaving the pivot in its final sorted position.
One complete traversal of the unsorted part of a list by a sorting algorithm, after which at least one more element is in its final position.
A way of passing arguments in which the subprogram receives a copy of each argument's value, so assigning a new value to a parameter does not change the caller's variable.
A set of rules an organisation enforces for passwords, such as minimum length, a ban on common or previously breached passwords, no reuse across systems and a limit on failed login attempts.
An update released by a software developer to fix a bug or security vulnerability in a program that is already in use.
Identifying similarities or recurring elements within a problem, between problems, or in data, so that solutions can be reused, generalised or used to make predictions.
The part of a packet that carries the actual data being transmitted, as opposed to the control information in the header.
The stack operation that returns the item at the top of a stack without removing it.
A networking model in which each computer, called a peer, acts as both client and server, sharing resources directly with other peers without depending on a central server.
An authorised, simulated attack on an organisation's systems, carried out by security professionals to find vulnerabilities before real attackers do.
The simplest artificial neural network, a single neuron that calculates a weighted sum of its inputs plus a bias and applies a step activation function to output one of two classes.
Storage that keeps data after the program that created it has ended and after the power is switched off.
A short-range network, typically a few metres across, that connects the devices of one person.
The embedding of artificial intelligence throughout everyday objects, services and institutions, such as phones, homes, cars, workplaces and public services, so that people interact with AI systems constantly, often without noticing.
A social-engineering attack that uses fraudulent messages, usually emails or text messages, that appear to come from a trusted source, in order to trick the recipient into revealing information, sending money or installing malware.
A description of how a particular DBMS stores the data: the files and their organisation, the indexes, the exact data types and sizes, and where data is placed on storage devices.
A situation in which the next instruction in a pipeline cannot proceed in the following clock cycle, either because it needs a result that an earlier instruction has not yet written back (a data hazard) or because a branch means the wrong instructions have been fetched (a control hazard).
A technique in which the stages of instruction processing are carried out by separate parts of the processor, so that several instructions are processed at once, each at a different stage.
The element chosen in each step of quicksort against which every other element in the current part of the list is compared.
The smallest single-coloured element of a bitmap image or display; its name is short for "picture element".
The value of a digit's position in a number, equal to the base raised to the power of the position, counting from 0 at the right.
Presenting the words, ideas, code, images or other work of another person or source as your own, without acknowledging where they came from.
Data in its original, readable form, before encryption or after decryption.
A cloud service model in which the provider supplies and manages a complete platform (servers, operating system, runtime and development tools), and the customer only develops, deploys and manages their own applications and data.
A value that refers to the location of another item of data in memory; in a linked structure, a reference held in one node that leads to another node.
The strategy an agent follows, which maps each state to the action (or the probabilities of the actions) it will take.
A method of handling input and output in which the CPU repeatedly checks the status of a device, at regular intervals or in a continuous loop, to find out whether it needs attention.
The ability of one method name or operator to be used with objects of different types, each type carrying out the operation in its own way.
A CNN layer that reduces the width and height of each feature map by replacing each small window of values with a single summary value.
The stack operation that removes the item at the top of a stack and returns it.
In a genetic algorithm, the set of candidate solutions (chromosomes) that exist at one stage of the search.
A 16-bit number from 0 to 65,535 that identifies a particular program or service on a host, so that the transport protocol can deliver incoming data to it.
A form of NAT in which many private devices share one public IP address, each connection being given a different public port number so that replies can be told apart.
The ease with which software can be moved to a different hardware platform or operating system and still run correctly, with little or no change.
A conditional loop that tests its condition after each pass, so the body always runs at least once.
A traversal of a binary tree that visits the left subtree, then the right subtree, then the node itself, applied recursively at every node.
Public-key cryptographic algorithms designed to remain secure against attacks by both classical and quantum computers, intended to replace algorithms such as RSA that a large quantum computer could break.
A conditional loop that tests its condition before each pass, so the body runs zero times if the condition is false at the start.
Scheduling in which the operating system can interrupt a running process and move it back to the ready queue, so that another process can use the CPU; in non-pre-emptive scheduling a process keeps the CPU until it finishes or waits.
A traversal of a binary tree that visits the node itself first, then its left subtree, then its right subtree, applied recursively at every node.
A model that has already been trained on a large, general dataset and is made available for reuse as the starting point for other tasks.
The proportion of a classifier's positive predictions that are actually positive: TP divided by (TP + FP).
Handling missing data by training a model on the complete records to predict the missing feature from the other features, then using its predictions to fill the gaps.
A field, or a set of fields, whose value uniquely identifies each record in a table; it can never be empty (null) and no two records may share it.
Memory that the CPU can access directly, holding the instructions and data in current use; it includes registers, cache, RAM and ROM.
A basic data type built into a programming language that holds a single simple value and is stored directly, not as an object.
A debugging technique in which temporary output statements are added to a program to display the values of variables, or which parts of the code run, while it executes.
A situation in which a high-priority process is forced to wait for lower-priority processes, because a low-priority process holds a resource it needs and is itself kept from running by a medium-priority process.
A scheduling algorithm that always gives the CPU to the ready process with the highest priority; it can be non-pre-emptive, or pre-emptive, so that a newly arrived process with a higher priority takes the CPU from the running process.
The right of individuals to control the collection, use and sharing of information about themselves, and to be free from unwanted observation.
An IP address from a range reserved for use inside private networks, which is not routed on the public internet and can be reused by any number of separate networks.
The key of an asymmetric key pair that is kept secret by its owner, used to decrypt data encrypted with the matching public key and to create digital signatures.
A structured description of a problem that sets out its scope, its limits and what a solution must achieve, so that goals can be agreed before design begins.
A short, precise description of the problem to be solved, saying who has the problem and what is wrong with the current situation.
A program that is being executed, together with its current state: its code, data, memory space, register values and the resources it is using.
The current condition of a process as recorded by the operating system, such as new, ready (waiting for the CPU), running (using the CPU), blocked (waiting for an event or resource) or terminated.
The rectangular flowchart symbol for an operation that changes data, such as a calculation or an assignment of a value to a variable.
Collecting measurements about a program while it runs, such as how often each method is called, how many times each loop repeats and how long each part takes.
A register that holds the memory address of the next instruction to be fetched.
A rugged industrial computer that monitors inputs from sensors and controls machinery and processes by running a program in a fast, repeating cycle.
A style of programming, defined by the way a program's data and instructions are organised and by the concepts a programmer uses to structure the solution.
A level of access that lets a member be used by its own class, by every subclass of that class, and (in Java) by every class in the same package.
An agreed set of rules that defines the format, order and meaning of the messages exchanged between devices, and the actions taken on sending and receiving them.
A server that acts as an intermediary between clients and other servers, forwarding the clients' requests and returning the responses.
A feature that is not itself a protected attribute but is closely correlated with one, so that a model using it can treat groups differently without being given the protected attribute directly.
Reducing the size of a decision tree, by limiting its growth or by removing branches after it is built, so that it captures general patterns rather than noise in the training data.
An informal way of writing an algorithm that uses the structures of programming (sequence, selection, iteration, subprograms) with plain-language statements, without following the exact syntax of any programming language.
The set of public methods (and any public attributes) through which other code can use the objects of a class, as opposed to the hidden details of how the class works.
An IP address that is globally unique and can be routed across the internet, assigned to an organisation or customer by an internet service provider or regional internet registry.
The key of an asymmetric key pair that is shared openly, used by others to encrypt data for the key's owner or to verify the owner's digital signatures.
The stack operation that adds a new item to the top of a stack.