Re: Re: Re: my wish list for Mathematica next major version
- To: mathgroup at smc.vnet.net
- Subject: [mg60096] Re: [mg60077] Re: [mg60064] Re: my wish list for Mathematica next major version
- From: János <janos.lobb at yale.edu>
- Date: Fri, 2 Sep 2005 04:33:00 -0400 (EDT)
- References: <200509010613.CAA08845@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
There is also "Enter Subsession" under Kernel -> Evaluation and that is fairly quick with 5.1. I did not look into if you can invoke it from a program or not. János On Sep 1, 2005, at 2:13 AM, David Park wrote: > It is interesting to hear what things bother students because that is > important information. > > I'm not certain that a debugger is the best solution. Rather, I > suspect that > students have not learned well enough how to use Mathematica. > Specifically > they should learn that it is an interpreted language and not a low > level, > compiled language like C. There are certain prices to pay in having an > interpreted language, but there are also certain benefits and easy > development of routines and calculations is one of them. > > When users get into trouble they are often trying to do too much at > once. I > usually develop a calculation one step at a time and look at the > output. It > is not always what I was expecting. One can put a number of steps > together > in ONE cell, each step on a separate line. Then examine the output, > make > corrections and reevaluate. If I'm satisfied that certain steps are > working > correctly I suppress the intermediate output with a semicolon. When > that > works I usually construct a routine. > > If I have trouble with a routine, usually in the form of a Module, > I insert > Print statements to print a location and values of variables at that > location. If I want to stop at a location I insert Print[...]; Abort > []. > > However, your posting roused me to further investigate the debugging > facilities of Mathematica. I discovered there is something very > close to the > debugger that you want. It's called Dialog. It allows you to stop > at a given > point, look at the values of various variables, and continue on. > > Here is a simple example: > > foo[x_] := > Module[{y, z}, > y = x^2Mod[3, x]; > z = Sin[y]; > Dialog[DialogSymbols :> {xx = x, yy = y, zz = z, xmod = Mod[3, > x]}]; > y + z] > > Evaluating > > foo[5] > 75 + Sin[75] > > > opened a Dialog, but the result was not yet present. (This is just a > horizontal line in the notebook where you can type commands. You > could open > a new blank notebook and type the commands there.) Then entering > > {xmod, xx, yy, zz} > {3, 5, 75, Sin[75]} > > Entering > > Return > > exits the Dialog and completes the evaluation of foo[5], which > appears after > the foo[5] Input cell. > > If you have several debugging dialogs you can use the option > DialogProlog :> > Print["point1"] to print the location of the particular Dialog. > > So, why isn't that a fairly good debugger? > > David Park > djmp at earthlink.net > http://home.earthlink.net/~djmp/ > > > > > From: carlos at colorado.edu [mailto:carlos at colorado.edu] To: mathgroup at smc.vnet.net > > > I fully agree with the first item. Each year I normally teach > 3 engineering courses (2 graduate, 1 undergraduate) > that use Mathematica as one of the tools for problem > solving. Typical undergraduate enrollment: 80-100, > graduate: 35-50, so it is not a tiny sample. > > By far the 3 biggest complaints heard year after year: > > 1) Incomprehensible and untraceable error messages. > 2) Lack of a simple debugger. Doesnt have to be GUI or > incremental. Anything is better than nothing. > 3) Lack of effective interrupts. If user commands a stop, > stop instantly, wherever you are in a cell, and tell > user exactly where it did. > > These are largely beginner users, not difficult to please. > For 1) they would be ecstatic with a low-tech device > called a line number. > In[] and Out[] baffle beginners since they are dynamic. > Since they serve no useful purpose, as a teacher I would > be very happy to see that 1980's anachronism removed, > and replaced by invariant markers. > > > > ---------------------------------------------- Trying to argue with a politician is like lifting up the head of a corpse. (S. Lem: His Master Voice)
- References:
- Re: Re: my wish list for Mathematica next major version
- From: "David Park" <djmp@earthlink.net>
- Re: Re: my wish list for Mathematica next major version