EDU was designed from the ground up with STEM education in mind. Strong support for mathematical content and notation was a key feature throughout the product. This included grading of free response math questions on their syntactic content, rendering of static and dynamic pages with mathematical notation, and WYSIWYG input of math expressions.
EDU graded free-response mathematical questions by parsing the student response
and comparing it mathematically with the correct answer. Thus, apparently different
responses which represented the same mathematical statement were recognized
as equivalent.
For example, if the correct answer to a question was x^2 + 2x + 1
then EDU would
recognize as a correct answer not just that exact string, but also
1 + 2x + x^2
, or even (x+1)^2
. This capability, available from the first
version of Wiley WebTests in 1998, was arguably
the first of its kind in any online assessment system.
The grading algorithm used a one-sided Monte-Carlo algorithm employing Interval Analysis to control for accumulated rounding errors. As a result this could guarantee 100% certainly of no false negatives (i.e., a response graded as incorrect when in fact it was correct) and, from research with thousands of actual student responses, the grader was found to have also produced zero false positives (i.e., a response graded correct when actually incorrect). In this research EDU's grading algorithm was found to be more accurate than grading by a Computer Algebra System (Maple). Pedagogically, the solid guarantee of no false negatives was important to build student confidence (and by extension, instructor confidence) is the fairness of the computer grading.
See this paper for details of the grading algorithm and its evaluation.
While mathematical equivalence of formulas alone enabled a huge range of free-response STEM content to be assessed, in practice a number of variants proved necessary to cover the range of content typically found in STEM homework questions. Full details are here, but a few examples include:
Limit the evaluation of trig and log functions, so that questions such
as What is sin(Pi/2)?
can't be answered by simply typing sin(Pi/2)
,
Recognize that two correct answers to an indefinite integral in calculus may not be equal, but instead may differ by a constant,
Recognize when one equation can be derived from another, e.g.,
x^2+y^2=r^2
is equivalent to x^2+y^2-r^2 = 0`.
During the time I was developing EDU and and its precursors at UNL and Brownstone, i.e., 1996 - 2005, the situation with presentation of math notation on the web was pretty dire. At that time most websites presented static math content as embedded GIF images derived from LaTeX code, often leading to quite horrendous font mismatching. Also this was quite unsuitable for dynamic webpages, as each page-render required a server call and a relatively expensive LaTeX process to be run.
I had used the embedded GIF approach in my 1996 Analysis WebNotes site (and mitigated some of the styling problems with a custom CMS builder called Webify), and I was eager to make use of the emerging MathML standard. However although the standard was proposed in 1998 and V1.0 was published the following year, native browser support was, and remains, very spotty.
Fortunately at about the same time, Robert Miner, then at the University of Minnesota Geometry Center, develoiped a Java package called WebEQ which could render MathML, both as an embedded Java applet, and as a server-side GIF. In addition it provided a WYSIWG math editor. WebEQ became an absolutely indispensible component of EDU's STEM content management. (Of course, in modern sites, including this one, MathJax would play a similar role, but it did not appear until over a decade after WebTests/EDU first launched.)
Using WebEQ, EDU provided server-side rendering of MathML embedded in HTML for all of its content. The pipeline was:
<math>...</math>
tags.<math>
tags, created a GIF of
the MathML and replaced the <math>
tag with an <img>
tag pointing to the
appropriate GIF.<math>
tags on each load, because
the existence of randomized question meant the page content was always
potentially dynamic).Client side rendering (such as provided nowadays by MathJax) would have been preferable. However the only option then available for that was to embed WebEQ applets for each block of MathML on the page. Due to the resource requirements of Java applet rendering, this didn't scale to more than a few MathML elements per page, which wasn't practical for our content which typically had dozens of math blocks.
EDU offered students two ways to enter mathematical notation. The first
was to use the kind of linear syntax employed by the at that time ubiquitous
graphing calculators such as the TI-86. Students would enter their text
in a plain text input using a syntax like
x^2 + 2x + e^(-x)/(1 + x^2)
. Although the syntax was simple and the students
were usually somewhat familiar with this way of writing math expressions from
graphing calculators, the risk of making a small slip, often involving missing
or unbalanced paretheses, was a constant source of frustration.
This risk was mitigated by including a preview feature for the linear formula entry. The student could click preview after entering their answer and a popup would display the result as understood by the system, in standard mathemtical formatting. This enabled students to catch simple typos in the answers (compare the two screenshots for example).
The other mode for students to enter math was with the WYSIWYG entry widget. This supported superscripts, fractions, and a range of mathematical symbols.
Students set their preferred entry style using the popup shown on the left.
EDU's math question editor provided a WYSIWYG MathML editor.
The MathML editor was accessed with the "Math Edit" button which showed on the editor panel for mathematical questions.
The Visual math editor consisted of three panes. On the botton left was the raw HTML (including MathML) which could be edited directly. On the bottom right was a WebEq MathML visual editor. This could edit a single block of HTML at a time. The arrow buttons between the two panes were used to transfer edited blocks of math code between the HTML text and the math editor. The top pane showed the HTML + MathML as rendered by the server.
The resulting question could be previewed, published, or re-edited.
While the WYSIWYG workflow was valuable for instructors creating or editing small numbers of questions, it was not practical for bulk question bank creation of the sort needed by our publisher partners. For this use case a text-based publishing workflow was preferable, enabling revision, collaboration, version control etc with standard tools. I developed a suite of LaTeX macros which ingested question bank content in a readily understood structured LaTeX format and output EDU question bank files, in which the question text had been converted to HTML, together with embedded MathML for the LaTeX math elements. This, in conjunction with EDU's server-side MathML rendering, was suitable for publication on the web.
\begin{question}{Formula}
\qutext{What is the derivative of $x^3+3\cos(x)-1$?}
% Use calculator syntax for the answer, NOT TeX:
\answer{3x^2-3*sin(x)}
\end{question}
\begin{question}{MultipleChoice}
\qutext{$3\log x-2\log y=$}
\choice*{$\log\left(\displaystyle\frac{x^3}{y^2}\right)$}
\choice{$\log(x^3y^2)$}
\choice{$\log(3x-2y)$}
\choice{$\log(x^3-y^2)$}
\end{question}
The LaTeX macros package provided a workflow for creating, editing and managing the full range of EDU question types, and enabled management of testbanks consisting of hundreds of STEM-focused questions.
The MathML dialect of XML comprises two distinct modes of representing mathematical objects: Presentation MathML and Content MathML. EDU made use of both of these.
The first, Presentation MathML, describes how a mathematical object should be rendered on the page, and is useful for display of formulas, etc. EDU used Presentation MathML in its WYSIWYG authoring flow (above) and in its LaTeX authoring workflow (above). The EDU server provided server-side rendering of HTML with (Presentation) MathML.
On the other hand, Content MathML gives semantic structure to a mathematical
object. EDU could take a formula in "calculator syntax", e.g.,
x^3-2e^-x
, and convert this to Content MathML for rendering on the page.
This enabled EDU to give well laid-out 2D presentation of the
student's response or of the correct anzswer to a question (see, e.g., the
preview capability described above). In addition it supported randomized questions
in which the whole structure of a mathematical expression - and not just
a couple of numerical parameters - was built using randomizing algorithms.
Going in the other direction, EDU could parse Content MathML into a mathematical formula, which was necessary to support the WYSIWYG math input described above.