We looked around for existing solutions that we could integrate into our app, but the ones we found were closed-source, behind paywalls, or did not focus on the teaching behind the steps, so we decided to build our own.Today we’re thrilled to release mathsteps — the first open-source project that teaches math step-by-step.Tags: Research Paper On Co-TeachingReligion Essay TopicsFinancial Regulation EssayHow To Solve Precalculus ProblemsSantosh Ansumali Phd ThesisHomework Packing Jobs UkEvaluation Of A Research Paper
But the goal of a CAS, only getting the answer, is a different from our goal, a step-by-step solution.
And the step-by-step solution requires a different architecture.
Looking further, we found math.js, a powerful and extensive open-source math library.
Its expression trees provide lots of details about the structure of the math expression, which is well suited to creating the steps we want. Its community is great, and Jos has been very responsive and supportive as we’ve been building mathsteps.
These trees can be surprisingly complicated — even a short expression like There are many existing open source projects that parse strings of math and create trees like this one.
Several of these projects are also full Computer Algebra Systems (CAS) which can provide answers to math problems, though not with step-by-step explanations.
Sympy introduces ambiguity; given a sympy tree, there are multiple user inputs that could have yielded it, which are mathematically equivalent but not necessarily the same to a student.
When building a CAS, it’s beneficial to reduce the problem to make it easier to achieve the goal.
It is important that this step-by-step solution is similar to what a tutor would show a install mathsteps: You could also just look at that math expression and use your intuition to prioritize where to start simplifying.
But a computer will understand the expression best when it’s stored in a tree.