

Coursera: Launching Mathematical Expressions Checking - yarapavan
http://blog.coursera.org/post/32206332782/x-y-is-equivalent-to-y-x-launching-mathematical

======
mahmud
This is almost as old as automated theorem proving. There exists systems for
mathematics, programming, music, essays and various analytical fields of
study.

I think labeling it an "expression" checker is a good thing, as it narrows
down its purpose and scope.

------
gosub
In the _symbolic_ case, general functional equivalence is undecidable, see:
[http://stackoverflow.com/questions/1132051/is-finding-the-
eq...](http://stackoverflow.com/questions/1132051/is-finding-the-equivalence-
of-two-functions-undecidable).

In the _numeric_ case, it should be enough to rewrite the question in a
different form until the symbolic checker gives up.

In the _practical_ case, trying to game the system would be more difficult
than finding the actual solution.

~~~
thebooktocome
I recently took Sedgewick's course on algorithms, and you wouldn't believe how
hard people on the forums worked to game the grader.

~~~
scarmig
Just to be clear... that's a good thing, right? =)

~~~
thebooktocome
Not necessarily.

So the grader usually tested how much memory any exercise used over several
data sets, and fit it to a quadratic. So one had to use, e.g., less than N^2 +
16N + 64 bytes.

One exercise specified that a data structure used ints, but the grader only
tested it on values that could be stored in a short. The extra spare memory
allowed for an alternate implementation using a more complicated data
structure.

The point of the exercise was to figure out the somewhat trivial optimization
that allowed the simpler data structure to run in roughly the same time, not
to learn the more complicated data structure. After the more complicated
solution was posted to the forums, there was really no incentive for people to
figure out the simpler method.

------
rz2k
The database class before it was explicitly Coursera included exercises using
relational algebra where any expression that produced correct answers in the
general case was correct.

