Frequently Asked Questions
Or at least, questions I think you should be asking
- What is MathDrag'n?
- How is this different from more traditional algebra manipulation programs?
- I like <CAS of choice>. Can I get MathDrag'n to interface with it?
- Can I get MathDrag'n to display the steps it goes through to solve an equation?
- What are the plans for future development of MathDrag'n?
1. What is MathDrag'n?
The idea behind MathDrag'n is laughably simple to write down. In a nutshell, MathDrag'n is a graphical user interface for algebra manipulation of all kinds. The ideal, head-in-the-clouds goal is that all manipulations that can be performed algebraically will be easy done using MathDrag'n alone. In practice, what I am aiming for is the more modest goal of making obvious manipulations easy and hard ones straight-forward.
2. How is this different from more traditional algebra manipulation programs?
Traditional algebra manipulation programs are extremely useful programs designed to help the user solve complex math problems. Despite the wide, often bewildering, variety available, the vast majority of these are command-line based interfaces. I know for a fact that the most popular commercial programs, Mathematica and Maple, even include programming capabilities.
This functionality is extremely useful for many, many applications. I have no intention of taking this away; far from it. What they do is amazing. Instead, MathDrag'n is complementary to these programs. MathDrag'n's focus is user interface: if the user can find a program to do the more sophisticated behind-the-scenes manipulation, MathDrag'n is open to using it.
Enough of my ramblings: Here are some clear areas where MathDrag'n's interface is clearly superior to that of any algebra system I have seen.
Drag-and-drop
There have been times in the past when I have said that MathDrag'n is about drag-and-drop algebra. I imagine that when people see MathDrag'n used for the first time, they are often under this impression as well. Well, it's false! MathDrag'n is about interface. MathDrag'n's goal is to use the best interface for the task at hand. There is no need to focus on any one technique above the others.
On the other hand, as an interface, drag-and-drop has a huge appeal at an intuitive level . For anyone who has any significant experience with computers, drag-and-drop is obvious. And so MathDrag'n uses drag-and-drop. In fact, not only does MathDrag'n use drag-and-drop, but it tries to make dragging and dropping equations as simple and straight-forward as humanly possible!
There are other programs out there that will do a limited drag-and-drop. I'll be honest: I haven't compared MathDrag'n to all of them. The ones I have used have been clunky and awkward (I name no names---in fact, I remember no names). But a truly graphical equation editor needs drag-and-drop, and it needs it to be done right. I won't claim I've done the best job possible, but I have certainly tried, and will continue trying as long as improvements make sense.
Direct editing
Because of the command-line based structure, any single command in these applications is something like a sledge-hammer: it gets applied to everything in an expression, whether you want it to or not. If you want to work on just a small piece, or focus on the meaning of just one part, your choices vary from system to system, but pretty much they go as follows:
- Cut-and-paste the expression and assign it to a variable. This works pretty well in pretty much everything, but can be easily error-prone. Also, it is difficult to get the modified expression back into the original without just reentering the expression.
- Extract the expression using the algebra systems programming language. While this will work, if it is possible at all, it is overkill for 90% of the things you would want to use it for.
- Work it out by hand. This can be error-prone, but admittedly it is a tried-and-true technique. Of course, this begs the questions: Why are you using a computer algebra system?
MathDrag'n solves this problem elegantly by appropriate use of drop-down menus and dialog boxes. When you right-click (control-click for you Mac users) on an expression in MathDrag'n, a context-sensitive menu pops up with a list of commands that can be applied directly to the selection, with no side effects or changes in the rest of the equation. As an added bonus, this removes much of the learning curve many users face when challenged with a new system because the commands that apply to each expression are available in a computer-generated list rather than in a maze of help files or a manual no one has read since Noah.
Also, if there is some operation MathDrag'n (for whatever reason) is unable or unwilling to perform, editing the expression directly is no challenge. You can either double-click on any expression or simply start typing a new expression, and a dialog box will pop up allowing you to edit the expression's underlying value any way you like. The new expression you enter will replace the old one seamlessly.
At this point, MathDrag'n has merely begun to scratch the surface with what is possible with context-sensitive drop-down menus and direct substitution. There several possibilities more exciting than simply adding new operations to apply to the expressions. In particular, function identities seem like a particularly fruitful area to explore. The main reason it has not been implemented yet is because of theoretical and logistical difficulties (i.e. it is a huge project, with potentially serious caveats, best not done alone or without feedback).
3. I like <CAS of choice>. Can I get MathDrag'n to interface with it?
As for Jan. 20, 2006, the standard distribution of MathDrag'n includes the ability to link to Mathematica and Maxima. I have defined some Java interfaces and classes which define a standard for connecting to an external CAS, although the interface is still in flux as new features are added. On the other hand, I am always open to help! If you would like to make an interface to a CAS, please contact me. (I think the KernelLinker interface is fairly straightforward, but there may be some gotchas I don't know about. Also, I would like to add it to the standard distribution.). From what I've seen, as long as the external CAS can be run as a text session in an external process, it can be linked to MathDrag'n.
4. Can I get MathDrag'n to display the steps it goes through to solve an equation?
No. MathDrag'n is dependent on the underlying algebra system to solve equations. The vast majority of Computer Algebra Systems do not support this functionality, and so it is impractical at this point for MathDrag'n to do so.
In addition to all this, I honestly don't like the idea of students using a computer system to do their homework for them. This may sound funny given the program I'm making here, but the simple fact is that if you can do the problem "by hand" (e.g. step by dragging step) using MathDrag'n, you probably understand the math well enough to consider it learned, which is what we are going for. If you just jump straight to the end using the solver, then you won't have any of the intermediate steps, which is where the real learning comes in, and which should be obvious to the grader. Thus I don't consider MathDrag'n a cheating tool. There are some programs I have seen out there which solve the problem, and explain it to the user exactly what they would need to tell the teacher in order for the problem to seem to be the students entire work. This I despise. Fortunately such programs wouldn't be helpful on exams.
5. What are the plans for future development of MathDrag'n?
The most obvious developments in the future are listed here.
