Skip to content

Glossary

~8 min

In short

These are the terms that come up across the seven core subjects. Each entry gives a short definition. Terms are in alphabetical order. Where a term has a more detailed page, the subject page is linked.

  • ACID: The four properties of a database transaction: atomicity, consistency, isolation, and durability. See databases.
  • Address space: The set of memory addresses a process is allowed to use.
  • Algorithm: A finite, step-by-step procedure that solves a problem. See data structures and algorithms.
  • Array: A collection of items stored in consecutive positions and reached by an index number.
  • Bayes' theorem: A formula for updating the probability of an event after new evidence. It states that P(A given B) equals P(B given A) times P(A), divided by P(B). See discrete math and probability.
  • Big-O notation: A way to describe how running time or memory grows as the input grows, ignoring constant factors. See data structures and algorithms.
  • Binary: The base-2 number system, which uses only the digits 0 and 1. See computer architecture.
  • Bit: The smallest unit of information, holding a single 0 or 1.
  • B-tree: A balanced search tree that keeps keys sorted. Databases use it for indexes.
  • Byte: A group of 8 bits.
  • Cache: A small, fast memory that keeps copies of data that were used recently or are likely to be used again. See computer architecture.
  • Client-server model: A design in which clients send requests and a server sends back responses. See computer networks.
  • Concurrency: Running several tasks during overlapping periods of time. See operating systems.
  • Condition: An expression that evaluates to True or False. if statements and while loops use conditions.
  • Database: An organised collection of data, managed by software that controls how it is read and changed. See databases.
  • Deadlock: A situation in which two or more processes wait forever for resources that each other holds. See operating systems.
  • DNS: The Domain Name System, which translates host names such as example.com into IP addresses. See computer networks.
  • Edge: A connection between two vertices in a graph. See discrete math and probability.
  • Exception: A signal that an error occurred. It can be caught and handled, so the program does not stop.
  • Expected value: The average outcome of a random process, weighted by the probability of each outcome.
  • Foreign key: A column in one table that refers to the primary key of another table. See databases.
  • Function: A named block of code that takes inputs, does work, and may return a value. See programming fundamentals.
  • Graph: A set of vertices together with edges that connect some pairs of them. See data structures and algorithms.
  • Hash table: A structure that stores key and value pairs and uses a hash function to find where each key is stored. See data structures and algorithms.
  • Heap: In data structures, a tree in which each parent is smaller (min-heap) or larger (max-heap) than its children. In memory management, the region used for dynamic allocation. The two meanings are different.
  • HTTP: The protocol that browsers and many APIs use to request and send resources, usually over TCP. See computer networks.
  • Index: A separate structure that lets a database find rows by a column's value without scanning the whole table. See databases.
  • Induction: A proof method. You check a base case, then show that if a statement holds for n it holds for n + 1. See discrete math and probability.
  • Interrupt: A signal that makes the processor stop its current work and run a handler. See computer architecture.
  • IP address: A number that identifies a device on a network. See computer networks.
  • Isolation level: A database setting that controls how much one transaction can see of other transactions' changes. See databases.
  • Join: An SQL operation that combines rows from two or more tables where a condition matches. See databases.
  • Lock: A mechanism that lets one thread or transaction use a resource at a time. In threading, it is also called a mutex. See operating systems.
  • Logic gate: A circuit that computes a simple logical function, such as AND, OR, or NOT. See computer architecture.
  • Loop invariant: A statement that is true before each iteration of a loop, used to prove that the loop does what it should. See discrete math and probability.
  • MVCC: Multiversion concurrency control. The database keeps several versions of a row so that readers and writers do not block each other. See databases.
  • Normalisation: Splitting tables so that each fact is stored in one place. See databases.
  • Packet: A small unit of data with a header and a payload that a network moves independently. See computer networks.
  • Pipelining: Overlapping the stages of executing several instructions, so that more than one is in progress at once. See computer architecture.
  • Port: A number that identifies a particular program or service on a machine. See computer networks.
  • Primary key: A column or set of columns whose value uniquely identifies each row in a table. See databases.
  • Probability: A number from 0 to 1 that expresses how likely an event is. See discrete math and probability.
  • Process: A running program, with its own address space and resources, managed by the operating system. See operating systems.
  • Protocol: A set of rules that two systems agree on for exchanging data. See computer networks.
  • Queue: A collection in which the first item added is the first removed (first in, first out).
  • Race condition: A bug in which the result depends on the timing of concurrent operations. See operating systems.
  • Recursion: A function that calls itself on a smaller version of the problem, with a base case that stops the calls. See programming fundamentals.
  • Register: A small storage location inside the processor. See computer architecture.
  • Relation: In a relational database, a table of rows and columns. See databases.
  • Scheduling: The operating system's choice of which ready process or thread runs next on the processor. See operating systems.
  • Scope: The part of a program in which a name can be used. See programming fundamentals.
  • Socket: An endpoint that a program uses to send and receive data over a network. See computer networks.
  • Stack: A collection in which the last item added is the first removed (last in, first out).
  • System call: A request from a program to the operating system for a service, such as reading a file. See operating systems.
  • TCP: The transport protocol that delivers an ordered, reliable stream of bytes between two programs. See computer networks.
  • Thread: A unit of execution inside a process. Threads in the same process share its memory. See operating systems.
  • Transaction: A group of database operations that either all take effect or none do. See databases.
  • Traceback: The report Python prints when an error stops a program. It lists the calls that led to the error. See programming fundamentals.
  • Tree: A connected structure of nodes with one root and no cycles. Each node may have child nodes. See data structures and algorithms.
  • Truth table: A table that lists every combination of True and False inputs for a logical expression, with the output for each. See discrete math and probability.
  • Two's complement: The standard way computers store negative integers in binary. See computer architecture.
  • Type: The kind of value a variable holds, such as integer, string, or boolean. See programming fundamentals.
  • UDP: A transport protocol that sends independent datagrams without guaranteed delivery or order. See computer networks.
  • Variable: A name that refers to a value. See programming fundamentals.
  • Vertex: A point in a graph, also called a node. See discrete math and probability.
  • Virtual memory: A system that gives each process its own address space and maps it onto physical memory. See operating systems.