The types of user input WIMS can accept are limited by the http protocol. They include multiple choices (menus), numerical data (real, complex, or others), text data (equations, expressions, matrices), plane coordinates (clicking on a picture). Multiple input data can be contained in one user request via the html form protocol. Input of geometric objects other than points is not supported by the ordinary html standard. Therefore this can be achieved only by text data or by using Java applets.
The capability of WIMS to process user input is limited only by that of the various software packages interfaced by it. In particular, unlike many other Internet exercise systems where user answers are merely compared with stored standard answers, answers to exercises under WIMS are mathematically analyzed, providing much more freedom for exercise design. For example, we can create exercises whose correct answers are not unique, as well as exercises with multistep answers. A sophisticated error analysis mechanism can also be built into exercise modules, helping users to understand the reasons for their failures.
Most exercises under WIMS incorporate random parameters (numerical, functional or configurational), so they are highly non-repetitive. Also, they are usually configurable by several configuration parameters, intended for teachers to set up the level of difficulty of exercises for their students (see Page 7).
Users through the Internet are often not very strict about syntax rules when they input mathematical expressions. For this reason, WIMS has a mechanism to automatically correct common syntax "errors" whenever there is no ambiguity about the intention of the user. For example, 2x is corrected to 2*x, sint is corrected to
sin(t), (x - 1)(x + 1) is corrected to (x - 1)*(x + 1), etc. In ambiguous situations, such as x2+1 or x^1/2, a warning message prompts the user to enter x^2+1 or x^(1/2), if the intended expression is x2+1 or x1/2, respectively.
In any case, whether to apply this correction mechanism or not, and how, is decided by individual applications, according to context.
Rendering of Mathematical Expressions
WIMS has an advanced mechanism to allow dynamic and efficient insertion of mathematical expressions into the output page. Some programs, such as Latex2html, process a source file and produce a static image file, referenced by the resulting html file, corresponding to each mathematical expression. WIMS, on the other hand, processes mathematical expressions differently according to the content of the expression. If, for example, the expression is a polynomial, then simple html tags can be used to render it. Otherwise image files can be generated "on the fly" to represent the expression. In this way, WIMS supports TEX-rendered expressions that are not fixed.
When combined with the error-correction mechanism (see 2.1) for input, this becomes a very convenient means for mathematical communication on the Internet. This capability is implemented in the discussion forums under WIMS: The user can write mathematical formulas freely and have these formulas automatically rendered correctly for viewers. The interested reader may look at the WIMS Comments Forum for this feature -- click on "Unformatted view" under a message to see the suggested input syntax, or compose a message to see how it works.
When MathML becomes a reality, WIMS will be ready to automatically recognize MathML-capable browsers and send them MathML-coded mathematics formulas instead of TEX-formatted image files.
Dynamic Animated Graphics
WIMS can also generate animated graphics "on the fly." Three programs can be used for this purpose: Povray, Gnuplot (see Page 5), and a drawing program included in the WIMS package. While all three can generate animated graphics dynamically, the most spectacular results are achieved with animated ray-traced surfaces, which theoretically can be drawn online. However, current computing hardware is not powerful enough to generate high-quality animation sequences with reasonable delay times. This capability will automatically become available once the server is installed on a more powerful computer.
As an example, we have put up a small gallery of animated surfaces generated by WIMS. They were produced after widening resource restrictions on a private installation of WIMS.
The number of simultaneous accesses is limited only by the server resources. This limit varies according to the speed of the server and the network connections, as well as the nature of the activities. For very intensive activities, such as factorization of large integers or generation of ray-traced images, only a few accesses are enough to saturate a server.
To illustrate a more ordinary situation, the home site of WIMS is actually a bi-processor Pentium III running at 500MHz, with 256M DRAM. We have been using it for everyday teaching in Université de Nice - Sophia Antipolis. The load often goes up to more than 60 simultaneous connections, by students working on exercises of different kinds. In such situations, the hardware load usually goes up to around 40%, which seems to indicate that there is still plenty of room for more load. However, in one situation, when all 60 student stations were working on computation-intensive exercises, the server was at near-saturation (200% average load).
WIMS allows site managers to set up client priorities. When the work load goes up, connections from low-priority sites will be refused, leaving only priority connections.