ticalc.org
Basics Archives Community Services Programming
Hardware Help About Search Your Account
   Home :: Archives :: News :: Feature: A Modest Proposal

Feature: A Modest Proposal
Posted by Nick on 5 May 2000, 01:24 GMT

Our next somewhat late (*g*) feature is written by Ben Kalafut. It talks about what TI should include in their next calculator (or calculator update :P). In my opinion, he makes some good points and some I don't quite agree with (or they aren't vital to the functionality of said calculator), but it's still worth a read and some frank discussion of opinions.

So let's do just that. Many (many) people have complained about TI's "actions," especially since after Hardware 2.00 and AMS v2.03 came out for the 68K calculators. Talk amongst yourselves - as usual, I'll try to offer any input I can.


I have owned three different TI calculators, and I have run into frustrating "brick walls" in the use and programming of each one.
I use my calculator for math and sciences; I have no real interest in gaming or getting my calculator to make sound or bit-mapped graphics. Yet sometimes, the calculators are just as useful as a Gameboy.
Even the "powerful" TI-89 and 92 don't contain what I would like to see in a graphics calculator/computer algebra system. Symbolic manipulation is a nice feature, certainly, but programming all but the most elementary routines becomes time-consuming or impossible. Texas Instruments should probably put out programs to perform Fourier, Laplace, and Z transforms, partial fraction decomposition, tensor mathematics, functional analysis, etc, but they do not do so, and apparently, no third parties are interested.
The problem, in my opinion, is that Texas Instruments considers the graphics calculator to be merely an educational tool. This is evident in the software applications which are written, and the nature of their press releases and advertisements. TI does not seem to recognize the (potential) utility of their calculators to researchers, college students, mathematicians, and professionals.
Some improvements which I would like to see on a hypothetical calculator which TI would put out to replace the 89 are:

1) True updates. I expected a boost in functionality between AMS 1 and 2.03, and all that seemed to occur was an improvement in memory allocation. Extending the function library from time to time would be nice.
2) A faster processor. The 68000 can certainly handle numerics well, but seems to bog down on all but the simplest symbolic operations.
3) Ability to define a function with multiple outputs. For example, a Gaussian elimination decomposition should return both the reduced matrix and the "O" matrix by which one may multiply the original to change it to the reduced form.
4) A true 3-D engine. It is nice to be able to enter functions of two variables, but one should be able to view three-dimensional plots obtained from numerical methods of problem solving, view three-dimensional data plots, or plot space curves parametrically.
5) Vector field plots, Poincar‚ return maps, improved slope and direction field applications.
6) LaPlace and inverse LaPlace transforms.
7) Partial fraction decomposition.
8) Improved ability to program new symbolic functions. The "part" function is a step in the correct direction but is neither sophisticated nor specific enough to be truly useful.
9) Ability to handle tensors.
10) Ability to enter strings, matrices, lists, etc as elements of lists or cell arrays
11) Ability to overload user-defined functions, so that they may return either symbolic or numeric answers, for example. Also, the ability to input fewer than the specified number of parameters to a function and not get errors.

These are just a few suggestions. I'm sure that those who are more advanced in mathematics than I have many more. I don't expect TI to come out with a calculator that does everything that Maple or Mathematica do, but by focusing too much on secondary education it is neglecting a potential market.
TI or a third party should also put out a compiled language for the calculators. I'm impressed with TI-GCC, but TI, having a team of professional programmers, could probably develop the standard libraries and even more powerful interaction with the calculator's built-in features. TI also has the muLisp language, and could possibly release a version for graphics calculators.
Another thing that has struck me is the poor quality of programs in the math and science archives.
A lot of the programs do things that the calculators already do! Additionally, many have poor documentation and terse interfaces. User-friendliness is not a major concern. Neither is standardization or development of syntaxes which make sense to anybody but the user. For the sake of consistency I have been writing my programs so that they either state, clearly, what should be input (rather than specifying a variable name), or in the case of those for the 89 which take inputs from the command line, do so in an order and syntax which follows that of TI's built- in libraries.
The graphics calculator has great potential as a mathematical tool in the classroom, the lab, and even in the professional world, but it will never realize that potential until Texas Instruments chooses not to focus strictly on the secondary education market and programmers (perhaps at the expense of gaming) develop better, more powerful, more consistent mathematics and science software.

 


The comments below are written by ticalc.org visitors. Their views are not necessarily those of ticalc.org, and ticalc.org takes no responsibility for their content.


All I got to say is...
Jim Haskell  Account Info
(Web Page)

I think I'm going to cry if I see another one of those Quadratic Formula programs for any calculator. Originality in your programs is a good thing =)

Jim Haskell

     5 May 2000, 02:31 GMT

a hole...
justsomeotherguy  Account Info

Yeah, I even had a small quadratic program that I wrote for myself, but I saw the Poly function and just plain gave up that.

The main problem that I am facing right now is not the lack of functions and programs for my calculator (TI-86) but it is the over-abundance of them that is making me fall into an ever-increasing hole in my math class. I have most definately become too dependant on my calculator for math class and it is severely hindering what I can do. Also, may I say "Ztetris"?

So really when you think about it, unless the class is designed to teach you how to use the calculator for future use outside of any school, learning too much for the class can be a bad thing.

You guys will probably jump on me, but I have only just recently started noticing this stuff and I wish I hadn't gotten so into the calculator and finding "easier" ways to do everything where the class just becomes data entry. It's messed me up a bit and I can't imagine a class without it now.

     5 May 2000, 03:36 GMT

Re: a hole...
Dave Stroup  Account Info
(Web Page)

I know what you mean, back when I took Algebra 2, my teacher would not let us use our calculators on most tests, and at the time I was rather upset, but now in the long run I'm glad I actually learned how to do the problems.

     5 May 2000, 05:49 GMT


Re: Re: a hole...
CircaX  Account Info
(Web Page)

I suppose I'm in trouble then...

     5 May 2000, 20:58 GMT


Re: Re: Re: a hole...
Paulo Marques  Account Info
(Web Page)

Ditto

     7 May 2000, 22:42 GMT


Re: a hole...
Jim Haskell  Account Info
(Web Page)

I would be in the same predicament that you are in, except for one thing: I make all of my own math programs. I feel (and this may seem like I'm trying to rationalize a ludicrous ideal (ie. telling someone that computer games increase hand-eye coordination)), but it is my belief that if I can demonstrate how to do a problem correctly, I should be able to simplify the "grunt work" that goes into the problem. That's where some of my math packages come from (the only one released being the Polynomial Solver Deluxe v0.1b (click the orange thingie by my name to find it)). I know I can trust my programming, unless, of course, I find a problem with the code =) I just feel more confident when I'm musing over my own code to find the problem, as compared to someone else's code that I think has too many gotos and whatnot. In the words of every programming great, "I haven't tested this yet... but it should work." =)

Jim Haskell
Master of Nested Parenthical Phrases

     9 May 2000, 02:00 GMT


Re: All I got to say is...
Daniel Bishop  Account Info

I agree. Any idiot can write those programs. In fact, the quadratic formula was the first TI calc program I ever wrote.

Disp "AX(squared)+BX+C=0
Prompt A,B,C
B(squared)-4AC -> D
Disp (-B-sqrt(D))/(2A)
Disp (-B+sqrt(D))/(2A)

Five lines of code. I'm almost ashamed to put on this site because it demonstrates so little need for programming skills.

     6 May 2000, 02:06 GMT


Re: Re: All I got to say is...
Jim Haskell  Account Info
(Web Page)

Don't forget to add:
a+bi
to the beginning of your program ;)

     6 May 2000, 22:35 GMT


Re: Re: Re: All I got to say is...
Daniel Bishop  Account Info

Oops. I forgot about that. <SHAMELESS PLUG> But I remembered to include that line in my Algebra Toolkit for the TI-83. Of course, the quadratic formula isn't all it does. </SHAMELESS PLUG>

     7 May 2000, 02:08 GMT

Re: Feature: A Modest Proposal
johnmcd3

Uhhh... The TI-89 and 92 do partial fration decomposition, so you can take that off the list. Also, when I want a function to return multiple values, I just make it return a list of the values. Ex. "{(b+d)/2,(a+c)/2}->midpoint(a,b,c,d)" As for the brick walls, most of the things that the ti-89 can't do directly (and some of the things you list) can be done with a quick function or program. (Symbolic manipulation is a godsend) In this way, people can write/download what they want and not be overloaded with thing they will never use. One qualm i have is that i wish that the 89 would let a program return a value to the home screen, so you can have the power of a program, but not have to mess w/ the programIO screen and be able to copy down the value easily. What TI needs to focus on are things that we can't fix as programmers. For example, the CAS doesn't know how to use the trig id's well at all. For example, I believe if you type sin(2x)/sin(x) it should simplify to 2cos(x). As for a true 3d engine, faster processor, and TRUE UPDATES I am totally in agreement.

Totally Unrelated Note: Since TI doesn't really care about the complaints of our like market segment, what would be incredable is if we could ever fix the flaws in the rom ourselves. Although it would be difficult, it would not be impossible to write our own ROM. Since it is impossible that TI would ever open source the rom, how difficult would it be to figure out how to write out own ROM? I read something about it having some checksum, or maybe it was encryption, but certianly that could be cracked. Could someone fill me in on how feasible that is?

John McDowell

     5 May 2000, 03:42 GMT

Re: Re: Feature: A Modest Proposal
vod

Its got RSA for doing checksum, the private key is on the calc, but as for the public key...ti has that secured with them. I dont know much about how things like the hw2 fixes and the moremem for hw1, but dose anyone know if all of the rom is able to be changed? if so could we not make many improvements on the calc (patching it up)

     5 May 2000, 04:10 GMT


Re: Re: Re: Feature: A Modest Proposal
Robert Xeon Smith
(Web Page)

<<Its got RSA for doing checksum>>

Hay hay! I wasn't aware of this.

<<the private key is on the calc, but as for the public key...ti has that secured with them.>>

It should work the other way, right? Otherwise it would be REALLY slow. Also, the modulus N _must_ be on the calculator. What is it? I'm betting that it's _little_, and that we can crack it. E-mail me if you know what N is.

     5 May 2000, 07:43 GMT


Re: Re: Re: Re: Feature: A Modest Proposal
vod

There we a bunch of discussion of this on the mailling list a while back (should be in the archives somewhere) if i rember correctly someone extracted N but it was (speaking purly from memory) 512bit key

     6 May 2000, 18:14 GMT


Re: Re: Re: Re: Re: Feature: A Modest Proposal
Ciaran McCreesh  Account Info
(Web Page)

Wouldn't that be classed as a 'weapons export' under your stupid American encryption laws?

     10 May 2000, 20:04 GMT

Re: Re: Feature: A Modest Proposal
Bennett Kalafut  Account Info

Yeah, my error on that one...I noticed that "expand" will do it, but not in all cases.

     5 May 2000, 04:58 GMT


Re: Re: Re: Feature: A Modest Proposal
Dave Gaebler  Account Info

Actually, I think expand() will do it in _all_ cases. For some, however, you have to use the syntax expand(frac,x) instead of expand(frac). For example, expand(1/(x^2-2)) returns 1/(x^2-2) but expand(1/(x^2-2),x) returns sqrt(2)/(4*(x-sqrt(2))) minus sqrt(2)/(4*(x+sqrt(2))). I think this occurs whenever the denominator includes an irrational linear factor.

     10 May 2000, 03:11 GMT

Re: Re: Feature: A Modest Proposal
MathJMendl
(Web Page)

Can't return values to the home screen, huh? Ever try making the program a function instead of a program (change prgm to func and endprgm to endfunc or just make it a function when you write it)? You can then use the Return command to return a value to the home screen.

     5 May 2000, 04:59 GMT


Re: Re: Re: Feature: A Modest Proposal
johnmcd3

Well, yes of course a function can return a value to the home screen but if you had actually read my post you would have seen that I was talking about a program, not a function. A function is good for many things, but these advantages introduce inherent weaknesses. A function cannot perform conditional statements, loops, or branching, and is therefore is useless at solving many mathmatical situations. The reasons the function must operate as such is that the calculator must be able to replace the function with mathematical operations in order to manipulate it in such applications as the solver. Using my midpoint example above you type "solve(midpoint(0,0,x,y)={1,1},{x,y}" and have it solve for variables in the function. With a conditional statement, this type of reverse application of a function would be impossible. All I advicated was the ability to use "Return " in a program, so the value could be returned to the home screen. While you could not use this program in a solve, or in and equation, as you could a function, it would make a program with no user interaction and simple output less clunky and more convient for the reasons stated above.

     5 May 2000, 06:57 GMT

Re: Re: Re: Re: Feature: A Modest Proposal
Bennett Kalafut  Account Info

This is going to make me sound like a real C junky, but why not just get rid of the "program/function" duality? AMS should be written so that the progams can return values, in effect, being functions, without the restrictions.

Looping and if/then can be done from within functions, but certain on-calc commands cannot be used, and indirection cannot be used to get multiple outputs. (not returns, yes, I do know the difference...) Additionally, the error-handling (which I've been wanting to see since I first wrote for the 82) cannot be used within a function.

One solution I see to the problem would be to use programs that use indirection for outputs, similar to writing void functions in C.

-Ben Kalafut

     5 May 2000, 08:32 GMT


Re: Re: Re: Re: Feature: A Modest Proposal
MathJMendl
(Web Page)

Excuse me, but there's no need for your snotty remarks and false statements. First off, a function is a type of program and you said, "One qualm i have is that i wish that the 89 would let a program return a value to the home screen." Also, IT CAN use loops and conditionals. I bet you're just assuming that it can't because you've never written a function before. The biggest issue with functions is not being able to output to the Draw or IO screen but you can return values. And lol, what kind of a dumb midpoint program uses conditionals and looks?

P.S. Don't reply disputing the facts. I've used loops and labels in many functions before. If you must see an example, look at the source to my Super Riemann Sums programs (the functions).

     5 May 2000, 21:32 GMT

Re: Re: Re: Re: Re: Feature: A Modest Proposal
JaggedFlame

Well, yeah, a function is a type of program, but how else is he supposed to refer to a program? That's what TI calls it, isn't it?

Yep, it CAN use loops... but I wonder why it can't use For loops in functions, yet can use the while loop? I mean, they're almost the same thing.

     5 May 2000, 23:47 GMT


Re: Re: Re: Re: Re: Re: Feature: A Modest Proposal
Sebastian Reichelt  Account Info

Of course it can use FOR loops. Just make the loop control variable a local one by typing, for example, "Local i:For i,1,10:(Do something):EndFor" I've tried it many times before; believe me, it works!

     6 May 2000, 03:05 GMT

Re: Re: Re: Re: Re: Re: Re: Feature: A Modest Proposal
JaggedFlame

Ohhh.... now I get it. I didn't make it local, and it told me "Invalid in a function" and I assumed it was the For loop. Hmm... that could have saved me quite some time programming my 50+ math programs... :-)

     6 May 2000, 04:40 GMT


Re: Re: Re: Re: Re: Re: Re: Feature: A Modest Proposal
johnmcd3

Sweet, that's awesome! I was also unaware of the ability to use for loops in a function, because when I had previous tried it, I did not use the local statement. This is quite helpful, and I have never seen it used in any of functions in the archives or heard this mentioned before. Thanks!

     6 May 2000, 10:08 GMT


Re: Re: Re: Re: Re: Feature: A Modest Proposal
johnmcd3

Hmmmm... I don't know where to start with this one.

<!-- Begin rant on people who don't think before they post --

First of all, I assumed that anyone intellegent reading my complaint about programs not being able to return values to the home screen would interpret it as only the "programs that aren't functions" because obviously functions return values to the home screen. From now on I would request that anyone reading my posts would interpret "programs" as "programs that aren't functions" to avoid further confusion.

"I bet you're just assuming that it can't because you've never written a function before" What? In my orginal post I give an example of a function I just made up. Not that I would actually have a midpoint program on my calculator, it was only an easy example of how to use a function to return multiple values. As for a "midpoint program [that] uses conditionals and looks", again, the intellegent reader would be able to infer that because the midpoint example did not use conditional statements, I was talking about functions in general using conditional statements.

//-- End rant on people who don't think before they post -->

As for using conditional statements in a function, I don't have an 89 with me, but I have tried it before and it didn't work, possibly because I didn't include a local statement in a function that needed it, like Sebastian just noted w/ for loops. But does that really work? Can someone tell me if this works? "If a > 0 and a < 3 Then:Return 2*a:Else:Return 3*a:EndIf->test(a)"

John

     6 May 2000, 11:11 GMT

Re: Re: Re: Re: Re: Re: Feature: A Modest Proposal
Sebastian Reichelt  Account Info

I guess it would work, except that you would have to write "Define test(a)=whatever" instead of "whatever->test(a)" Anyway, you should use the Program/Function Editor.

     6 May 2000, 22:39 GMT


Re: Re: Re: Re: Re: Re: Feature: A Modest Proposal
MathJMendl
(Web Page)

Lol, I'm not even going to start replying to this. Well maybe briefly.

1) You shouldn't make assumptions that people are stupid if they simply notice that you are lacking facts. My guess is that you did this because you had no facts backing you up and so this type of a rebuke was all you had. And if you knew me in real life you'd know how wrong this assumption is.

2) I was being sarcastic about the midpoint program. Obviously, no midpoint program needs loops and conditionals...or maybe you actually did use them and just won't admit it.

3) Html tags don't work with ticalc.org's posting software, thus causing your 'rant' to be shown.

4) I was being sarcastic about comment 3 in much the same way as the midpoint program. It's true but ... actually, you probably did think it wouldn't be displayed. I shouldn't overestimate your intelligence just as you shouldn't underestimate mine.

5) This thread is hereby abandoned. I am going to bother replying to any further replies and redundancies on your part.

     8 May 2000, 04:39 GMT

Re: Re: Feature: A Modest Proposal
Kenneth Arnold Account Info

A program can return a value to the home screen... sort of.

At the end of your program, put:

expr(string(retval) & ":Stop"

This has the side effect of putting a " : Stop" in the answer, but hey it's better than nothing.

     5 May 2000, 23:42 GMT

Re: Re: Re: Feature: A Modest Proposal
Sebastian Reichelt  Account Info

I'd just like to point out that you CAN return values to the home screen in C programs. Maybe I should make a program that allows BASIC programs to do the same.

     6 May 2000, 02:54 GMT


Re: Re: Re: Feature: A Modest Proposal
grinik  Account Info

Wow! That's impressive! Where did you discover that from? The Stop command is hardly discussed in the manual, and it seems unlikely that you just discovered that.
Enlighten us!

     6 May 2000, 04:50 GMT

Re: Re: Feature: A Modest Proposal
Reno  Account Info

I've heard TI's encryption method isn't crackable by even a supercomputer at this time...

     6 May 2000, 20:15 GMT


Re: Re: Feature: A Modest Proposal
Sebastian Reichelt  Account Info

What the...

I always thought this was a community of programmers like me, not crackers. I guess I'm wrong!

     6 May 2000, 22:51 GMT


Re: Re: Re: Feature: A Modest Proposal
Ciaran McCreesh  Account Info
(Web Page)

He he. What's the difference? If you can program you can learn to crack things. Now, about that quantum computer, let's try every key at once.

     10 May 2000, 20:08 GMT


Re: Re: Re: Re: Feature: A Modest Proposal
Sebastian Reichelt  Account Info

You CAN, yes.

     10 May 2000, 22:25 GMT

1  2  3  4  5  6  7  8  9  

You can change the number of comments per page in Account Preferences.

  Copyright © 1996-2012, the ticalc.org project. All rights reserved. | Contact Us | Disclaimer