The design of a user interface to a computer algebra system for introductory calculus

We are developing a unique computational environment for use in conjunction with the two-semester introductory calculus sequence. Our system, called Newton (formerly The Calculus Companion), runs on Macintosh computers and consists of a user-friendly interface to the symbolic mathematics package Maple, supplemented by an extensive library of our own Maple code. Formulas are easily constructed and modified, appearing exactly as they do in textbooks; multiple windows allow users to see and work with several formulas at once. Formulas, graphs, and text can be intermixed on worksheets. Users do not interact with Maple directly and need know nothing of Maple’s syntax and command structure. Mathematical operations are selected from menus, with the added bonus that this makes it possible to document solutions. In addition, dialogs have been constructed to illustrate computational methods such as the chain rule for differentiation and integration by parts. As part of the project, we have also developed an interactive package for two-dimensional plotting that allows users to manipulate graphs of functions rather than merely view them as static objects. The system additionally contains an intelligent tutor that can assist users in solving problems on techniques of integration. The software enables students to concentrate on learning the important concepts of calculus, guiding them through complex problem solving requiring multiple steps, and freeing them from boring and error-prone calculations. The computer thereby encourages creativity through rapid feedback and experimentation, making the exploration of mathematics more exciting and enjoyable. ~ This work was supported in part by the National Science Foundation under Grants USE-8814017, USE-8953939, and DMS-9052242. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. ISSAC ‘92-7192/CA, USA @ 1992 ACM 0.89791 -490.2 /92/0007 /0358 . ..$1 .50 Introduction There has been much recent interest in incorporating computers into the teaching of introductory calculus (see, for example, [1,2,3]). While many educators are of the opinion that symbolic algebra systems have great potential in the calculus sequence, this software has often been difficult to use in the classroom. Current computer algebra systems have been designed primarily to assist experts in doing mathematics, rather than as an aid for teaching mathematics. This has several adverse consequences. First, students must learn a new and unfamiliar language in order to interact with the machine. The calculus curriculum is already overcrowded and teaching a computer language to students takes away valuable class time. Additionally, since students learn only a small fraction of such a language, they encounter unexpected results when portions of the system with which they are unfamiliar are inevitably brought into play. Another difficulty is that existing algebra systems are designed to provide answers and not to show how these solutions are obtained. Moreover, the procedures used are seldom those employed by students. The editors of existing computer algebra systems pose yet another obstacle for beginners. Many were designed originally for use with terminals, rather than for the multiple window workstation environments that are commonplace today. Formulas are generally entered as a one dimensional sequence of characters. In Maple [4], for example, the text string int (l/ (x”2*sqrt(l+x”2) ) ,x) is f 1 input for dx. This is both cumbersome and XN’K2 rotationally awkward. Users must also be careful to balance parentheses and to avoid typing errors. One minor mistake will often result in a cryptic error message and an entire formula must be retyped. Although virtually all current systems produce output that is prettyprinted in a two-dimensional form, these formulas cannot be intermixed easily with input in most instances. It is also difficult, if not impossible, to extract portions of expressions already entered or computations produced by the system. For example, the OP function in