Skip to main content

Manual build guide

Free

Manual build guide

Step-by-step help for building question types by hand. The create/edit workspace uses a sidebar and one step at a time — Variables, content sections, exit routing, and review — with drag-or-click insert chips.

Overview

Manual build is for teachers who want full control without AI.

1. Choose Manual build (or Assisted) at the top of the create/edit page. 2. Set changing values and Rules that must stay true — Re-sample / preview uses those rules. 3. Add Extra values or data tables if needed. 4. Build question sections with rich blocks (see Visuals without images for formats). 5. Set exit routing / active learning and preview samples. 6. Mark ready when you are satisfied. This guide has a full Rules catalogue (predicates, divisibility, co-prime) and an Expressions section (Fast vs CAS). Open those TOC links when you need syntax, not only click-paths.

Changing values

Short names (a, b, n) that you insert into question text.

Click Add changing value. Give a short Name (id) and a plain label you recognise. Choose the type (whole number, decimal, text, choice, unit, …). Set min, max, and step when the type needs a range. In content steps, click a text box and use Insert → Values (or the Variables insert bar). Names must match Rules exactly — e.g. if the rule is divisible(rhs, coef), you need changing values named rhs and coef.

Rules that must stay true

Keep every generated sample valid — e.g. one value must be divisible by another, two values must share no common factor, or a value must be odd.

WHERE RULES LIVE Variables step → Rules that must stay true (whole question). You can also add per-value rules on one changing value. HOW THEY WORK • One rule per line. Separate lines are all required (AND). • On one line you may use and / or (or && / ||) and brackets. Uppercase AND/OR is accepted. • Re-sample and authoring preview honour these rules (server sampling). Wrong names do not filter. • Never put integrate, solve, diff, or simplify in rules — use Extra values or <<<<expr:…>>>>. OPERATORS IN RULES (important) • Multiply with ASCII * only — e.g. rhs < (10 * coef). • Do not use the × symbol (or a letter x) for multiply in Rules. The field may accept the text and Re-sample still shows numbers, but the rule is treated as invalid and ignored (fail-open), so samples can break the inequality. • Divide with / ; subtract with - ; powers with ** (or ^, which is normalised). • Prefer spaces around operators: a + b > 10, rhs < (10 * coef). PREDICATES (Fast tier) • coprime(a, b) — share no common factor (same as gcd(a, b) == 1) • divisible(a, b) — a is divisible by b (a % b == 0). First = dividend, second = divisor. Example: divisible(rhs, coef) means rhs is a multiple of coef. • even(n) / odd(n) • is_prime(n) / is_integer(x) / is_rational(x) • approx(x, y, tol) — x is within tol of y COMPARISONS a != b · a < b · a > 0 · a + b > 10 · rhs < (10 * coef) · (b != 0) or (c != 0) CLICK PATH Click in the Rules box → use a recipe chip (Share no common factor, Divides exactly, Odd, Prime, …) or type a line yourself → Re-sample to check the numbers. If you typed × for multiply, change it to * and Re-sample again.

Extra calculated values

Values worked out from your changing values — e.g. common factor.

In Extra calculated values, click Add extra calculated value. Or use a recipe such as Common factor of A and B (gcd), sum, or product. You may also type a SymPy expression (Fast or CAS). CAS is allowed here; not in Rules. Insert the short name into question text like any changing value. Lookup facts can read a data table — see Data tables in this guide.

SymPy expressions

Calculations in <<<<expr:…>>>> tokens, extra values, and smart add-ons use a SymPy engine with two tiers.

In the insert bar, open Expressions (next to Values). Fast tier — + − * /, powers, sqrt, log, sin/cos, gcd, lcm, min/max, and rule predicates. Safe in Rules and in <<<<expr:…>>>> tokens. CAS tier — diff, integrate, solve, simplify, factor, Matrix. Use in <<<<expr:…>>>> or Extra calculated values only; never in Rules. Syntax: prefer a**2 for powers; x^2 is also accepted and normalised. Multiply with ASCII * (10 * coef). In Rules, do not use the × symbol — it will not enforce. In expression tokens, × may be normalised to *; still prefer * when you type. Click Insert a calculation… for a guided builder, or copy an example pattern into a block. Subtract carefully: write a - 1 or (a - 1)*2 so the minus is not glued to the number.

Insert into question

Never type <<<<…>>>> by hand — use the Insert menus at the top.

Click the text box you want to edit. The bar shows Inserting into: … Values — changing values, extra calculated values, student's answer, correct answer. Expressions — SymPy syntax guide, worked examples, and Insert a calculation… This format — placeholders that match your question type (blanks, active-learning tokens, etc.). Logic and repeats — show a picture many times, or add If / Repeat-for-each smart add-ons. Recipes — rule recipes (including divisible / odd / prime), extra-value recipes, and the active-learning nested expression shortcut (student answer minus a parameter). ⓘ Token reference — quick copy for each <<<<…>>>> token family. Menus grey out when they do not apply to the field you clicked. For diagrams without uploads, open the Visuals without images guide from the sections panel.

Question sections

Stem, answer, hints, and solution as rich blocks.

Add blocks and choose format (Plain text, Markdown, LaTeX, SVG, TikZ, Mermaid, Chart, D3, table, code, HTML, iframe, audio/video, callout, …). Use Open in Workshop for diagrams and counters when the block offers it. Return from Workshop applies content to the right block. Full format recipes (emoji counting, ten-frames, Mermaid, Chart JSON, D3): open the Visuals without images guide.

Smart add-ons

Optional steps before the main stem — repeat visuals, if/else text, count through numbers.

Under Smart add-ons: • Add text — extra line of wording. • Show many times — repeat a symbol or picture for a count. • If this is true — extra content when a condition holds. • Repeat for each number — loop from one number to another. Conditions use the same Fast-tier expression language as Rules where applicable.

Conditional learning branches

Different active-learning content when the student's path or answer differs. The student path strip and header “Triggered when …” chips stay visible in Editor focus.

Expand an active-learning block. Use the student path strip (Before → Choices → After, or Content → After) to move between parts. Header chips show exit-routing triggers (“Triggered when …”). In Advanced, add a branch when needed. The Insert → Recipes menu offers a nested expression shortcut: student answer minus a parameter (<<<<expr:<<<<alb:student_answer>>>>-a>>>>). Edit branch content slots. Default content is shown when no branch matches. For exit-routing matrices and subject tables, open the Exit mechanism routing guide.

Data tables and lookup facts

Tabular data that Extra values (lookup facts) and some changing values can read.

On the Variables step, open Data tables. Add a table with an id, key columns, and rows. Add an Extra calculated value with kind lookup, point it at the table, and bind columns to changing-value names. Lookup facts resolve before Rules during sampling. You can also set domain_from on a changing value so its domain comes from a table column. When data tables or lookups are present, preview always samples on the server (same path as Rules).