IMHO TI-BASIC is one of the best environments for learning. Not because it's the most capable of languages or runtime engines, but because it has menus. Lots and lots of menus. The usability on a phone emulator is the same as the real thing.
When you're starting out, and even more so when you're young, syntax is the issue. Every paren and sigil you have to type or complicated function name you have to spell is one more bomb that could explode. Keyboarding is tedious. Vocabulary is hard.
And on the TI's, most of that is eliminated by the method of input. While you can turn on an alphabetic mode to type characters, and simple algebraic expressions can be input from the calculator face keys, the environment pushes you to browse and explore the menus of library functions. Browsing is fun at any age. It is not the most efficient thing, but programming was never about how fast you can type.
So your syntax error rate goes way down and while some reference and guidance is needed to know how to use a lot of the functionality, you can focus more on the semantics of, e.g., "what is a subscript error?"
Environments that go heavily graphical like Scratch also have this kind of benefit, but the method used by TI-BASIC, which is mostly an artifact of being designed for a limited interface circa 1990, results in source code that looks and behaves similarly to other languages, making it that extra bit more transferrable.
And the functionality is good for drawing things and building up math concepts, although it's not great as a games environment. I remember my older brother making an Asteroids clone on his TI-82. He got it to where it rendered everything, moved and rotated objects, and took input, but he ran out of single-letter variable names to use. I think if he had known to use the built in matrix and list functionality to store object state and do transforms, he would have been able to take it much farther, but there was a lack of guidance on these things in the early 90's.
>He got it to where it rendered everything, moved and rotated objects, and took input, but he ran out of single-letter variable names to use.
The sheer amount of time that would have had to have gone in to that is a testament to the power of kids feeling bored to a level that may not actually exist any more. We have, today, tools that make things less tedious than writing matrix transforms in single-letter variable names, but at the same time we have computer games and more recently social apps raising the tedium floor that anyone is willing to put up with. If there was a way to combine modern tools with 1980s tenacity we'd probably end up with a golden era on our hands.
They still get bored like that. My daughter demolished the universe in The Sims by getting them stuck in a loop, making and endless pile of grilled-cheese sandwiches.
Not on the same league as Asteroids on a TI calculator, I admit, but squarely in the realm of Computer Science.
The other great thing was the built in motivation, that you could get your homework done faster with only a little effort. I remember one of my earliest successes was a classical mechanics solver where you could put in whatever you knew (time and distance) and it would spit out whatever it could come up with (average velocity and average acceleration assuming initial velocity of 0). Pretty handy!
And of course you can have this device in your hands during many classes making it so at a moment of enforced boredom you have the opportunity to learn.
The fact that it's a mobile programming platform is a huge plus as well. I haven't seen anything comparable on smart phones. And a touch screen just can't compete with that keyboard. Even if it is a weird layout.
I knew that you could program on a TI-83. But after I was exposed to QBasic on a 586 PC-clone machine, diddling around on a calculator held very little interest. Nothing will ever be able to surpass a real keyboard and mouse.
I had both as a teenager, but ended up spending far more time programming in TI-Basic, only because I could take my TI-83 everywhere. I even got in trouble a few times for trying to sneak it in my suit jacket to formal-ish occasions I didn’t want to be at. And Z80 assembly programming offered an incredibly compelling allure (though I never got past simple programs full of ROM calls).
When you're starting out, and even more so when you're young, syntax is the issue. Every paren and sigil you have to type or complicated function name you have to spell is one more bomb that could explode. Keyboarding is tedious. Vocabulary is hard.
And on the TI's, most of that is eliminated by the method of input. While you can turn on an alphabetic mode to type characters, and simple algebraic expressions can be input from the calculator face keys, the environment pushes you to browse and explore the menus of library functions. Browsing is fun at any age. It is not the most efficient thing, but programming was never about how fast you can type.
So your syntax error rate goes way down and while some reference and guidance is needed to know how to use a lot of the functionality, you can focus more on the semantics of, e.g., "what is a subscript error?"
Environments that go heavily graphical like Scratch also have this kind of benefit, but the method used by TI-BASIC, which is mostly an artifact of being designed for a limited interface circa 1990, results in source code that looks and behaves similarly to other languages, making it that extra bit more transferrable.
And the functionality is good for drawing things and building up math concepts, although it's not great as a games environment. I remember my older brother making an Asteroids clone on his TI-82. He got it to where it rendered everything, moved and rotated objects, and took input, but he ran out of single-letter variable names to use. I think if he had known to use the built in matrix and list functionality to store object state and do transforms, he would have been able to take it much farther, but there was a lack of guidance on these things in the early 90's.