Math Practice
Math practice for kids (and anyone else) - counting, times table recitation, and interactive arithmetic quizzes across all four basic operations. Fully offline.
Four modes, deliberately not one "do math" intent
- Counting -
"count to ten"- pure recitation, no interaction. - Table recitation -
"say the 5 times table"- pure recitation of 1×5 through 10×5, no interaction. Multiplication only - addition/subtraction/division don't have a traditional "table" concept the same way, so this stays scoped to what "times table" actually means. - Teach, then practice -
"teach me the 5 times table"goes through the table one row at a time (say "repeat" to hear a row again before moving on), then"quiz me on what you taught me"quizzes specifically on THOSE facts - not arbitrary random problems. See "Teach-then-practice" below. - Quiz -
"quiz me on the 3 times table"/"quiz me on addition"- genuinely interactive: asks 5 questions one at a time, listens for a spoken answer, and reports a final score. Covers all four basic operations, not just multiplication - this was an explicit scope correction from the original "times tables" framing during design.
Usage
"count to ten"
"say the 5 times table"
"teach me the 5 times table"
"quiz me on what you taught me"
"quiz me on the 3 times table"
"quiz me on addition"
"give me a math quiz"
"tæl til ti" (Danish)
"sig 5 tabellen" (Danish)
"lær mig 5 tabellen" (Danish)
"quiz mig i det du lærte mig" (Danish)
"quiz mig i 3 tabellen" (Danish)
Teach-then-practice
The reference implementation of the pattern shared across the whole
*-practice family (see issue #1
for the original design discussion). "teach me the 5 times table"
speaks each row in turn, waits for either "repeat" (says the same row
again) or anything else (moves to the next row), and records exactly
which facts were presented. "quiz me on what you taught me" then
quizzes ONLY on that recorded set, reusing the same grading logic as
the regular quiz mode (_ask_and_grade()), rather than generating
fresh random problems.
Deliberately session-only for this release: self._taught_facts
resets when the skill restarts - it doesn't persist across days. This
was a scoped-down choice from the original design discussion, which
also considered persisting taught facts (via self.settings or a
local file) so "quiz me on what you taught me" would still work in a
later session. Kept simple for v1; worth revisiting if session-only
turns out to be a real limitation in practice rather than a
theoretical one.
How the quiz works
Unlike ovos-skill-metronome/
ovos-skill-rhythm-box/
ovos-skill-white-noise,
quiz mode needs no background thread - it's a sequential, blocking
conversation using OVOSSkill.get_response(), which already handles
the listen-and-transcribe round-trip. Each of the 5 questions is
asked, answered (or timed out), and scored in turn; a timed-out or
unparseable answer counts as incorrect rather than crashing the quiz.
Problem generation defaults
- 5 questions per quiz round.
- Times tables: the traditional 1-12 range.
- Addition/subtraction: operands 1-20, subtraction always kept non-negative (larger number first).
- Division: always divides evenly (built as divisor × quotient, both 1-10) - no fractional answers, since spoken fraction-checking is a much harder problem than this skill attempts to solve.
Install
pip install ovos-skill-math-practice
Development
See DEVELOPMENT.md.
Category
Education
Tags
#math #education #times-tables #quiz #kids
Release files for ovos-skill-math-practice 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ovos_skill_math_practice-0.0.2.tar.gz | 29.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ovos_skill_math_practice-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 65.8 kB
Release files / ovos_skill_math_practice-0.0.2.tar.gz
| Download URL | ovos_skill_math_practice-0.0.2.tar.gz |
|---|---|
| Size | 29.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de9699cc862a52d9bde167220125591815c37a2f5f05c7df21659a72ae581ed0
|
|
BLAKE2b-256 checksum How to use checksums |
644f5f541c15863e252012da2ef46f33002e0b4a1a568218d37f7d761b00011b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency logRelease files / ovos_skill_math_practice-0.0.2-py3-none-any.whl
| Download URL | ovos_skill_math_practice-0.0.2-py3-none-any.whl |
|---|---|
| Size | 36.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7c615f37272a16e59c0a6a4aba3da4958bd03ebdd90710f9f966e6ff2671b5fa
|
|
BLAKE2b-256 checksum How to use checksums |
cfebf789f1c75d81f009694c5f0178adcc6222aa9e9243ddf78f6e7a11443be3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 16, 2026.
Transparency log