Wednesday, January 28, 2009

Wednesday, January 21, 2009

Wolfram Blog : Quick-Starting Mathematica with Palettes

Wolfram Blog : Quick-Starting Mathematica with Palettes

I have taught collegiate mathematics for more than 20 years and have used Mathematica for 15 or so of these years to explore, learn, and teach. For the last eight years Mathematica has been my primary tool to write all of my exams, handouts, letters, reports, papers, presentations, and even a complete electronic textbook. New features introduced recently have been revolutionary in the teaching and learning environment and make possible the creation of materials that integrate text, typeset mathematics, and interactive figures, which can be created efficiently and used effectively in ways not possible with other software tools.

For faculty and students to benefit from using Mathematica in the teaching and learning process, they must be able to use Mathematica sufficiently well to remain focused on course concepts and not become frustrated by the technology. Without question, the main challenge I face teaching new users how to use Mathematica is helping them master the task of creating syntactically correct commands, followed closely by the challenge of teaching how to use Mathematica to write rich documents that combine text, typeset mathematics, and figures.

When the use of technology gets in the way of the teaching, learning, and writing about content, which should remain the focus of academic learning, then all involved in the teaching and learning process experience frustration! If enough example commands are provided, if the ways of Mathematica are carefully explained, and if patient help is readily available, then some new users are able work their way up the learning curve and reach a point where they can focus on the subject matter and are able to comfortably use Mathematica to explore, learn, teach, and write about the concepts. Members of this group are often able to independently deepen their understanding and use of Mathematica by relying on the Wolfram Mathematica Documentation Center and other resources; but not enough new users reach this level of Mathematica knowledge and thus do not experience firsthand the marvelous capabilities of Mathematica to explore, investigate, learn, teach, and write about interesting ideas!

What can be done to support new users as they learn Mathematica? What can be done for the new user who begins using Mathematica and has no conceptual framework of the types of basic commands available in Mathematica, and who doesn’t know what their names are or what their required and optional arguments are? The new Basic Math Assistant palette in Mathematica 7 can create templates for hundreds of commands, such as the Plot example shown below, with a few clicks of the mouse. The yellow boxed placeholders can be filled in as needed and the command evaluated by clicking the Enter button on the Basic Math Assistant palette. No syntax memorization required! The basic Mathematica commands on the palette are grouped together to help a user build a mental understanding of the different types of basic commands available, including mathematical functions, algebra commands, calculus commands, matrix commands, table/list/vector commands, 2D plot commands, and 3D plot commands.

{y min,y max}]" title="Plot[function,{var,min,max},PlotRange->{y min,y max}]" width="385" height="19">

Some people master and memorize precise command syntax quickly while others do not, and whether or not they do is certainly not related to their intelligence or inquisitiveness. Why should memorization of command names and syntax be the key that unlocks the application of Mathematica to the exploration, learning, and teaching of interesting ideas? If new users have difficulty memorizing command names, required arguments, optional arguments, and syntax structures, can you imagine the frustration they would experience when using Mathematica to create a simple plot displaying the graph of the sine function as a red curve, a phase shifted sine function as a blue curve, and tick marks on the horizontal axis Π/4 units apart and 1/2 unit apart on the vertical axis for two periods of the sine function?

Simple plot of sine function and phase shifted sine function

What can be done for the teacher who may want to create an interactive plot based on the figure above during an actual class session? Even if we assume the instructor had everything memorized and was fast at the keyboard, this sort of command is a bit too much to expect most teaching faculty to enter “on the spot” in a classroom setting. If they are teaching with an interactive whiteboard, creating such a visual would mean leaving the whiteboard and resorting to a nearby physical keyboard—not a good use of interactive whiteboard technology. Wouldn’t it be handy if the previous figure could be created quickly without needing to remember every little detail, using only a pointing device, and then made interactive with just a few more clicks? This type of command can be created completely using only a pointing device and the new Basic Math Assistant palette in Mathematica 7!

Create a template using the Basic Math Assistant palette:

{Subscript[color, 1],Subscript[color, 2]},Ticks->{Range[x start,x end,increment],Range[y start,y end,increment]}]" title="Plot[{Subscript[function, 1],Subscript[function, 2]},{var,min,max},PlotStyle->{Subscript[color, 1],Subscript[color, 2]},Ticks->{Range[x start,x end,increment],Range[y start,y end,increment]}]" width="283" height="89">

Fill in the blanks.

Fill in each yellow boxed placeholder by either typing or clicking buttons on the Basic Math Assistant palette and click the Enter button to create the figure.

{Red,Blue},Ticks->{Range[-2\[Pi],2\[Pi],\[Pi]/4],Range[-1,1,1/2]}]" title="In[1]:=Plot[{Sin[x],Sin[x-\[Pi]/4]},{x,-2\[Pi],2\[Pi]},PlotStyle->{Red,Blue},Ticks->{Range[-2\[Pi],2\[Pi],\[Pi]/4],Range[-1,1,1/2]}]" class="imageframe" width="397" height="278">

Use the Basic Math Assistant palette to create an interactive figure with the Manipulate command.

Click the Manipulate button on the palette to insert the command template Manipulate[expr,control] into the notebook, click the Input from Above button to insert the previous Plot command in the expr placeholder (or recreate the Plot command right inside the Manipulate command), click Tab to go to the control placeholder and select a control form from the Manipulator Control drop down menu, fill in the yellow placeholder boxes, replace Π/4 with Θ in the argument of the second sine function, and click the Enter button to create the interactive figure.

{Red,Blue},Ticks->{Range[-2\[Pi],2\[Pi],\[Pi]/4],Range[-1,1,1/2]}],{{\[Theta],\[Pi]/4},-2\[Pi],2\[Pi],\[Pi]/12}]" title="In[2]:=Manipulate[Plot[{Sin[x],Sin[x-\[Theta]]},{x,-2\[Pi],2\[Pi]},PlotStyle->{Red,Blue},Ticks->{Range[-2\[Pi],2\[Pi],\[Pi]/4],Range[-1,1,1/2]}],{{\[Theta],\[Pi]/4},-2\[Pi],2\[Pi],\[Pi]/12}]" class="imageframe" width="440" height="385">

This movie shows how to use the Basic Math Assistant palette to create the previous commands.

Basic Math Assistant movie--Click to view full movie

When I share with students and teaching colleagues that Mathematica is the only software I use to write notes, exams, handouts, lecture presentations, letters, reports, presentations, and so on, their response is often something like, “Are you crazy?” I have come to understand their surprise, because while it is certainly possible to use Mathematica in this way, it is not intuitive, or obvious, how to do what is necessary to rely on Mathematica as your primary writing tool. What can be done to assist users who want to use Mathematica for writing tasks that combine text, typeset mathematics, organization structures (sections, subsections, etc.), computations, static figures, and dynamic interactive figures? The functionality of the new Writing Assistant palette in Mathematica 7 can help you begin to write such rich documents and presentations—no third-party equation editor is required, neither is any other presentation software necessary; everything is built into Mathematica 7. These dynamic documents can be shared with anyone using Mathematica 7 or the freely available Mathematica Player, or a static PDF can be created from within Mathematica and distributed.

Some of my own students use the tools on the Writing Assistant palette to efficiently write their lecture notes during class in Mathematica and later email me their typeset calculus homework assignments—I have included a sample of a student homework assignment below sent in by a student who had been using Mathematica for less than three weeks.

Student homework assignment in Mathematica

The new Classroom Assistant palette in Mathematica 7 contains everything in the Basic Math Assistant and Writing Assistant palettes in addition to tools that can be used to efficiently navigate around a notebook and within an input command, and a complete onscreen keyboard for those places where no physical keyboard is available. All three palettes can be run in condensed mode to use less space on the screen.

Using Mathematica in a classroom

My experiences using and teaching others Mathematica for many years convinced me of the need for a tool to help new users learn, create, and edit Mathematica commands quickly without needing to memorize names and syntax. I felt it was important to create a tool to help others create rich documents and presentations integrating text, typeset mathematics, computations, and figures. Teaching mathematics with Mathematica and an interactive whiteboard convinced me of the need for a tool that could be used to construct commands quickly without needing a physical keyboard. Working with visual thinking students and faculty, who much prefer clicking on buttons to memorizing and using keyboard commands, convinced me that a physical keyboard should be required as little as possible for common Mathematica tasks.

The three Assistant palettes were developed to provide plenty of visual reminders and functional groupings for the basic Mathematica commands. They give quick access to commonly used interface operations, they contain button tooltips galore with information about command usage, reminders, and operating-system-appropriate keyboard shortcuts, and with them a physical keyboard is optional—especially important if you are a visually oriented user, or even find yourself using Mathematica with an interactive whiteboard in a classroom setting or Tablet PC. The three new Quick-Start Assistant Palettes, accessible in Mathematica 7’s Palettes Menu, are the product of a desire to help more people experience the benefit of using Mathematica to explore, investigate, learn, teach, and write about interesting ideas.

Quick-Start Assistant palettes in Mathematica

The three Quick-Start Assistant palettes can be seen in action in the screencasts “Using the Mathematica Basic Math Assistant Palette,” “Using the Mathematica Classroom Assistant Palette,” and “Using the Mathematica Writing Assistant Palette.”

I would love to hear your thoughts, feedback, questions, and ideas about the Quick-Start Assistant palettes—write to me at wolframblog@wolfram.com.