-
-
Unsupported input triggers a calibrated abstention instead of a confident guess.
-
The first broken transition is identified with a targeted, non-answer hint.
-
A synthetic teacher view surfaces class-level patterns without ranking students.
-
Every diagnosis shows the symbolic check, model confidence, and hint provenance.
-
Start with a learner’s own work, not a generated answer.
-
Frozen evaluation compares the calibrated classifier with rule-only and majority baselines.
Inspiration
A wrong algebra answer does not tell a teacher or learner why the reasoning broke. An incomplete distribution, a sign error, and an operation applied to only one side need different feedback. Most learning tools either mark the answer wrong or reveal a full solution, which can erase the chance to repair the misconception.
What it does
ErrorPrint is a bounded misconception debugger for single-variable algebra. A learner enters work one line at a time. ErrorPrint finds the earliest step that is no longer mathematically equivalent, names one of eight supported misconception patterns when confidence is high enough, and gives a short question that helps the learner try again without exposing the answer.
The workflow is inspectable from end to end:
- SymPy verifies the transition instead of asking a model whether the math looks right.
- Deterministic features describe what changed, such as whether multiplication reached every term.
- A calibrated classifier identifies a supported misconception or abstains.
- A leakage guard blocks hints that contain the final answer or a complete corrected line.
- The evidence drawer shows the check, confidence, and hint provenance so feedback is not a black box.
Why it matters
A learner gets feedback about the reasoning they can repair, not just a red X. A teacher can see a privacy-minimized synthetic class summary of misconception and abstention patterns without student ranking or behavioral surveillance. The project is intentionally honest about impact: this hackathon build has no classroom outcome study and makes no grade-improvement claim.
How we built it
The student experience is a keyboard-first React and TypeScript app. A FastAPI service parses an allowlisted algebra grammar, uses SymPy for equivalence checks, extracts deterministic transition features, and runs a calibrated scikit-learn classifier. SQLite with Alembic stores only privacy-minimized demo attempts. Playwright covers the full learner journey, keyboard operation, and accessibility.
A Featherless-compatible adapter can phrase an already-grounded hint, but it cannot decide whether a step is valid or choose the diagnosis. Because no live API key was available, the demo visibly uses deterministic fixture mode for wording. The symbolic checks, feature extraction, classifier, abstention logic, and learner workflow are real.
Challenges we ran into
The hardest part was keeping the product useful without making the model the source of truth. Algebraic equivalence needs solution-set-aware checks, not string comparison. Synthetic examples also created a near-duplicate leakage risk, so the evaluation splits by template family. Finally, every generated hint needed a deterministic guard against revealing the answer.
Accomplishments we are proud of
- Classifier macro-F1 of 0.9958 on the checked-in frozen test set, versus 0.8282 for the rule-only baseline and 0.0279 for the majority baseline.
- 0% hint leakage across 239 real pipeline runs.
- 75 Python tests, 3 frontend tests, and 7 Playwright browser checks passed, including keyboard and automated accessibility coverage.
- A complete 1:47 product demo, screenshots, captions, model card, dataset card, taxonomy, threat model, and reproducible setup are included in the public repository.
What we learned
The most important AI behavior is sometimes refusing to guess. Calibration and abstention made ErrorPrint more trustworthy than a more fluent system that always answers. We also learned that symbolic reasoning and machine learning work best here as separate layers: the symbolic engine establishes mathematical truth, while the classifier recognizes a bounded misconception pattern.
What is next
Next steps are an independent educator audit of the taxonomy and frozen examples, a deliberately budgeted live Featherless smoke test, and consented learner usability work. Only after that evidence would we expand to additional algebra domains or make learning-outcome claims.
Open source
Source, setup, evaluation artifacts, and the full media pipeline: github.com/rishabhcli/rapid-glacier-0cb8
Built With
- alembic
- fastapi
- featherless
- playwright
- python
- react
- scikit-learn
- sqlite
- sympy
- typescript
- vite
Log in or sign up for Devpost to join the conversation.