When we are given a problem, we can come up with multiple valid expressions to solve it. Unfortunately, it is difficult to evaluate all expressions automatically and verify their equivalence.

Many schools use online forms that check character by character whether the submitted expression conforms with the intended solution. In many cases, the solution is declined due to slight variations of characters, despite its equivalence.

MathJudge is a solution to that problem. Instead of evaluating an expression character by character, like most online forms and quizzes, it evaluates them on multiple test cases, defined by the author of the problem (e.g., the professor). If the expression, plugged with assigned values, yields the intended value (up to 5 decimal places), then the expression is declared as correct.

For a professor to use the service, their school has to register an account. A school, regulated by an administrator, can add, and remove professors.

Each professor will be able to log in to their admin-generated account, add their own students and create new problems in the editor.

Each created student can be assigned to a class.

How does the editor work?

The procedure is simple and straight-forward.

The first part consists of adding text content (a problem statement), a title and classes, i.e., which students can view and solve the problem.

Then, the author must specify how many tests they want the student-submitted expression to go through. They must also specify the expression by default that will be used as a basis of comparison and the accepted variables (uppercase Latin letters expected to appear in both the expression by default and the student-submitted expression).

Finally, for each test case, they must input the value of each variable in order.

Once all the information is provided, the problem will be eligible for publication (i.e., publicly visible to students).

On the editor, the professor can supervise the progress of students.

Students, from their portal, will be able to view the classes created by their respective professors, according to their class.

Once a problem is selected, the student is given the problem statement, the title, and the list of expected variables in the expression.

A message will appear on the page in terms of the correctness of their submission.
Each solved problem will be tagged with a green cell ‘Solved.’

**Operators:** The system handles basic operations (additions, subtractions, multiplications, divisions) and exponentiation.

**Functions:** So far, we support the following:

MathJudge notation | Mathematical notation |
---|---|

sin(X) | \(sin(X)\) |

cos(X) | \(cos(X)\) |

tan(X) | \(tan(X)\) |

acos(X) | \(arccos(X)\) |

asin(X) | \(arcsin(X)\) |

atan(X) | \(arctan(X)\) |

abs(X) | \(|X|\) |

log(X) | \(ln(X)\) |

exp(X) | \(e^X\) |

sqrt(X) | \(\sqrt{X}\) |

In addition to these, we have the constant π (entered as