Re: Re: Re: my wish list for Mathematica next major version

*To*: mathgroup at smc.vnet.net*Subject*: [mg60094] Re: [mg60077] Re: [mg60064] Re: my wish list for Mathematica next major version*From*: Pratik Desai <pdesai1 at umbc.edu>*Date*: Fri, 2 Sep 2005 04:32:58 -0400 (EDT)*References*: <200509010613.CAA08845@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

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. > Hi David, In most cases in the (atleast in the) engineering curriculum rarely offers courses particularly focussed on learning a language or a package. The student is expected to learn the language/package as he uses it in the course. So any little help at the earlier stages goes a long way in determining the success of the students ability to master the package/language and indeed the course material. Althought the tutorial offered by mathematica is quite good, essentially more interactive tutorials could go a long way in helping students learn Mathematica the right way. But on the flip side of the coin, I have learnt a lot about mathematica just trying debugging messages and understanding the output, and sometimes has even helped me figure out conceptual errors in my approach. Best regards Pratik Desai PS: Thank you for calling my attention to Dialog.....pretty neat > 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. > > > > > > -- Pratik Desai Graduate Student UMBC Department of Mechanical Engineering Phone: 410 455 8134

**References**:**Re: Re: my wish list for Mathematica next major version***From:*"David Park" <djmp@earthlink.net>