A to Z
Glossary
Every concept in this sheet, plus the smaller terms it uses. Select a concept to open its card.
A
- Abstraction and interfaces
- Depending on what something does rather than how.
B
- Binary and hexadecimal
- Number systems with base 2 and base 16.
C
- Character encoding
- The mapping from characters to numbers and bytes.
- Class and object
- A class defines the data and behaviour of a kind of thing; an object is one instance of it with its own state.
- Compiler, interpreter and JIT
- A compiler translates a whole program to machine code ahead of time; an interpreter executes it as it reads.
- Composition
- Building an object from other objects it holds and delegates to, such as a Car that has an Engine.
- Coupling and cohesion
- Cohesion is how closely the parts of one class belong together; coupling is how much one class depends on the internals of others.
- CPU, registers and ALU
- The CPU executes instructions.
D
- Design pattern
- A named, reusable solution to a common design problem, such as Strategy for swappable algorithms or Observer for notifying listeners.
E
- Encapsulation
- Keeping an object's data private and exposing only operations that keep it valid.
F
- Fetch, decode, execute
- The loop every CPU runs: fetch the instruction at the program counter, decode it, execute it, then move to the next instruction or jump.
- Floating point
- The binary format for real numbers: a sign, an exponent and a fraction.
I
- Inheritance
- A subclass reuses and extends a parent class, and can be used wherever the parent is expected.
L
- Logic gates
- Tiny circuits that compute a boolean function of their inputs.
M
- Memory hierarchy
- Storage layers from registers and CPU caches to RAM, SSD and network, each much larger and much slower than the one above.
P
- Polymorphism
- One call working on many types, each responding in its own way.
S
- SOLID principles
- Five design guidelines: single responsibility, open closed, Liskov substitution, interface segregation and dependency inversion.
- Stack and heap
- Two memory regions of a running program.
T
- Two's complement
- The standard way to store signed integers: to negate a number, invert every bit and add one.