Programmable (I)

But not programmed

Some capabilities are never used.  Well, hardly ever.

We apologize in advance to our readers for the high geek content of this week’s post.  It deals with details of computers that you may not be terribly interested in; but we think there’s a more general lesson to be drawn from it.

We have something of a calculator museum among our consultants.  Our tutor deals with the current generation used by his students, mostly TI-83 and TI-84 versions.  Our astronomer has one from his days teaching Physics, a TI-92 from the 1990s (no, we don’t know how Texas Instruments decides to number its machines).  And, surprisingly still functional, there is a venerable HP-25 to make the other machines feel young and cutting-edge.  One feature they all share is that no one has used any of them to their full capability.  In particular, they are all programmable: one can put together a set of steps that the machine will carry out, the same way one can write a Java or C program on a more general-purpose computer.  But, to our knowledge, only one teacher has required her students to program their TI-83s, a move that was deeply unpopular; apart from that, we have never seen these machines programmed.  Why?

For the later generations, the answer surely involves the fact that the calculators can do so much that no human can be expected to explore even a fraction of their capability.  It’s comparatively easy to add something that only a few people want, since it means a bit of software, no added weight and little added cost, as we’ve noted before.  So if it results in a few niche sales, it’s put in.  But there’s more than that.

Why does one write a program?  To do things more complicated and elaborate than simple math functions, of course.  Or to do something over and over again.  But thinking of the programs we’ve written, they mostly involve processing data in big files, which would be beyond tedious to enter into a calculator.  Tasks like solving equations and doing integrals numerically are already installed in the TI calculators.  And while the TI machines could possibly do many of the tasks our Computer Science students are assigned to do in Java, at least early in the course, the tasks themselves are uninteresting; they’re done just to teach how the language works.  So maybe the calculators could be used to teach programming (we suspect that was the one teacher’s aim).  But the syntax and details of the TI calculator languages are different enough from anything widespread that it seems rather pointless; just go directly to Java or Python or C instead.  A programmable calculator ends up being too capable as a calculator, but not capable enough as a computer.

That is mostly true of the HP-25, but with significant differences.  First, the calculator itself uses something called Reverse Polish Notation.  There are no parentheses or equals buttons on it; you punch in one number, push “enter,” then the next number, then the function (like + or x).  It took some getting used to, and aroused probably more antipathy among students than love, but could be extremely efficient in the right hands.  And it was a big step closer to the way computers actually work.  It didn’t need that layer of translation that tells the TI machines how to interpret human-friendly math.  It suddenly struck our tutor that programming the HP-25 was, essentially, assembly language, something he had always thought was a black art.  So he used it for teaching his advanced Computer Science student.  And wound up, finally, writing a program for the programmable calculator.

Share Button