A problem checker architecture that monitors user progress during a
problem-solving process and assists the user through the process (e.g.,
when requested) using common human methods of solving the problem.
Assistance can be in the form of detecting errors during the process, and
providing context-sensitive help information when the user gets stuck or
makes a mistake. The problem checker can walk the user through the
process of solving a math problem one step at a time allowing the user to
learn to solve math problems according to a number of different methods.
Rather than simply calculating and displaying the answer, the problem
checker allows the user to attempt to solve math problems, providing
direction only when asked and correction only when required. The problem
checker can recognize multiple solution methods for many common math
problems and guide the user to the solution via any of the methods.