We describe why and how Mathematica technology was added to, and is applied in, a web-based learning system for use in mathematics and other courses.
Online Web-based Learning (OWL), developed at the University of Massachusetts, includes powerful authoring and course management tools that allow instructors to deliver problem-based assignments over the web to students, provide immediate feedback, and store and process the results for assessment purposes. Predating many other web-based learning systems, OWL was originally developed for chemistry and then extended to a few other subjects. More recently it was introduced into a large-enrollment applied calculus course, where it has dramatically improved student retention rates and significantly increased student performance.
OWL already provided some basic mathematical functionality but required enhancements in order to be used effectively not just in conventional question-and-answer assignments, but also in new types of OWL materials for calculus: ďdiscovery modulesĒ designed for teaching fundamental concepts and adaptive tutorial modules for instruction in concept-related problem-solving skills.
With support from a course curriculum and laboratory improvement grant from the National Science Foundation, the team of content authors and OWL infrastructure developers decided to incorporate Mathematica technology as part of the OWL backend. This technology is used to generate displays of mathematical expressions and graphics on-the-fly as required especially by parameterized OWL questions, accept linear input of mathematical expressions by the student and then display the expressions in conventional 2D mathematical notation, evaluate such input for comparison with correct answers, and control interactive graphical tools used as part of discovery modules.
In this presentation we give examples of these types of Mathematica usage in OWL from the viewpoints of both student and author and explain and illustrate in detail the technology employed.
Although a could handle the sort of symbolic and graphical input and output that was required, the new tools to enhance OWL had to be more tightly bound to the existing OWL system, which already could generate web pages on-the-fly. So the core of the technology actually employed is the Wolfram Research J/Link libraryóand hence the MathLink protocolóby means of which a Java routine obtains a Mathematica kernel as needed, communicates with the kernel to obtain results, and then releases the kernel.
To develop Mathematica-enabled OWL materials, the content author typically works directly with a free standing Mathematica system and then copies and pastes the constructed Mathematica expressions for a question into the OWL authoring tool; as with all specialized input and output in the system, the author marks the expressions with OWL macro tags that include information as to the graphics or other expression types. The question is then stored in the OWL question repository. When the user requests the question or submits an answer to it for checking, a servlet uses J/Link to cause Mathematica to evaluate the expressions and produce an image, which is returned and typically embedded into an HTML page as an IMG object. That page is what the student sees in the browser as presenting the question or answer feedback.
When invoking the evaluator to check if the studentís answer is correct, the OWL system uses a SOAP client/server architecture. The SOAP server unpacks the parameters and verifies data including the studentís response and the correct answer expressions, obtains a Mathematica kernel, creates a Mathematica expression for evaluating the correctness of the response, and returns a response of correct or incorrect. To render an image from a Mathematica expression, whether of a graphics object or just a mathematical expression, OWL uses a Java servlet to produce an image from the Mathematica expression. When the servlet receives from OWL a request for rendering, the servlet parses from its parameters both the action to be performed and the Mathematica expression to be rendered, obtains a kernel, calls the kernel to render the image (wrapping the expression in a HoldForm in case of a mathematical expression for display), and returns the image received from Mathematica as part of the userís browser page.
The graphical tools in the discovery modules produce HTML pages from an XML source template, which includes Mathematica expressions to render along with HTML widgets (text input boxes, radio buttons, and so on), which the student uses to vary the parameters to those expressions. The module author copies, modifies, or creates new instances of that template and inserts the relevant Mathematica code into it. When the student views a discovery module, OWL calls a servlet to render the graphical tool. That servlet transforms the XML source into HTML and sends it to the userís browser. The HTML page returned includes HTML images whose source is a servlet that generates the notation and graphics images, as before. When the student manipulates the HTML widgets, requests are made to the servlet to update the images on the page.
The functionality for applied calculus added to OWL through use of Mathematica is now used as well in courses in resource economics and computer science; it has just begun to be used, too, in a mathematics placement test administered to all entering undergraduates at University of Massachusetts Amherst. We indicate some directions for future OWL-Mathematica development, for the day when more web browsers support the needed capabilities, namely, direct use of MathML rather than images to render mathematical expressions and use of SVG to render graphics more efficiently.