Time: about 12 minutes. Checkpoint: cp16-note-g.
You will need: the index mapping from Unit 6, and either the table you built
in Unit 6 or the lab oracle from Unit 8. Either is sufficient.
A required unit, and the one where the module examines its own mistake. The first task is the checkpoint; the second is the one worth protecting if you are short of time.
Two tasks. The first takes about four minutes; the second takes about eight.
Task 1 — establish the value independently, then compare
Note G's worked example computes the number Lovelace labels B7 (Menabrea 1843). Your job is to state what that number should be without looking at the historical table, and only then to look.
The order matters. A reference value you obtained after seeing the thing you are checking is not a reference value.
Route A — table-based verification
Equal status with Route B. Use it if you are not running Python, or if you would rather do the reasoning on paper.
- Take Lovelace's label B7 and convert it to a modern index using the mapping from Unit 6. Write the modern index down before going on.
- Look that modern index up in the Bernoulli table you built in Unit 6, or in the
table in
course/historical-notes.md. - Write the exact value as a fraction. Not a decimal — the whole argument of this module rests on exactness.
Route B — automated verification
Equal status with Route A.
python3 selfcheck.py explore
Then, at the explore> prompt:
map
ada 7
map prints the index mapping; ada 7 converts Lovelace's label and returns the
oracle's exact value at the corresponding modern index.
Then answer these, in writing, in your evidence pack
Two or three sentences each is plenty.
- What did the comparison actually catch? Be specific about the kind of discrepancy a value-by-value comparison can detect.
- What would it not have caught? Name at least one class of error in a printed procedure that comparing final values leaves completely invisible.
- What did you have to know before the comparison meant anything? There is more than one thing here, and one of them is not about Bernoulli numbers at all.
Now run the checkpoint
python3 selfcheck.py run cp16-note-g # or in the browser
Both routes ask the same question, accept the same forms of the answer, and give the same diagnostics. Pick whichever you have to hand.
Task 2 — sort one claim, and say what would move it
This is the harder task and the one that transfers furthest.
Below are seven statements about Note G, all of which circulate. Pick one — or work through several if you have time — and do three things with it.
- Sort it into
established,contested, orunsourced, as those buckets are defined on the student page. - Say why you put it there, in one sentence. "It sounds right" is not a reason; "I have not seen a source, only assertions" is.
- Say what would move it. Name a specific piece of evidence that would let you reclassify it — something a person could actually go and consult, not "more research".
Do not look up the answers first. The sorting is the exercise; getting the "right" bucket matters less than being able to defend the placement.
The statements
A. Note G appeared in 1843, as part of Lovelace's translation of Menabrea's memoir on the Analytical Engine, with her Notes appended.
B. The table published in Note G contains at least one error.
C. The error is an inversion — a divisor and a dividend the wrong way round in one operation of the table.
D. Lovelace introduced the error, and Babbage did not catch it before publication.
E. The error was introduced by the printer when the type was set, not by either author.
F. The error stood uncorrected for more than a century.
G. The as-printed table computes −25621/630.
Write it up like this
Statement: <letter>
Bucket: established | contested | unsourced
Why: <one sentence>
What would move it: <a specific, consultable piece of evidence>
Keep this. It is worth adding to the evidence pack you assemble in Unit 17 — that pack does not require it, but this is the clearest short demonstration you will produce that you can tell "I checked this" from "I have read this a lot".
Optional extension — the same test on generated text
Optional. Not required, and it does not gate anything.
Ask an AI system for a short account of the error in Note G. Then apply Task 2's three questions to every factual assertion in what comes back.
You are not looking for it to be wrong. It may well not be. You are looking at something more specific: whether the register changes between the parts that are well established and the parts that are contested or unsupported. Does the confidence of the prose track the strength of the evidence?
Record what you find in your evidence pack in one sentence. It is a useful thing to have observed once, first-hand, rather than to have been told.
Before you move on
You should be leaving this unit with:
- the modern index corresponding to Lovelace's B7, and its exact value, obtained by a route you can describe
cp16-note-gpassed- written answers to the three questions in Task 1
- one sorted statement from Task 2, with its "what would move it"
All four are worth adding to the evidence pack you assemble in Unit 17, as an appendix marked optional. Unit 17 does not require them.
Marking guidance — open this once you have done the activity, to check your own work
Read this after attempting the activity.
This key does not restate the value asked for at cp16-note-g. Deriving it is
the learning objective, and the checkpoint gives targeted diagnostics if you go
astray. Checkpoint answers live in course/lab/checkpoints.py and nowhere
else, by design.
Citation shorthand. (Menabrea 1843) = Menabrea, "Sketch of the Analytical
Engine invented by Charles Babbage", trans. with Notes A–G by Ada Lovelace, in
Taylor (ed.), Scientific Memoirs, vol. 3, 1843. Full entry in
course/references.md.
Task 1 — the three written questions
1. What did the comparison actually catch?
A value-by-value comparison against a reference you obtained independently catches exactly one class of thing: a disagreement in a final value at a named index. That covers a wrong number, a wrong sign, an inexact number where an exact one was required, and — if you are comparing index against index rather than scanning for familiar-looking values — a value that is itself correct but filed under the wrong label.
That last case is worth dwelling on, because it is the one you met at
cp08-diagnose. Every individual value can be a genuine Bernoulli number while
the output as a whole is still wrong.
A good answer names the class of error, not just the outcome. "It caught that the numbers differ" is thin. "It caught a disagreement at a specific index, which is the only thing comparing final values can catch" is the answer.
2. What would it not have caught?
Several things, and any one of them earns the mark:
- A right answer reached by a wrong route. Two errors that cancel, or an operation that is wrong but happens not to affect this particular example, leave the final value intact.
- Errors elsewhere in the procedure. A single worked example exercises a single path. Anything the example does not reach is untested.
- Errors in the surrounding prose. A comparison of numbers says nothing about the claims made in the text around the table.
- The location of the fault. This is the important one. A final-value comparison tells you that something disagrees. It does not tell you which step is responsible.
That last point is the hinge of the whole unit. The value comparison supports the
claim that the published table contains an error — a claim about final values.
It cannot, on its own, underwrite the claim about where the error is. That
location claim — operation 4, operands inverted — took a different kind of check:
reading the facsimile of the 1843 printing [P2a] and recomputing the table's
operations in noteg.py (see course/historical-notes.md §4). Each kind of
claim needs its own kind of check, and the location claim moved to established
only when that check was done. If you connected those two things unprompted, you
have understood the unit.
3. What did you have to know before the comparison meant anything?
At least three things, and the third is the one the question is fishing for.
- The convention. Under the second Bernoulli convention,
B1 = +1/2, one value in the sequence differs. Comparing against a reference built on a different convention produces a fake discrepancy. - That your reference is independent. A reference derived from the thing you are checking checks nothing.
- What "B7" means in the source's own notation. This is not a fact about mathematics at all. It is a fact about how a document written in 1843 labels its quantities — Lovelace numbers only the non-zero Bernoulli numbers (Menabrea 1843), so her labels do not mean what the identical modern labels mean.
Reading a historical source requires knowing its conventions, and the conventions are usually not stated in the source, because at the time they did not need to be. Exactly the same is true of a specification handed to a generating system: the requirement most likely to be violated is the one so obvious to you that you did not write it down.
Task 2 — the seven statements
The bucket assignments below are this module's positions, stated as positions. If you placed a statement differently but gave a defensible reason and a concrete "what would move it", you have done the exercise correctly. The reasoning is the part that counts, not the label.
A. Note G appeared in 1843, with Lovelace's Notes appended
Established. Covered directly by the primary source (Menabrea 1843), and
recorded in course/references.md.
What would move it: essentially nothing short of a bibliographic error in the volume itself. This is about as settled as a historical claim gets, and it is useful in the exercise precisely as a calibration point — the bucket is not empty.
B. The published table contains at least one error
Established. This module states it, and course/historical-notes.md gives
the fuller detail.
Note how narrow the statement is. It asserts existence and nothing else — no location, no kind, no author. Marking this "contested" confuses it with statement C, which is the confusion the whole unit is built around — a productive mistake, and one worth sitting with rather than simply correcting.
What would move it: a careful published analysis of the original printing concluding that the table is in fact correct as printed.
C. The error is an inverted divisor and dividend in one operation
Established — and it is worth knowing that it only recently was.
For most of this module's development the right answer here was contested: the description is the one you meet most often, and wide circulation is not evidence, because many retellings may descend from a single earlier account rather than from the printing itself.
Then the check happened. The "what would move it" for this claim was always
specific — a facsimile of the 1843 printing, read directly, with a trace of the
operations against a correct computation — and it was carried out. The facsimile
[P2a] shows the error in operation 4, acting on V₅ and V₄ in that order,
where producing the stated (2n−1)/(2n+1) needs V₄ ÷ V₅. The operands are
inverted. See course/historical-notes.md §4 and the unit reading, section 3.
So this claim moved buckets — not because it was repeated more, but because the consultable thing got consulted. If you marked this "contested", you gave the answer that was correct on the older evidence; section 3 is where the evidence changed. The reasoning counts either way, and the tell is whether it rests on the facsimile check or on the claim's popularity. What stays contested is who introduced it — items D and E — because no facsimile can show that.
D. Lovelace introduced the error; Babbage did not catch it
Contested. An attribution, and one of several in circulation. Attribution is a strictly harder claim than existence: it requires evidence about the process of production, not just about the printed result.
What would move it: surviving manuscript drafts, proof sheets, or correspondence
from the period showing the value at different stages (unsourced; what
manuscript material exists, and where it is held, is recorded as an open question
in course/historical-notes.md).
E. The error was introduced by the printer
Contested, and for the same reason as D. It is a competing attribution, and the same evidence would bear on both.
If you noticed that D and E cannot both be right, and that this alone is enough to place both in "contested" without knowing anything else, that is a genuinely good observation. Mutual incompatibility among widely repeated accounts is a cheap and reliable contestedness detector. It costs nothing to apply and it works on generated text.
F. The error stood uncorrected for more than a century
Unsourced. This module has not verified when the error was first remarked on
in print, or by whom (unsourced; recorded as an open question in
course/historical-notes.md).
"Unsourced" rather than "contested" is the right call here because the module is not aware of competing accounts — it is simply aware of no checked account at all. "Contested" is a reasonable answer here; "established" is not, and the tell is that the statement is quantitative ("more than a century") while nothing supporting the number has been produced.
What would move it: a dated published correction, or a survey of the literature identifying the earliest one.
G. The as-printed table computes −25621/630
Unsourced as stated — and it stays unsourced after checking, because the statement does not say what it is about.
Before any check, this is a textbook bucket-two-or-three claim: the figure is everywhere online and cited to no scholarly source, and repetition is not corroboration. Unlike D and E it looks checkable from your desk, and this module checked it — and got the check wrong in an instructive way.
Note G's table has more than one printed fault, and it consumes earlier Bernoulli
numbers that may be supplied or generated. Running python3 noteg.py in
course/lab/ prints what each reading produces: −1/30 intended, 139/630 with
operation 4 as printed and operation 24 repaired, −139/630 with both faults
literal, and −25621/630 when the faulty routine generates the earlier values it
then consumes. The last of those is the repeated figure, reproduced exactly.
So the honest verdict is not "refuted". It is that the phrase "the as-printed table" does not pick out one object, so the claim cannot be true or false until its interpretation is stated. An earlier version of this module marked it refuted on the strength of a run that had silently repaired operation 24 — the same failure, committed by the people warning about it.
Filing this under "established" because the number is widely repeated is the misfiling the unit warns about. Filing it under "refuted" because a recomputation disagreed is the subtler one.
What would move it: stating the interpretation. "Operation 4 as printed, operation 24 repaired, earlier values supplied" is a claim that can be checked, and checks out at 139/630. "The routine run from the start with the operation-4 inversion in place" checks out at −25621/630. A high-resolution facsimile confirming operation 24 independently of [S7] would firm up the whole family.
Common ways this activity goes wrong
Treating "contested" as a polite way of saying "false". It is not. It is a statement about the strength of the evidence available, not about the truth of the claim. Statement C may well turn out to be an accurate description; the module's position is that it has not established this, not that it doubts it.
Sorting by plausibility instead of by provenance. The buckets are about where a claim came from, not about how likely it sounds. A highly plausible claim with no source is unsourced. This is the single most common error in the task.
Producing a vague "what would move it". "More research" and "checking the sources" are not answers. The test is whether you have named something a person could actually go and consult. If you cannot, you have not yet worked out what the claim depends on.
Looking it up before sorting it. Understandable, and it destroys the exercise. The skill being trained is what you do with a claim before you have resolved it, because in practice most claims are never resolved — they are used, or not used, in whatever state you found them.
Why this unit is written the way it is
- It is deliberately short and deliberately under-coloured. If it feels thin next to the rest of the module, that is the design: this is the unit where invented historical detail is most likely to creep in, from any author, human or otherwise. Restraint here is the same discipline the unit is teaching.
- The question worth carrying out of it is not "which bucket" but "what would move it". That one generalises to essentially every claim you will meet in the rest of your degree.
- If you found the sorting easy, statement F is the one to sit with. It is quantitative, memorable, entirely uncontroversial in tone, and unsupported — which describes a large fraction of confident writing.
- Everything historical here defers to
course/historical-notes.md. If the evidence changes, that file changes first; this unit deliberately holds no independent historical position that could drift out of step with it.
Your private activity record
Browser storage is not a permanent copy
Progress is kept only in this browser, profile and device. Private browsing, clearing site data, removing the profile, a browser reset, storage eviction or device loss can erase it. Keep important answers and contributions separately.
These notes stay in this browser unless you download a backup or activity log.