MathGroup Archive 2000

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: RE: Mathematica for High School Students

  • To: mathgroup at
  • Subject: [mg24191] RE: [mg24127] RE: Mathematica for High School Students
  • From: "David Park" <djmp at>
  • Date: Wed, 28 Jun 2000 22:51:11 -0400 (EDT)
  • Sender: owner-wri-mathgroup at

> -----Original Message-----
> From: Ersek, Ted R [mailto:ErsekTR at]
To: mathgroup at

> One of the notebooks Dave Park provides uses Map and pure functions to
> manipulate equations step-by-step. This sort of thing equation
> manipulation
> is much easier to follow once a package by Roman Maeder is
> loaded.  Hence we
> don't need Map and pure functions for this application. Download
> the package
> from:
> After down-loading the package I can do the following:
> In[1]:=
> <<EqualThread.m
> In[2]:=
> 3x+4y/b==6(x-y);
> In[3]:=
> %-3x
> Out[3]=
> (4*y)/b == -3*x + 6*(x - y)
> In[4]:=
> %*b/4
> Out[4]=
> y == (b*(-3*x + 6*(x - y)))/4
> In[5]:=
> Factor[Map[Expand,%]]
> Out[5]=
> y == (3*b*(x - 2*y))/4
> If Expand has the Listable attribute (and it normally doesn't) Map isn't
> needed in the last line above. Once the EqualThread package is loaded the
> lines above are sufficiently intuitive that I might use something
> like this
> if I were a 9th grade algebra teacher!  Except I might add a line to
> (init.m) that gives Expand the Listable attribute, and instruct
> the students
> to copy it to their computers.

Well, Ted and MathGroup, I would like to continue the discussion. I think
that there are two areas in which Mathematica presents obstacles to young
students (and newbies of any age): the first is manipulating equations and
algebraic expressions; the second is making simple geometrical diagrams.
These are things that we KNOW how to do, but it is difficult, at first, to
use Mathematica on these simple tasks. Part of the fault for this is that
there are so many topics to cover that the (already long) Mathematica Book
has to touch many things lightly.

So let's first talk about manipulating equations and algebraic expressions.
Ted recommends the Maeder package which Threads the Equal expression. I
think that there is also another item on MathSource which uses a palette to
solve an equation step by step; however, it is restricted to adding and
subtracting 1 or multiplying and dividing by x, so works only for a very
small set of equations. I think both of these efforts, especially the
palette, are a step in the wrong direction. They are attempts at getting
Mathematica to do what the student already knows how to do by not learning
Mathematica and modern methods. They very quickly reach their limits. As was
shown by Ted above, Threading Equal doesn't work for everything and
eventually he had to use Map. So why not bite the bullet straight off and
learn pure functions, Map, Apply and some of the other functional
constructs? They're not difficult; they're easy.

In my notebook (which is available at my web site), I first solve the
equation using Solve, but then ask how we would do it ourselves step by
step. I then have a section on pure functions, showing how they work on a
number of simple examples. I then have a section on Map. Then I show how we
can use them to solve equations step by step. At the very end, after having
first done each step in a separate cell, I use this solution:

3x + 4y/b == 6(x - y)
# - 3x & /@ %
Expand /@ %
# + 6y & /@ %
Collect[#, y] & /@ %
#/(6 + 4/b) & /@ %
Simplify /@ %

3*x + (4*y)/b == 6*(x - y)
(4*y)/b == -3*x + 6*(x - y)
(4*y)/b == 3*x - 6*y
6*y + (4*y)/b == 3*x
(6 + 4/b)*y == 3*x
y == (3*x)/(6 + 4/b)
y == (3*b*x)/(4 + 6*b)

Yes, this is only a start at learning how to manipulate expressions with
Mathematica; but it employs tools that the student will eventually have to
learn anyway, and which he can always use. Students already know that you
can perform the same operation on each side of an equation. Pure functions
and Map are the most direct implementation of this idea that I can imagine.
It is only a short step to using MapAt to modify a specific part of an
expression. Gee, Ted, you even gave me tremendous help in designing a
positions palette that makes it easy to identify positions of
subexpressions. Being able to manipulate algebraic expressions is something
people expect to be able to do with Mathematica. They can do it, once they
learn the techniques.

The second difficulty is with making simple diagrams. Mathematica is very
good at making what I call set-piece plots. But it is often difficult to
make simple geometrical diagrams, especially if they contain curves as part
of the diagram. I believe that the regular Mathematica graphics paradigm,
once you attempt to go beyond the set-piece plots, is confusing to
beginners. For example, if you want a diagram with a curve, you Plot the
curve and then put all the other elements in a Prolog or Epilog option, even
though they may be, by far, the major part of the diagram. If you want to
combine curves or elements produced by different types of set-piece plots,
say Plot, ImplicitPlot and Parametric Plot, or with different plotting
iterators, then it becomes even more arcane as everybody knows. My
DrawingPaper packages are an attempt to solve this problem. They put curves
and surfaces on the same level as graphics primitives and directives and
they can all be directly combined in one Show statement, in the desired
order. The curve primitives can also be directly manipulated without having
to extract and reinsert them into a Show statement. But, whatever approach
you wish to take, I think this is a problem area for students and beginners.
Mathematica is capable of producing beautiful and wonderful graphics.
Graphics and animation are a great tool for understanding mathematical and
scientific concepts. It is important to work on the problem of making
graphics easier, more intuitive, and accessible to beginners.

David Park
djmp at

  • Prev by Date: Re: Re: Conversion of Orderless functions to non Orderless one
  • Next by Date: Re: is there really no efficient way to delete an element from a list??
  • Previous by thread: Re: Mathematica for High School Students
  • Next by thread: TableForm