← Module hub · Self-check · Your local record · PDF Handbook · Toggle theme

Glossary

DEVELOPMENT REVIEW DEPLOYMENT - NOT READY FOR RELEASE

Terms used across this module, with the unit that introduces each one. Unit titles and numbers come from course/course-map.md; this file does not restate them.

Where a term has a loose everyday meaning and a precise one here, the precise one is what the module means.

Index

term introduced in
algorithm Unit 1
ordered procedure Unit 1
determinism Unit 1
state Unit 1
language model Unit 2
next-token prediction Unit 2
attention Unit 2
pre-training Unit 2
post-training Unit 2
retrieval Unit 2
plausibility Unit 2
hallucination Unit 2
independent verification Unit 2
convention Unit 3
exact rational arithmetic Unit 3
floating point Unit 3
ground truth Unit 3
off-by-one Unit 4
verification Unit 5
test oracle Unit 5
differential testing Unit 5
property-based check Unit 5
first divergence Unit 5
overreliance Unit 6
established, contested, unsourced Unit 7
disclosure Unit 8
defence Unit 8
provenance Unit 8
warrant Unit 8
formative and summative Unit 0
first-order and second-order reasoning Unit 9
observer Unit 9
Macy Conferences Unit 9
understanding Unit 8, Unit 9

Definitions

algorithm

A finite, unambiguous description of how to compute something: a fixed set of steps that, applied to valid input, produces the intended output and stops. Every step must be executable without judgement or interpretation by whatever carries it out.

Introduced in Unit 1. Note G is the module's example: a computation written out in enough detail that a machine with no knowledge of Bernoulli numbers could carry it out.

ordered procedure

The plain-language name this module uses for an algorithm written as a numbered sequence of operations, each one acting on named quantities in a stated order. The emphasis is on ordered: the steps are not a list of things to do, but a sequence in which position carries meaning, because each step depends on the result of the ones before it.

Introduced in Unit 1.

determinism

The property that the same input, run through the same procedure, always produces the same output. A deterministic procedure has no dependence on chance, on timing, or on anything not written down. reference_bernoulli.bernoulli(4) returns -1/30 today, tomorrow, and on any machine.

Introduced in Unit 1. Contrast with a language model, whose output for the same prompt may differ between runs.

state

The set of values a procedure is currently holding, and which it may change as it proceeds. In Note G these are the engine's numbered variables; in the lab oracle they are the partial sums accumulated inside the recurrence. Tracking state is what lets you say precisely where a computation has got to, and therefore where it went wrong.

Introduced in Unit 1.

language model

A statistical model of sequences of text, fitted to a large body of existing text, which assigns probabilities to what token might come next given what has come before. Text is generated by sampling from those probabilities repeatedly.

A language model is a description of regularities in text, not a store of verified facts and not an agent with intentions. Describing what it produces is accurate; describing what it "believes" or "wants" is not.

Introduced in Unit 2.

next-token prediction

The mechanism by which a language model produces text: given the sequence so far, it produces a probability distribution over possible next tokens, one is selected, it is appended, and the process repeats. A token is a short chunk of text — often a word or part of a word.

Two consequences matter for this module. First, the base generation objective is a likely continuation, not a direct correctness test. Second, correct and incorrect output can both be fluent, so fluency alone does not establish correctness.

Introduced in Unit 2.

attention

The mechanism inside a transformer language model that lets the representation at each position combine information from relevant positions elsewhere in the available context. It is a way of combining context; it is not a database lookup, a citation, or a truth test.

Introduced in Unit 2.

pre-training

The first stage of building a language model: adjusting its many numerical parameters to improve next-token prediction over a large training corpus. The result is the base model — a description of regularities in that text, not a store of verified facts.

Introduced in Unit 2.

post-training

Further training applied to a base model — on demonstrations and preference judgements — so a deployed assistant follows instructions and behaves as its makers intend. It changes how the model responds; it does not make a generated claim correct by definition.

Introduced in Unit 2.

retrieval

A system layer some deployed assistants add: fetching documents or search results and placing them in the model's context before it generates. Retrieval can ground an answer in a real source, but the generated text still has to be checked against that source — attaching a document is not the same as citing it correctly.

Introduced in Unit 2.

plausibility

The property of reading as though it could be right: well-formed, idiomatic, consistent in tone, and shaped like a correct answer. Language-model training and generation strongly reward plausible continuation.

Plausibility is not correctness, and — importantly — it is not evidence of correctness either. A plausible wrong answer can look as polished as a plausible right answer, which is why the module builds a separate means of checking.

Introduced in Unit 2.

hallucination

The established term for output from a generative model that is fluent, well-formed, and false: an invented citation, a non-existent function, a confident date that no source supports.

The word is a metaphor and should not be taken literally. The model is not perceiving anything, not mistaken about anything, and not doing something different from what it does when it is right. It is producing a statistically plausible continuation in both cases; "hallucination" simply names the subset of those continuations that do not correspond to the relevant source, specification, or world. Surface reading may expose some errors, but it cannot establish the claim; that requires appropriate evidence.

Introduced in Unit 2. Used consistently in this sense throughout the module.

independent verification

A check whose evidential basis is separable from the assertion being checked: for example, an authoritative source, an exact calculation, a test oracle built by a different method, or accountable review against explicit criteria.

Re-prompting or self-critique can improve an answer [T9], but the same system may preserve the same assumptions. Improvement is useful; it is not the same claim as independent verification.

Introduced in Unit 2; practised in Unit 5.

convention

A choice about notation or definition that is agreed rather than derived, where a different choice would be equally valid and would give different results. The Bernoulli numbers have two published conventions: the first Bernoulli numbers, with B1 = -1/2, and the second, with B1 = +1/2. Every other value is identical.

Conventions cause a distinctive kind of fault. Two programs can both be correct and defensible while disagreeing at B1, because the specification never said which convention was meant. They agree at every other index, but the unresolved meaning of B1 remains a specification defect. This module fixes the first convention, B1 = -1/2, and states it in the contract.

Introduced in Unit 3. Failure-mode code: b1-sign.

exact rational arithmetic

Arithmetic on fractions represented as an exact numerator and denominator, with no rounding at any point. Python's fractions.Fraction does this: Fraction(1,3) is one third, not an approximation to it.

The lab oracle uses exact rational arithmetic because Bernoulli numbers have large numerators and denominators — B30 = 8615841276005/14322 — and comparing generated output against a reference is only meaningful if both sides are exact. An approximate comparison has to choose a tolerance, and any tolerance loose enough to pass rounding error is loose enough to pass a real bug.

Introduced in Unit 3.

floating point

The binary approximation to real numbers used by default in most programming languages, including Python's float. It is fast, fixed in size, and inexact: most fractions cannot be represented, so results carry small errors that accumulate.

For small Bernoulli indices, floating-point output looks convincing — -0.03333... really is close to -1/30. By B30 the error is unmistakable. Producing floats where exact values were specified is a failure of the specification's arithmetic requirement, not a rounding detail to be tolerated.

Introduced in Unit 3. Failure-mode code: not-fraction.

ground truth

The independently established answer against which a result is judged. In this module, ground truth for the Bernoulli numbers comes from published tables and from the value you derive yourself by hand in Unit 3 — not from the program being tested, and not from a second generated answer that agrees with the first.

The ordering matters: ground truth has to be established before you look at the output you are judging, or you will find yourself deciding that whatever you got must have been right.

Introduced in Unit 3.

off-by-one

An indexing error in which every value is correct but shifted by one position, so that item n returns what belongs at n+1 or n-1. It is the archetypal programming mistake because it survives inspection: the arithmetic is right, the values are all genuine, and nothing looks wrong until you compare index by index against a reference.

Introduced in Unit 4. Failure-mode code: off-by-one.

verification

Establishing that a result is correct by checking it against something independent of the process that produced it. Reading the output again, asking the model whether it is sure, or noting that it looks reasonable are none of them verification, because none of them is independent.

In this module verification takes three concrete forms, all equally valid: comparing against a table you filled in by hand, comparing against a published source, and comparing against a test oracle by running code.

Named in Unit 0 as part of the learning contract; practised throughout and made central in Unit 5.

test oracle

A trusted source of correct answers, used to judge a piece of code under test. course/lab/reference_bernoulli.py is this module's oracle.

An oracle is only worth as much as its own validation, so this one is checked in two directions: against 22 values transcribed from published tables, which it did not compute, and against properties that must hold regardless of how it computes anything.

Introduced in Unit 5.

differential testing

Running two implementations of the same specification on the same inputs and comparing the results, on the principle that two independent routes to the same answer are much stronger evidence than one route agreeing with itself. course/lab/check.py does this: your routine against the oracle, index by index.

The independence is what carries the weight. examples/correct_example.py deliberately uses a different algorithm from the oracle — the Akiyama–Tanigawa transform rather than the binomial recurrence — so that agreement is informative rather than circular.

Introduced in Unit 5.

property-based check

A check that tests a property which must hold for every valid input, rather than comparing specific input-output pairs. The module's example: every odd Bernoulli number above B1 is exactly zero, so B_(2k+1) = 0 for all k >= 1.

Property checks catch faults that a table of examples misses, because they do not depend on having chosen the right examples. They also state, in code, something a reader would otherwise have to know.

Introduced in Unit 5. Failure-mode code: odd-terms.

first divergence

The lowest index at which a routine under test and the oracle disagree. The checker reports this specifically because it gives a reproducible boundary: every lower tested input matched. It is often a useful place to start debugging, but it does not prove that later failures share the same cause.

Introduced in Unit 5.

overreliance

Depending on a tool beyond the point where you can tell whether its output is right. It is not the same as using AI heavily; it is using AI in place of the understanding that would let you check it.

The practical test is whether you could detect an error if there were one. If a generated answer would look identical to you whether it was correct or not, you are relying on it rather than using it. This is why the module has you derive B4 by hand before any code is generated: the understanding has to come first, or there is nothing to check against.

Introduced in Unit 6.

established, contested, unsourced

The module's three buckets for the status of a claim. Established: you can name where it comes from, and the source is one that you, or someone accountable to you, has actually looked at. Contested: sources disagree, or a single account has been copied forward through many retellings without an independent check behind it. Unsourced: you cannot currently say where the claim came from — which is not the same as false.

A claim's bucket is part of the claim, and a claim moves buckets when a check is actually done, not when it is repeated more.

Introduced in Unit 7, §6 of its reading; the same status labels are used throughout course/references.md.

disclosure

A short, factual statement of how AI was used in producing a piece of work: what was generated, at what stage, and what was done with it afterwards. Disclosure answers the question how was this made.

It is a statement about provenance. It is not a claim about quality, and it does not remove the user's responsibility for the output. Other people and organisations may also have duties in a wider system.

Named in Unit 0; templated and practised in Unit 8. See course/learner-evidence-template.md.

defence

A short statement of why the work is correct, citing the checks that were run and the reasoning that was followed. Defence answers the question why is this right.

A defence rests on evidence: a value derived by hand, a table compared, a checker run and its output. It never rests on the authority of the tool that produced the work. "The model was confident" and "the code looked right" are not defences.

Disclosure and defence are separate statements answering separate questions, and the module asks for both. The gap between them is the gap between "I generated this" and "I understand and can defend this".

Introduced in Unit 8.

provenance

Where a thing came from: who or what produced it, by what process, at what stage, and what happened to it afterwards. A disclosure is a statement of provenance. Provenance is worth recording honestly, and it is not evidence of correctness — knowing how a piece of work was made tells you what to check, not whether it is right.

Introduced in Unit 8.

warrant

What entitles you to assert a claim: evidence you can show — a value derived by hand, a comparison recorded, a checker's output — together with the specification or assumption the evidence was gathered against. Warrant is about what you can point at, not about who produced the text. A defence carries warrant; a disclosure carries provenance; neither substitutes for the other.

Introduced in Unit 8; taken up again in Unit 9, where a warranted claim carries its index — who observed, in what context, with what record.

first-order and second-order reasoning

In Unit 9, first-order reasoning describes an observed system from the outside; second-order reasoning includes the observer in the system being described, so that claims carry a three-part index: who observed, in what context, with what record.

This use of "second-order" comes from the second-order cybernetics tradition [C1], developed from the Macy Conferences onwards. It is not the distinction between first-order and second-order logic, and it is not presented as settled terminology across every field.

Introduced in Unit 9.

observer

In Unit 9's sense, whoever or whatever is doing the describing or the checking. The observer question is: when you check something, are you outside the system you are checking, or part of it? Including the observer makes a claim more checkable, not less, because an indexed claim — who observed, in what context, with what record — says what would have to be compared with what. Maturana's compact version: anything said is said by an observer [C3, p. 8].

Introduced in Unit 9.

Macy Conferences

Ten meetings on cybernetics held between 1946 and 1953, funded by the Josiah Macy Jr. Foundation and chaired by Warren McCulloch [C4], with deliberately mixed participants — among them Wiener, von Neumann, Shannon, Bateson, Mead and von Foerster. The reflexive question behind second-order cybernetics surfaced there and was developed afterwards. A recognised research tradition with a literature — and a tradition rather than a theorem.

Introduced in Unit 9.

understanding

This module uses a working structural account, not a settled definition: your internal model of a target — another agent, a process, a piece of code, or a theory — supports understanding when its parts, relationships, and predictions continue to correspond reliably with the target under relevant checks. The verification lab gathers evidence for that correspondence through input–output agreement, property checks, and the first divergence. It does not measure understanding directly or completely.

Understanding is separate from correctness. It is a structural property — how well your model maps the target — not a claim that the target is right. You can understand a flawed framework perfectly: the module's authors mapped the as-printed Note G table and predicted what it computes without that value being correct. The capacity to map (understanding) and the empirical accuracy of the map (correctness) are two different things, and a defence needs both.

For the formal statement — understanding as a structure-preserving map f : M1 → M2 whose validity is measured by consistency, and its decoupling from truth — see course/second-order.md. Causal accounts emphasise explaining interventions; counterfactual accounts emphasise predicting what would change under different conditions. They are alternatives and possible additions; this module uses the structural account without claiming to settle the question.

Introduced in Unit 8; formalised through the second-order material in Unit 9.

formative and summative

Formative work exists to tell you — and possibly your instructor — what you have understood while there is still time to act on it. It is not marked, or is marked only for feedback.

Summative work is assessed and contributes to a result.

The self-check in course/lab/ and the browser route are formative and unmarked unless your instructor states otherwise. The distinction matters for how you should use them: on formative work, discovering that you were wrong is the useful outcome, and a checkpoint you failed twice before passing has taught you more than one you passed first time.

Introduced in Unit 0.