Exams
A checkpoint is an exam: a set of questions of its own, the way a university publishes one. The interface calls them by the checkpoints label of the domain, so a domain that sets checkpoints: Exams shows Exams (The root and the domain).
A checkpoint is not made of flashcards. Its questions are not flashcards, and the scheduler never sees them.
Where checkpoints live
The checkpoints of a domain live in its checkpoints/ directory, beside its sections. Inside it, use directories to any depth: one per university and one per year under it, for example.
phy/
├── index.md
├── eam/ a section
└── checkpoints/ the checkpoints of the domain
├── index.md a checkpoint folder: order
└── eam/ a checkpoint folder
├── index.md title, order
├── direct-current-quantities.md a checkpoint
└── dc-analysis-laws.md a checkpoint
checkpoints/and each directory under it is a checkpoint folder. Each needs anindex.md.- Each
.mdfile in a checkpoint folder, other thanindex.md, is a checkpoint. - A checkpoint folder can hold checkpoints and other checkpoint folders side by side.
- The
orderof the domain does not listcheckpoints.
A checkpoints/ directory without its index.md is an error:
ERROR ./math/checkpoints/index.md: cannot read: no such file
A checkpoint folder must hold at least one checkpoint or one folder.
A checkpoint folder
---
title: Electromagnetism
order: [direct-current-quantities, direct-current-circuits, dc-analysis-laws, dc-analysis-methods, dc-analysis-thevenin]
---
| Field | Is |
|---|---|
title | the name of the folder; its id if absent |
order | the checkpoints and the folders it holds, in order |
draft | true holds back the folder and everything in it |
order follows the same rules as everywhere else (The tree).
A checkpoint
---
title: Physics, 2020
---
Answer every question without notes.
::: question q1
A 9 V source feeds a 3 Ω and a 6 Ω resistor in series. What is the current?
::: answer
1 A.
:::
::: solution
The resistances add: $9 / (3 + 6) = 1$ A.
:::
:::
::: question q2
A component carries 0.5 A when 6 V sits across it. What is its resistance?
::: answer
$R = V / I = 6 / 0.5 = 12\ \Omega$.
:::
:::
| Part | Written as |
|---|---|
| the title | title: in the front matter; the id if absent |
| the instructions | the text outside the questions |
| a question | a ::: question block, with an ::: answer and an optional ::: solution |
Put the instructions before the first question. The app shows all text outside the questions as the instructions, at the top of the checkpoint.
A question is written exactly as a flashcard of a deck (Flashcards and solutions). Its answer is required, and its solution is optional. A question without an id takes e1, e2, in order. Two questions in one checkpoint cannot share an id.
A checkpoint holds questions and nothing else. A card, a figure or a reference in a checkpoint is an error:
ERROR ./math/checkpoints/mit/2020.md:5: `card` cannot sit inside `checkpoint`
The instructions and the questions can link references of the domain with [label](reference:id).
A checkpoint draws no plot. A plot block in the instructions or in a question is an error:
ERROR ./math/checkpoints/c.md:7: a `plot` block draws only in a `card` or a `figure`, and this one sits in the instructions of a checkpoint, so the app never draws it: move it to a card
Ids
The id of a checkpoint is its filename stem, and the id of a folder is its directory name. The rules of unique ids and reserved ids do not apply to them. Two folders can each hold a 2020.md, because the address of a checkpoint in the app includes its folders.
What the learner sees
The Exams scroll shows the checkpoints of the domain one after another, in the order of their folders. A checkpoint with no questions does not show. A checkpoint shows its instructions, then its questions, each with its number. The app marks a question as read when it crosses the reading line, so a checkpoint has a progress mark, as a deck has.
The head of each checkpoint has a reveal control. It shows the answer and the solution under each question, and hides them again.
A domain needs at least one deck. The checker refuses a domain with checkpoints and no deck (The root and the domain).