Over at Biocurious, Philip is thinking about digital notebooks, and has found a system that works for him:
My computer algebra system of choice is Mathematica, and because of Mathematica's notebook system, it became extremely straightforward to include sufficient commentary among the analysis and calculations. The important "working" details of my day are recorded on paper that is heavy on scribbles, numbers, and comments on the minutiae of a particular instrument or measurement, followed by references to specific data files collected that day. The Mathematica notebooks where I visualize and analyze data are then filled with the relevant comments about the data collection and subsequent analysis, but not usually the random scribbles that you need to keep on paper while leading-up to and actually taking a measurement. Having everything organized by date makes it simple to correlate between paper and digital notebooks.
It's not a bad idea, save for one thing: Wolfram Research are utter bastards. even by the standards of scientific analysis software makers, they're bastards.
I say this because we have a site license for Mathematica. You might think that having a site license would reduce the hassle of dealing with the program, but Wolfram is the only company I've run across that manages to make a site license burdensome.
It's true that the license allows us to install the program on lots of different machines. Activating it, however, requires us to enter a numeric password on each machine. And the passwords are only good for one calendar year-- every January, we need to get the new password from ITS, and re-enter it on all the machines. And, as a bonus, the passwords they use are long enough for every atom making up the campus to get its own unique identifier.
I thought that this year, the new version of the program might've fixed this problem, as they've moved to a new server-based license scheme. But no, it turns out that any hiccup in the network will completely hose the license, and shut the program down. Which is definitely a sub-optimal solution to the license issue.
Mathematica is a good program, and allows you to do some cool stuff. The whole reason I'm wrestling with the goddamn licenses is that I use it in my modern physics class, so the students can look at wavefunctions for a finite square well. The educational benefit is enough to outweigh my annoyance at getting the program to work.
I would never consider using it to record research results, though, because there's just no telling what new and excruciating way they'll find to screw up my access to my data.
Since you have a site license, I assume that means other parts of the college have all agreed to use this single product for all math-related classes on campus? If not, why not look at alternatives, such as Maple.
And what about Mathcad? You have an engineering school, so you might already have a license for it. My grads say it is not difficult to learn, and it it can do what they have to do for complicated AC network calculations, it can certainly handle your toy problem in modern physics.
Not to be overzealous, but I maintain that if some portion of a curriculum becomes entirely dependent on one specific brand-name product rather than a general class of product (i.e. "MicrosoftÂ® WordÂ® 2007" rather than "a word processor", "AdobeÂ® PhotoshopÂ®" rather than "a graphics-editing program"...etc.), that part of the curriculum has moved away from a fully "educational" purpose and is instead merely "vocational training".
Not that vocational training isn't useful, but it's not the sort of thing I look for in a science class (as opposed to a "technical" class).
(Not that I imagine the expectations for science classes of a random not-even-a-physicist commenter on your blog has much direct relevance to your own curriculum. Just a general observation, that's all.)
Any good open source alternatives? I.e. freeware?
I have a simple MathPad program ($10) on my Palm PDA that is great but it needs a Windows version IMO.
I haven't used MathCad, but I have used Maple and Matlab, and neither one of them is a real competitor for Mathematica. They are for different things -- I'd rather use Matlab for numerical analysis, and Maple for simple programming (like Fortran but with more built-in functions.) But Mathematica is the only software of its type, as far as I can tell. There is no general class -- it's as if Word was the only word processor on the market.
If there is another program that will allow me to feed in systems of equations (algebraic or differential) in symbolic form, written in the same notation I'd use on a piece of paper, and then solve them simulatenously and give me simplified symbolic (as opposed to numeric) solutions, then allow me to plug in different numbers and plot the results with an extremely powerful plotting engine, all while giving me a mathmatical mark-up language capable of annotating every step for others to use... Well, I've never seen it. And I've barely scratched the surface. I download other people's Mathematic notebooks and look at their animations and interactive worksheets, all embedded seamlessly.
The licensing may be a pain, but they can get away with it because they created a really unique and powerful product.
I agree with the commenters - I am not going to 'buy into' something unless it is open source (or ridiculously cheap).
What Mary said.
Mathematica is really the only program out there that does what it does. Matlab is ok, but it's much more of a data analysis program than a symbolic calculation program.
I could code something up in Matlab to solve the Schroedinger equation numerically, but the result would most likely be much more opaque than the Mathematica version. I'm not sure what the license arrangement is with Matlab, either-- I know we have it, but I don't know how many can be running at any given time.
I don't really disagree with the characterization of teaching Mathematica as "vocational training," but I don't think that's a bad thing. Part of what we do is to teach students the skills they need to do physics, should they choose to continue on to graduate school, and Mathematica is powerful and versatile enough that it's used almost everywhere. Learning to use Mathematica at least a little bit is every bit as important as learning to do certain classes of problems with pencil and paper.
Every time I renew my Mathematica license, it's been a multi-day process requiring several exchanges of e-mails with someone at Wolfram Inc.
It's the only program in my experience where license renewal is such a hassle.
I personally prefer Matlab for numerical work, but I second everything said in favor of Mathematica for symbolic work.
And I see nothing wrong with teaching students to use a particular program in a class: The program is a tool for studying the material, and so you need to know how to use the tool. Now, the real intellectual training comes from using a variety of programs and seeing the common and unique features so you become versatile enough to pick up new tools throughout life. However, it's probably a bad idea to use several different software packages in the same class. As long as the students are exposed to multiple tools during their studies, I say it's all good.
Finally, it's nice to hear a Mathematica user say negative things about Mathematica. You wouldn't believe the crap I took at a conference on teaching computational physics, where I said to somebody at dinner that I like Mathematica for certain things but find Matlab better for others. I was subjected to an interrogation on whether I had tried a list of tools in the latest version of Mathematica. No, I hadn't tried most of them, but I didn't feel an ethical obligation to exhaustively explore every feature of every program before developing a preference.
I can't say I've had any experience with licensing issues with Mathematica, probably because I have the student version, where I don't have to renew the license at all (though it expires when I finish my PhD). For less than the cost of one of those Modern Physics texts you were talking about, I think it is a pretty good deal.
I also worry a bit about the open/closed argument, but as I'd mentioned on Biocurious, as long as there are free readers of Mathematica notebooks available, the specific operations on my data are reproducible in basically any other computer algebra system. And of course, the raw data are always kept in fully open formats.
It's frustrating that there is no open-source software that can compete with the functionality of Mathematica. Having said that, general purpose math software is difficult to implement, so it is perhaps not surprising. The closest thing I know of is Octave, which is an open-source clone of Matlab. It does pretty well at running Matlab code, so I usually install it on all my machines for doing quick numerics and data analysis. For example, I can use it to redo graphs for presentations at the last minute on my laptop, without having to bother logging into the campus network and sshing into a machine which has a licensed copy of Matlab.
I am not in university and don't wish to shell out the big bucks for Mathematica or Matlab; I find myself using a combination of Maxima and R for the sorts of things one does with Mathematica. It works okay, but if I were doing it on a daily basis I would probably give up and pay for Mathematica.
I had the student version when I was a student, and then within a year of your graduation, Wolfram lets you pay a few hundred dollars to convert a student version to a full professional license, which I also did. The professional license is nice: you have your license number and password and you install it on a machine and it works, forever. No mathkey or other machine-dependent re-registration. It is still, in principle, a single-machine license, but they don't even make you get a new code when you upgrade your machine.
Of course, they hit you up every chance they get. You can pay much more money, annually, for "premier service" which is basically a subscription to upgrades, but if you decide not to renew you still get to keep whatever the most recent version you got was. If you don't buy premier service, then you pay for every upgrade, even the N.x.y+1 minor upgrades. And very occasionally, usually several months after a version has been released, they might offer the non-service upgrade at a reasonable price: I sat on v5.2 for several months, and eventually they offered v6 for about $200. They don't always offer upgrade paths for older versions, so you either need to be content with the version you have, or keep sending them money to stay current. So yes, as Chad said, they are bastards.
An interesting rant on the topic of Mathematica notebooks - http://stoutfellow.livejournal.com/383929.html. It's basically about how Wolfram screwed up historical notebook data in a version upgrade.
There is supposed to be a gnu version of Macsyma, but I don't know anything about it.
According to my former students, MathCad will solve very large and "interesting" problems (such as an actual bridge truss or automobile suspension design subject to dynamic loading) from equations input in a fairly natural way, and its professional version passes death-and-life application quality assurance tests. However, I have never heard anything about its graphical output nor do I know what the free version will do. All my info is second hand.
There's also Sage: www.sagemath.org.
re:octave vs matlab
in my opinion, octave had a long way to go for computationally intensive stuff (you can buy optimization) and it's graphics are (at least last time I checked they didn't have graphics handles) far far behind what you can do with matlab.
In any case, octave is in no way a replacement for mathematica
re rhett: you are missing the point of free software and/or being ideological. It is worth paying for good tools. Having more freedoms as a user is good too, but sometimes sacrifices must be made in the short term to get stuff done.
emeris, re rhett: Free-libre software is also worth paying for, even though that will be in time and trouble more often than in money.
It's true that, if the free readers of Mathematica notebooks stay current, my greatest discomfort with commercial software is gone. But, d'you know, I think Mathematica would probably be better if it weren't only-in-class (maybe not in what you can do, but in how you can figure out how to do it).
Hey, since your looking at visualizing wavefunctions I thought I'd throw this out: a friend turned the professor and myself on to this shiny little applet in my undergrad quantum class. It numerically finds eigenstates and will time-evolve the phases to display the probability distribution changing with time. It really helped me visualize and solidify a number of different ideas. Some of the features may be beyond the scope of what you want to do in your class, I don't know.
The specific applet is here:
This gentleman has a number of others too, here is the index:
Maybe you'll find them interesting enough to refer out to your students, maybe not, but I thought I'd throw it out if you hadn't encountered them before.