MathGroup Archive 2006

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

Search the Archive

Re: Recommended learning exercises for beginners?

  • To: mathgroup at
  • Subject: [mg64162] Re: Recommended learning exercises for beginners?
  • From: Paul Abbott <paul at>
  • Date: Fri, 3 Feb 2006 01:03:49 -0500 (EST)
  • Organization: The University of Western Australia
  • References: <drs76a$h0h$>
  • Sender: owner-wri-mathgroup at

In article <drs76a$h0h$1 at>,
 "David Park" <djmp at> wrote:

> I don't see that Buchberger is saying anything different than: Prove a
> theorem, then use the theorem.

Pretty much agree with this paraphrasing. But it is interesting that the 
debate on how to use of CAS in teaching still goes on.

> Students should be able to derive a result, or see how something is done
> with detailed steps, but afterwards employ a routine that is more convenient
> and hides the steps and which might have much more detailed code that
> handles special cases, or does error checking and other matters. 

Perhaps -- but not always. For example, do we expect students to 
understand GroebnerBasis and CylindricalDecomposition before we let them 
use Solve and Reduce? Also, as you would be aware, Integrate uses 
methods that are not taught to undergraduates and showing the steps in 
the computation would be unintelligible to most Mathematica users -- yet 
the result returned by Integrate often is intelligible and useful. I 
realize that these examples violate the WBBB principle.

> If Buchberger is saying that anything special is needed in the CAS software,
> it is simply that students be able to do the elementary operations that
> underlie their subject matter.

With the point that elementary is a moving concept (and hopefully using 
a CAS, one that moves faster than without).

> There are plenty of gaps in Mathematica that make things difficult for
> students.
> Take the case of linear algebra through the manipulation of matrices.
> Mathematica has all kinds of nifty routines but also has significant gaps. I
> would like to easily create a matrix structure where I adjoined a given
> matrix to a unit matrix, add a column on the left, add a row on the top,
> perhaps add another column of labels and row of labels. 

The building blocks for this are there using BlockMatrix in  


For example, here is an augmented matrix:

  am = BlockMatrix[{{ {{a,b,c},{d,e,f},{g,h,i}}, IdentityMatrix[3] }}]

Note that one can use 2D input and output in TraditionalForm, and the 
argument to  the BlockMatrix can be a matrix of matrices (another reason 
to use TraditionalForm).

> I would like to be able to display this array with divider lines between the different
> portions. 

This is not hard to do (this code will be improved by others):

DisplayMatrix[m_List, n_] := DisplayForm[StyleBox[GridBox[m,
 GridFrame-> 1,    
 ColumnLines -> (KroneckerDelta[#,n]& /@ Range[Last[Dimensions[m]]+1])], 
   Background -> GrayLevel[0.8]]]

 DisplayMatrix[am, 3]

This could be set up as the default DisplayForm, if desired.

> Perhaps the display should be possible in a separate window, and
> for big matrices I would like to be able to easily shift between displayable
> portions. (This is one place where an added GUI would be useful and
> natural.) 


> Then I would like a number of elementary commands such as adding a
> multiple of one row to another row, 

Clearly trivial. Here we add 3 times the first row to the second row.

 am[[2]] += 3 am[[1]]

 DisplayMatrix[am, 3] 

> divide out common factors from a row if
> it is an integer matrix, or normalize on a pivot element, do a pivot step on
> one element over a specified range of rows, do a diagonalization over a
> given set of rows and columns, dot the left hand column into the columns of
> the matrix to generate the upper row. These are the kinds of things that
> students should be able to do. Maybe some of them can be done with Part
> expressions but it would be better to have specific commands. It takes more
> than a little good code to implement all these things, 
> especially the display. 

No, not that much code -- and I would bet that the code for all this 
functionality can in Mathematica already, on MathSource or found via 
Google searches.

> Maybe they should just use Excel?

I was not aware that you could do _all_ these things in Excel in a nice 
graphical way? I would expect that there are already specific software 
tools for doing exactly what you describe here -- but they are likely to 
be restricted to numerical linear algebra, and are not easily extensible 
so as to demonstrate, say, matrix decompositions, etc.

> There are plenty of other examples. The folks at WRI can't do everything;
> they have to concentrate on the more important tasks. This creates
> opportunities. In the mean time things are far from rosy for students.

I disagree. Learning a tool like Mathematica is a life-skill, useful for 
all quantitative disciplines and topics.
> Yes, students will improve their Mathematica skills as they use it. But
> still, far too many students are asked to undertake difficult subject matter
> without adequate Mathematica preparation and with software that is not
> complete enough for the purpose.

Agreed -- but I don't think improving Mathematica along the lines you 
are arguing for will overcome the problem that you see. See, e.g.


Paul Abbott                                      Phone:  61 8 6488 2734
School of Physics, M013                            Fax: +61 8 6488 1014
The University of Western Australia         (CRICOS Provider No 00126G)    

  • Prev by Date: Re: SetPrecision causes logical comparisons to fail in Mathematica 5.1 on Mac OS X?
  • Next by Date: Re: FindFit and NormFunction
  • Previous by thread: Re: Re: Recommended learning exercises for beginners?
  • Next by thread: if I open multiple files in Mathematica