🚀 Inspiration
Engineering mathematics is a foundation of engineering, yet many students struggle to identify where their calculations go wrong. We were inspired to build WorkCheck, an interactive mathematics learning tool that helps students move beyond memorizing formulas to understanding the reasoning behind every step. Our goal is to make learning engineering mathematics more accessible, practical, and affordable through an offline-first approach that does not depend on expensive AI services.
💡 What it does
WorkCheck is an engineering mathematics working checker that allows students to enter a mathematical problem and work through its solution step by step. Instead of simply marking an answer right or wrong, WorkCheck identifies the first incorrect step, explains the mistake, and provides a worked example to help the student understand the correct method.
The platform also generates three similar practice problems to reinforce learning and help students build confidence. Its initial capabilities include differentiation and partial fractions, with support for mathematical expressions, symbolic computation, and incomplete working.
Designed with accessibility and affordability in mind, WorkCheck runs locally and uses rule-based mathematical analysis rather than relying on paid AI APIs or external AI requests.
🛠️ How we built it
We built WorkCheck using Python, Streamlit, and SymPy. Python powers the application's logic, Streamlit provides the interactive user interface, and SymPy enables symbolic mathematical computation and expression analysis.
We developed a step-by-step checking system that examines students' mathematical working to identify errors and provide targeted explanations. The application includes differentiation operations, product and chain rules, and partial fractions involving distinct linear factors.
We also implemented local autosaving to preserve students' work on their devices, alongside an offline-capable architecture designed to operate without external AI services. Automated regression testing helped us verify mathematical functionality, error handling, persistence, and interface readiness throughout development.
⚡ Challenges we ran into
- Interpreting mathematical expressions written in different forms, including implicit multiplication and function notation.
- Identifying the first incorrect step instead of checking only the final answer.
- Providing meaningful mathematical explanations rather than simply reporting an error.
- Supporting multiple differentiation rules and partial fraction decomposition within a reliable checking system.
- Preserving students' work locally while handling damaged saves and saving failures.
- Building a useful educational application without paid AI APIs or dependence on external AI requests.
🏅 Accomplishments that we're proud of
✅ Built a working mathematical solution checker that focuses on students' reasoning, not just final answers.
✅ Implemented symbolic mathematics capabilities for differentiation and partial fractions.
✅ Developed targeted error explanations, worked examples, and a pathway to three similar practice problems.
✅ Created an offline-capable, locally running application that avoids paid AI service dependencies.
✅ Implemented local autosave and recovery safeguards to help protect students' work.
✅ Completed five major development stages and expanded the automated regression suite to 181 tests, covering core functionality, persistence, error handling, and application readiness.
📚 What we learned
- Why checking intermediate mathematical steps is more educationally valuable than checking final answers alone.
- How symbolic computation can support mathematical learning and automated verification.
- The importance of robust expression parsing when students write mathematics in different ways.
- How local storage, error handling, and automated testing contribute to application reliability.
- How to build practical educational technology under strict financial and technical constraints.
- That an effective learning tool should help students understand why an answer is wrong, not merely tell them that it is.
🚀 What's next for WorkCheck
✨ Expand mathematical coverage to include more engineering mathematics topics and solution methods.
✨ Improve step-by-step reasoning analysis and support a wider variety of student-written mathematical expressions.
✨ Develop interactive practice sessions with answer checking, hints, and progress tracking.
✨ Explore handwriting recognition so students can submit handwritten mathematical working.
✨ Improve the visual experience with a more colourful, engaging interface designed for students.
✨ Make WorkCheck more accessible to engineering students who need reliable mathematics practice without expensive subscriptions or constant internet access.
With WorkCheck, we're not just checking mathematical answers—we're helping students understand their mistakes, strengthen their reasoning, and become more confident problem-solvers.
Built With
- local
- offline-capable
- pytest
- python
- storage
- streamlit
- sympy