TI removes access to assembly programs on the TI-83 Premium CE
ticalc.org
ticalc.org
It is inspired by the venerable HP42 and an e-ink like display that persists when powered off, an arm cpu running at 24MHz when powered by a cr2032 (or 80MHz when on USB power). Both the display and the key action are a big advantages over using a calculator app on a phone.
The software is entirely free software.
They will have a new model coming out in the next year or so which is on the same hardware platform (but a different model because the key layout is different) with an even more powerful software stack.
Unfortunately dedicated calculators are a seriously niche market, except for education. And education results in weird user hostile features as well as being extremely overpriced. (DM42 is also not super inexpensive, but at least there its because its extremely well built and made in very small quantities).
A lot of really awesome things could be done but without a bigger market it's hard to justify the development costs and manufacturing NREs.
> Only the calculators listed on this page are acceptable for the Math Test—Calculator portion of the test.
The page has a table of calculators which does not include the SwissMicros DM42. The brands present on the table are Texas Instruments, Casio, Helwett-Packard, Radio Shack, Sharp, Datexx, Microtona, NumWorks, and Smart2.
If you had one of SwissMicros scientific calculators (rather than the DM42, which is their only graphing calculator), you could try to bring it in. Farther down the page:
> Calculators permitted during testing include:
> * Most graphing calculators (see chart) > * All scientific calculators > * All four-function calculators (not recommended)
So you could make a solid case for bringing in a scientific calculator which doesn't have any of the disallowed features (wireless connectivity, QWERTY keyboard, touch input...), but a proctor might still tell you it's not on the list of specifically-approved calculators and therefore not allowed.
---
Amusingly, some of the allowed calculators have disallowed features. Off the top of my head, the HP 50G has wireless (infrared) communication, and the HP Prime has a touchscreen.
Though, I'm curious why some of those "disallowed features" exist, particularly for keyboard and touch input...
Are you sure about that...
Remember, this was the age of T9 typing, we weren't gonna let the lack of a keyboard stop us...
"Almost" have it though, because the display is a bit different on the real DM42, but all functionalities are the same otherwise.
We are also launching DM41X[2], about 100 units have been sent out for beta testing and should be in production later this year.
We appreciate feedback and would love to hear from you: neil[@]swissmicros.com
[1] Teardown: https://www.youtube.com/watch?v=Ong91Ji3iDk
[2] DM41X: https://www.youtube.com/watch?v=UrU4sGWt45M
I still have my beloved HP-48 GX on my desk, I created a multitasking kernel and a few apps for this hardware while I was a student (1998)
https://www.hpcalc.org/details/79
If you want some input or beta testers, I'm in :)
Looking at the DM42, it'd probably be good enough for the "not going to use Matlab for this" day-to-day math, but man did that '49 save my bacon a lot of times. Nothing like being able to readily invert a big system of linear equations and take integrals during an exam!
That video doesn't strike me as particularly flattering.
I'm no calculator aficionado, but just watching it already had me experiencing pangs of buyer's remorse and no money had even left my pocket.
Echoes of the clamshell sharp zaurus; a well built piece of hardware with very poor software support relegating it to dust collector status.
Some demonstrated flaws from memory:
- Inexplicable help file error right out of the hole
- No way to actually display values using the exceptional precision because of the software
- Basically no included graphing capabilities despite having a pixel-addressable e-ink display the buyer is no doubt paying extra for
- Weird font rendering bug and seemingly pointless font scaling
- No modal alphabetic keyboard entry when attempting to do some rudimentary programming
There is a deliberate attempt to not add features, and to keep DM42 compatible with HP42S "interface". We've received strong feedback from our users to not make major changes to the HP42S spec. One can just use HP42S manual and everything should just work. It is the same with the key layout.
If you want to add features or mess around with the firmware, it is open source. There is also an SDK that you can use to write your own firmware if you wish.
Furthermore, there are some exciting projects to build a new RPN platform all together - WP43 is one.
That said, all feedback is welcome and appreciated. Thank you.
What about it struck you in such a way? It looked rather clean and elegant to me.
I just wanted to echo the other comments and strongly endorse their products. I have a DM15L, a recently-bought DM15, (just so I can carry it with me everywhere I go!) a DM16, a DM41L, and a DM42, and will absolutely get a DM41X when it's released! You might call me a bit of a fan.
If you are a fan of HP calculators, but can't stand how expensive they are on eBay, do yourself a favor and pick one up. They're wonderfully constructed and from what I can tell, extremely faithful to the originals (that are out of my reach, unfortunately.)
Also, Neil--I emailed you a question I had about my DM42, in case you can clear something up for me.
I wish there was a true clone of the HP 48G calculator. HP stopped making the 48G series years ago, and I now handle mine with kids gloves to keep it functional as long as possible. Almost every undergraduate in my engineering department had a 48G as well as about half the graduate students. I soon became a convert. (I used the HP 32S and then, later, the HP 48G extensively over the decades.)
Over the last few years, as I read calculator related threads here and elsewhere, I became discouraged in hoping to ever see the HP calculator designs I loved so much long ago from ever being available again. I haven't yet read through this thread yet, but the comments in the other threads always seemed to be dominated by people that don't understand the needs of scientists and engineers working in the physical world (not in software development), people that don't themselves need such a calculator and can't see a use for one, and/or people that are extremely negative towards well proven designs of yesteryear without understanding their utility.
Some classes had HPs, other TIs, it was like Vim vs emacs during puperty.
I was in the TI-85 class and we programmed the heck out of the devices (for cheating too, obviously). I re-wired the link cable with a phone cable and was able to chat over that link with class mates 5m away.
One of my fondest memories with the TI was a chemistry instructor saying that we were completely free to use any programs we wanted on examinations -- as long as we coded the programs ourselves. This inspired me to create a fairly comprehensive TI chemistry formula program, and my mates did likewise. It was really a forward-thinking move that contrasted strongly with just a blanket ban, as instead it fostered creativity. It is sad to me that future generations will not be able to experience this.
I wrote a program to balance arbitrary chemical equations using a series of ridiculous hacks. First, I parsed chemical compounds (like CO2 and H2(CO2)3, notice the nesting) by running through them char-by-char and translating them into expressions and then "eval"ing them: "CO2" -> e.C + 2 e.O (where e.C and e.O are free symbols). Then, I used the feature where you can type "X + Y | X=3, Y=5" to get 8 to extract the coefficients from the expression which I then shoved into a matrix and solved the system of equations. If you look at the code, you'd vomit, but it was a night of furiously typing on the abcdef keyboard that I will never forget.
I never actually used it in class because during this process I became so quick at balancing the simple equations they would give us that it took longer to type them in than simply doing it in my head.
Come exam time, we were allowed to use our calculators. I asked if I should clear mine out given I had a program which could "cheat" (I was a teachers pet). He said something to me (privately) along the lines of, "don't worry about it. the way I see it, you've already proven to me you know the content." Ironically, today I could probably piece together a TI83 assembly program from memory, but I couldn't even tell you what Newton's Method does, let alone how to do it. Not sure what lesson to glean from that.
I remember eating lunch one day, maybe a year or so later, in his classroom with some friends, and he was browsing around the internet trying to find a job I'd like in math. Looking back, I find it funny that he was landing on things like "actuarial science" and "accounting" instead of the obvious. I think that was his way of trying to make up for the piss-poor guidance counseling in my school of 80 people in the middle of nowhere. I ended up wasting a semester in Computer Engineering doing CAD and coding MatLab before a professor took me aside and basically said "you're finishing these matlab assignments faster than my grad students would. Are you sure you don't actually want to do Computer Science?"
It sucks to see this. The accessibility of coding today has never been better, so I'm not going to pretend like this is a doomsday thing for helping kids get into the field, but it did have power in its ubiquity. Teaching computer science in high schools isn't a tenth as effective as students coding up a program to make their math classes easier, or modding CounterStrike after hours, or "hacking" the school computer labs to play Halo with their friends. Technology, and the ability to shape it to help us, should be ubiquitous. It shouldn't be thrown out the window just so one teacher can more easily proctor a hundred tests instead of twenty.
So much of what many of us did back in the day is now just available out of the box. No need to learn how to use IRC, all the music is on Spotify. You no longer need to be resourceful, you just need to consume.
Apple tries to earn credit for putting Swift Playgrounds on the iPad. Its a coding environment aimed at students, they're trying to help the pipeline. No. Its a cute little sideshow activity that offers its users nothing of actual value. It teaches its users to complete exam-like puzzles, get a gold star, and then close the sideshow and return to the garden where they can watch Netflix.
And Jesus, Swift?! If you want a quicker way to turn kids off of programming, go right ahead and start them on Swift. The first good thing anyone says about Swift is "at least its not Objective-C". Fine language; but not a learning language.
Assembly... now that's a learning language. It may not seem it at first, from the perspective of a professional. You can't build huge apps in Assembly. Its not maintainable. All true, and that means shit all when you're learning. There's basically no syntax elements. This means, there's no syntax to learn. Its just legos. The program starts at 0, goes line by line, you get a list of like 100 types of legos to combine, and you make it do things. Starting on assembly is underrated.
Modern computing would suck to get into. I'm grateful that, despite all the shit of "modern web development", a basic HTML page is still pretty damn simple, and you can build from there. Could you imagine trying to build a basic Android or iOS app nowadays as a High Schooler? Could you imagine getting into game development, reaching for Unreal or the modern Source engine? Try modding a game you play on iOS or Stadia. Try installing Linux on your family's "what's a computer" iPad. These were the hooks that built the people that built our industry, and the hooks are slowly disappearing.
When we were younger, the best tools in the industry were at least accessible to younger people, because the tools were simpler. Today, the tools are either locked behind $99/year paywalls, or so horribly complex that even professional engineers struggle with them (most often, both). So, we build cute little learning tools to help get kids interested, like Swift Playgrounds or toy game engines or Glitch (no disrespect intended to the people behind these projects; they're making the best of a bad situation).
I don't know how to fix it, beyond relentlessly supporting open source and open computing, and continually pushing for fucking simplicity above anything else in the tools we build. Its not an easy battle.
This 100%. Even though modern webdev has grown to be a very complex field with many layers of tooling, I still think it's by far the best way for young developers to get started building things that people can actually use.
Your IDE comes pre-installed with your web browser, your app runs on any computer or phone, and there are more resources for learning HTML, JS, CSS, etc. than pretty much anything else in software development.
Xcode is free, as is building Swift UI programs that actually do things. $99/year is only required to sell your app to the $20B App Store market.
> https://en.wikipedia.org/w/index.php?title=Regula_falsi&oldi...
- The new OS prevents the calculators from being downgraded
- The OS prevents running Asm/C programs, only Basic (and on some editions Python) programs are allowed
- Applications can still be installed if signed by approved TI vendors
Sounds like the TI homebrew community is about to get splintered. You'll have the jailbreakers fighting for code execution, but this could easily end up a small underground operation mirroring other jailbreak efforts. It could become too much of a hassle to get asm programs back (custom OS?), if so most people will accept the limitations and move on. At least there's still Basic and Python, if nothing else.
[1] https://www.cemetech.net/news/2020/5/949/_/ti-removes-asmc-p...
The last update for the TI-84 Plus CE came out about 11 months ago. Its not recent, but it wasn't ages ago.
[0] https://www.numworks.com/simulator/ [1] https://github.com/numworks
So I can't say for your specific case, but if you're a teacher, at least this feature exists and you can use it with your students.
By the way, even the iPhone has some apps compliant with this feature, where you're basically locked into the App. If you do manage to leave the App (i.e. by force restarting your phone), you void the exam start timestamp that the App saved
https://collegereadiness.collegeboard.org/sat/taking-the-tes...
This led me down a rabbit hole of looking at the weird newer calculators like TI nspire. Do any of these calculators have a wifi interface? Would love to see whats possible if I can use urllib...
The initial version will be reviewed in detail. Then for various reasons the product is changed. Often it fixes issues however sometimes different materials or even zippers are used that are lower quality.
No notice of these changes are given to consumers.
[1] https://steamcommunity.com/app/782330/discussions/0/36067658...
I never got into assembly much because it required a a computer and I could code and run BASIC on the calculator itself. I remember a few ASM programs you could drop on your calculator and then call them from your BASIC programs. So certain things that could be done faster in ASM were all put together in a "library" that you could use to speed up your BASIC programs (most were visual in nature, clear screen, draw sprite, etc). I still have my TI84+ SE from high school, I really love that calculator.
> Using AsmPrgm is the only built-in way to create assembly programs on the calculator, and it's not very convenient. To use it, after AsmPrgm itself, you must type in the hexadecimal values (using the numbers 0-9, and the letters A-F) of every byte of the assembly program. Even for assembly programmers, this is a complicated process: unless you've memorized the hexadecimal value of every assembly command (which is about as easy as memorizing the hexadecimal value of every TI-Basic token) you have to look every command up in a table.
I had even some linking step, with labels and all, which were resolved in offsets.
I hope this feature is still in the successors, their Ti-Nspire CX series... and if so, that it will not be removed.
Of course, they’re only really still relevant because teachers and a number of entrenched institutions (College Board…) keep it that way.
I do remember IRR calcs on an HP-12C taking a few seconds, or so. And that machine is not cheap either.
That being said, who's running IRR on a pocket calculator?
Back in high school I regularly hit integrations that took minutes to do on my TI-89.
https://www.youtube.com/watch?v=SoDkeg166xU
maybe not the TI-89 which ran 68K processor.
Check it out, those menu buttons at the top use javascript to simulate CSS `:hover` because at the time IE6 didn't support it for non-link elements!
<th onmouseover="mOvr(this);" onmouseout="mOut(this);" onclick="mClk(this);" style="cursor: default; background-color: rgb(255, 238, 204);">The biggest advantage TI has for attracting new developers is that their platform is ubiquitous for high schoolers. This is really amazing for adoption and it's how I got started with programming back in the day.
I hope this trend doesn't continue. https://www.ticalc.org/archives/files/authors/78/7869.html
(Like many others, I have fond memories of programming my TI-80, TI-83, and TI-89... but I also got to use Mathematica at school and kind of wondered why these calculators existed then. I got so much out of animating and exploring everything. Waiting 10 seconds for a TI-80 to graph a parabola was just not as exciting after using that.)
By the way, my favorite TI-83 Assembly game was Uncle Worm, a fun variant on snake that lets you move in all directions. I even made a Windows port. https://www.ticalc.org/archives/files/fileinfo/96/9683.html
Is there an open source computer algebra system designed to run on one of these microcontroller-level devices that might serve as a replacement for the math capabilities?
Something at least as good as DERIVE, and doesn't resort to Python - something barest of metal?
Because I've always wanted to make a calculator...
Derive had the sweetest front end though. Using it with the HP200lx was amazing.
https://www-fourier.ujf-grenoble.fr/~parisse/giac.html
Seemingly relevant thread found by a quick Web search: https://xcas.univ-grenoble-alpes.fr/forum/viewtopic.php?t=69...
Ti-86 and below all use Z80s. Although the 83 premium CE (and the 84 Plus CE) uses a pretty monstrous (compared to the original Z80s) 48MHz eZ80.
https://www.numworks.com/resources/engineering/
There was (and probably still is) a Numworks pet peeve of mine, though. As far as I understand, on many kinds of calculations (e.g., calculating a power of a number, or a derivative at a point) the Numworks software does an artificial "rounding" step with the purpose of presenting "nicer" results to high-schoolers in trivial cases. See https://github.com/numworks/epsilon/pull/1376 and https://github.com/numworks/epsilon/issues/1373 . It seems like the Numworks dudes have no concept of the accumulation of rounding errors :( ?
On top of removing precision intentionally being a weird choice, the implementation is too naive as far as I understand. This is basically what they do:
result = std::round(result / error) * error
See, e.g., https://github.com/numworks/epsilon/blob/c92b770112e38bd906a...Would it not be both faster and less destructive to numerical accuracy to just clear some least significant IEEE 754 bits?
EDIT: forgot to mention it is approved for the SAT and ACT already.
EDIT2: More relevant to this thread; one can not run assembly on the Numworks written from the Numworks (it would be hard to fit all the prerequisites on its RAM and/or flash, e.g. Epsilon does not even have a file system), but it is possible to write C++, C, or assembly on your Linux or Windows PC, compile it and push it to the Numworks.
I'm not sure how this will unfold, but they've pissed off a fair number of smart people that know their calculators inside and out. I expect jailbreaks, boycotts and people switching to other platforms fairly quickly.
One cannot distribute epsilon with giac integrated since their licenses are incompatible (GPL3 vs CC-BY-NC-SA), hence the external app workaround. NumWorks could negotiate a commercial license, but there has been no sign of this so far.
https://thehustle.co/graphing-calculators-expensive/
And this step might be the reason why they do this now to make it impossible to cheat by using them with custom software. It provides them an argument why students can continue to use them on the tests.
Also on occasion I need to do some simple plotting/multi-step math and my old high school TI-83 in the desk drawer is simply more convenient than firing up a Mathematics suite and looking up the arcane commands to get it to show what I actually want.
But for professional use, yeah there are better tools.
I was totally blown away when I entered a US high school only to find that math class was basically teaching you how to use the calculator, not how to do that math.
But education is mostly regulated by state and local authorities in the US, so YMMV.
That was my experience in Europe, but without moving to a calculator.
I attended a public east coast high school.
Also because curricula are designated at the state level, and teacher certification requirements vary by state and county.
You should pick up some way of automating that effort, while still knowing how to do it yourself.
There's no reason to use a calculator on a properly-designed calculus exam. We were doing everything from Taylor series to triple integrals without them. Teaching kids to rely on a calculator from a young age severely limits their ability to develop the basic arithmetic "muscle memory" (for lack of a better term) needed to manipulate equations quickly in more advanced math classes. It's a real shame.
As long as you don't treat this computing as magic that somehow solves your math problems (hah, true I was guilty of that when I was a school kid), but is fully aware about how it does it (the algorithm) and just let the machine do the boring bits.
I'll bite. In what scenario would it be useful to do this calculation in my head?
Doubling is a useful skill, sure.
> If I just passed milepost 472 and I average 55 miles per hour, how long will it take me to reach Mexico?
This would never come up, because my phone navigation will tell me at any point along the trip how long it will take, more accurately because it has my full speed data plus knowledge about traffic and other hazards ahead.
> How many bottled liters of water can I fit in this box?
Unless I have another box under consideration, then I probably intend to fit as many as possible, so I'll just fill. Complicating this problem can make a need to calculate (or count) more apparent, but further complications can also make a need to compute with a program more apparent too.
> How much is the 1.35% annual property tax on a million-dollar house, per month?
About 1e6/1e2/1e1, or $1000. If I want to be more accurate then I would use a computer -- 1. because I'm likely at my computer already when this comes up, 2. because if not I still likely have a phone.
Both you and chongli ought to consider this argument (ignore the stuff about violent video games): https://theodoregray.com/BrainRot/
It’s the same as knowing the editor commands, of whatever text editor you’re using, so that you don’t have to look them up constantly while working. It’s the same as knowing the basic functions and methods of the libraries and frameworks you use so that you can type them quickly without going to look them up.
Auto completion is a powerful tool but, in general, it’s not very helpful if you don’t know at least a prefix of the name of the function you’re looking for.
Basic arithmetic skills are like math literacy. If you’re constantly having to look words up in the dictionary then you probably won’t get through Lord of the Rings.
I linked further downthread but I think you should consider this argument (ignoring the stuff about violent video games): https://theodoregray.com/BrainRot/
Mathematics is a tower of abstractions. In the course of my education, I am learning how all of the layers fit together. Skipping all that and teaching people how to use Mathematica is not teaching mathematics, it's teaching dependence on a tool (and a proprietary one at that). It's like teaching people how to use Microsoft Word instead of how to write their own word processor. I'm very critical of the way technology has infiltrated the modern classroom. I think we're in danger of raising a generation of Eloi [1].
Or what if you programmed your own diagonalize function and used it thereafter (knowing over time you'd forget how to do it by hand)? Or would you insist on going through something like nand2tetris before writing in a high level language like, say, C?
I have more questions but they're mostly rhetorical at this point. Re my previous link, are you so smart that you can learn all that has been made known so far as a neat tower floor by floor (despite it not being discovered/invented that way), and still have room for anything new? Are you sure you haven't skipped anything? Are you sure there's a singular tower?
So you know how to diagonalize a matrix, either by hand or by using a magic box, do you know why you'd want to diagonalize a matrix?
As a final external recommendation, check out chapter 9, "Forget It!", in Asimov's book On Numbers: http://www.arvindguptatoys.com/arvindgupta/asimov-on-numbers... (e-page 75) If you haven't studied and passed an exam on compound addition (and subtraction, multiplication, division) how can you live with yourself?
I have no problem with using these tools, I just don't think they should be given to children in lieu of a traditional mathematics education. Society exists because we pass on knowledge from one generation to the next. This means teaching young people how problems were solved, not just handing them the solution. Do we want a world where everyone is dependent on technology but nobody knows how it works? That sounds like a post-apocalyptic scenario to me. Fun and interesting to explore in Caves of Qud or Numenera. Not a great way to organize a stable society.
Yes, but not all the knowledge, for then there would be no time for anything new.
> This means teaching young people how problems were solved, not just handing them the solution.
No, because this robs them of the time to build on that solution and do something new. This extends to all domains -- and all the way down to our most primitive survival needs. Most people have no idea how to build a home, they instead are typically 'handed' one (usually in exchange for money). Few can farm, hunt, and process food to the degree needed to ensure their own survival, but we eat the outputs from those who do, who are anyway also skipping steps by not having to learn and perform a solution that was maybe required hundreds of years ago when technology was less powerful. And taking advantage of all this knowledge we don't have to work for, then we can work for other, new things. This is not only fine but necessary for society to advance.
> Do we want a world where everyone is dependent on technology but nobody knows how it works?
We already live in such a world. Or rather, there exist critical things that no single mind fully comprehends.
So again, if you at least agree that not everything needs to be transmitted, then where are you going to draw the line? Do you think kids should learn to calculate cube roots by hand and prove that with a no-calculator exam? Why? How about logarithms by hand? (Though even before computers, pretty much no one did that either, instead they let a small number of people work really hard to produce many tables up to a few significant figures so they could use those results for bigger things.)
Don't you think the insistence on learning (and testing to demonstrate something was learned) so much "circus math" (math done for show, because there's vanishingly little other reason to do it by hand in current year) might have something to do with how so few students ever even get a taste of real linear algebra, statistics, calculus, and let alone more advanced topics?
I consider it a failure mostly of the education system that I didn't learn about rotation matrices until my first semester of college. They could have been introduced in 9th grade or perhaps earlier. But that would require cutting a lot of other stuff. (I'm still rather happy my 9th grade teacher taught us row reduction, made us do a few by hand and one big 3x4, but thereafter said "using rref() is fine". Meanwhile a Canadian friend reported to me that his "linear algebra" class in university consisted almost solely of doing row reductions of various dimensions by hand, all semester. Useless. But my same 9th grade teacher got very insulted when I wrote back some suggestions for topics he could introduce after taking my linear algebra class, even something as simple as the concept of the codomain, oh well.)
That is not the same thing. I am talking about technology which literally nobody understands. That's the premise in a lot of science fiction: a distant future dystopia where technology is slowly decaying and nobody understands it well enough to reproduce it. At best, people are able to scavenge parts from one broken artifact and use them to fix another.
And this is not a far-fetched idea. It has already happened. The fall of the Roman Empire led to a lot of technology being forgotten for centuries. I have also heard that, for example, CRT displays cannot be reproduced (because there are no more factories) and the knowledge to build a manufacturing process for high-quality CRTs would essentially have to be rediscovered.
Don't you think the insistence on learning (and testing to demonstrate something was learned) so much "circus math" (math done for show, because there's vanishingly little other reason to do it by hand in current year) might have something to do with how so few students ever even get a taste of real linear algebra, statistics, calculus, and let alone more advanced topics?
My original reply in this thread was about the use of calculators being bad, particularly in elementary school. I wouldn't exactly call the ability to quickly multiply 5 * 6 in your head "circus math." It's more like a bare minimum basic skill.
It's like learning how to type properly when you want to become a programmer. Yes, it's not strictly necessary to be able to type as a programmer. However, if you are in full "hunt and peck" mode, you are going to be very slow at getting your thoughts onto the screen. It's going to take so much mental effort just to input a line of code that your concentration on the deeper aspects of the problem will be adversely affected.
The same goes for math.
I'm still rather happy my 9th grade teacher taught us row reduction, made us do a few by hand and one big 3x4
If you can't do basic arithmetic, you aren't even going to be able to do one by hand. I would even go so far as to say you can't even understand what's going on in the process or what the bigger picture means (e.g. that matrix-vector multiplication is a linear combination of column vectors).
Are you going to be able to understand the Gram-Schmidt procedure or QR-decomposition or singular value decomposition without being able to do them by hand? I don't know, but I somehow doubt it. All of these processes lean heavily on basic high school algebra. If someone needs a computer to solve a quadratic equation (with integer roots) then they're not going to have much fun learning how to diagonalize a matrix.
Meanwhile a Canadian friend reported to me that his "linear algebra" class in university consisted almost solely of doing row reductions of various dimensions by hand, all semester.
That's really sad. My linear algebra courses taught me about the four fundamental subspaces of a matrix (and their relationships to one another), various matrix factorizations ([orthogonal/unitary] diagonalization, QR decomposition, singular value decomposition), the Gram-Schmidt procedure, the Cayley-Hamilton theorem, and many many more interesting things, as well as how to prove a lot of facts about this stuff. We also worked in abstract vector spaces and polynomial vector spaces and learned about quadratic forms and the normal equation which will give you any polynomial regression you want.
Anyway, the whole point of all of this is not to say that every single person needs to know all of this math. Only that some do. And I believe that if you create a math education system that leans heavily on technology without any manual work, you will not raise any students who are truly competent enough to do it. I have first-hand experience as a math tutor (for elementary and high school students) for the past 4 years. I have seen upper-elementary and high school students, unable to do basic arithmetic without a calculator, absolutely struggle to learn more advanced concepts. The reliance on the tool is a huge barrier to deep thought.
For some concepts, especially ones early on like arithmetic, sometimes memorization and mechanistic drilling is a prerequisite for solidifying the more general concepts at play which is what will really boost your skills (understanding what is actually happening when doing arithmetic). And sometimes you just need to do the simpler activity over and over before 'getting it' (like Feynman's counting with beans story he gave in order to justify his ability to explain fundamentals of QED without years of undergrad work first).
I agree that if you just show how to use the tool and never explain what's going on (and have no way to vet understanding that any explanation was sufficient) then it can cheat learning and further understanding... The most apt comparison is that of always asking your friend what the answer is, never sparing a single neuron for trying to figure it out yourself. Calculators can be like that to some people. Maybe the key is the subtle difference between "let me ask the calculator (or hey, Alexa)" and "let me use the calculator/Alexa". The second implies a belief of being able to do without, of seeing an alternative potential path towards the goal even if it takes more time.
And as one of the first bodies of math children will be exposed to with expectation to master, there's room in arithmetic for manual tedium to help solidify concepts that will be present in the future like copying things down in different places, value substitutions, learning and following (or programming) an algorithm, experiencing directly the tight feedback loop of seeing a problem or sub-problem and recalling a memorized answer instantly, parsing out numerical information from text or graphs, and so forth -- but eventually too, using a calculator or some device for almost all actual arithmetic. Even professional mathematicians will often outsource their brain for simple arithmetic, and anyone trying to multiply two 3 digit numbers in their head is likely just wasting the effort of trillions of firing synapses...
Anyway there's certainly room and need for some by-hand or in-head stuff, but I still maintain there's also a lot of wasted time (especially as subjects get more and more advanced) taken up by such activities and we'd do well to cast critical eyes on both traditional and newer computer-aware curricula. And then as a pipe dream, not holding everyone to the same pace.
I suspect that many tutors, parents, and even teachers never realize that kids are doing this. Then they’re shocked when a kid who seemed to be doing so well bombs the exam.
I feel the calculator is part of this phenomenon. In addition to immediately providing the answers so kids don’t have to figure it out themselves, it also creates the expectation that there are shortcuts in math and that teachers are just giving them busywork because that’s what adults do to kids.
That’s the heart of the problem, to me. There are no shortcuts to understanding.
But as has been said repeatedly, these calculators put Computer Science and BASIC terminals in the pockets of grade school and high school children and encourage learning in areas other than math.
The 89 let you either type the names of functions or get them out of menus at your leisure.
It's not the best experience in the world, but it's not significantly worse than typing on a touch screen. Remember that people tolerated typing on phone keypads for years, and this beats that by a mile.
[CTL] I/O EXEC
1:If
2:Then
3:Else
4:For(
5:While
6:Repeat
7:End
8:Pause
0:Goto
A:IS>(
B:DS<(
C:Menu(
D:prgm
E:Return
F:Stop
G:DelVar
H:GraphStyle
I:OPenLib(
J:ExecLib
You can navigate up and down the menu with the arrow keys and pick the keyword you want with the ENTER key, or you can just press the corresponding number/letter (which is much faster). You can also left-arrow and right-arrow to related submenus. For example, that "I/O" next to "CTL" is this menu: CTL [I/O] EXEC
1:Input
2:Prompt
3:Disp
4:DispGraph
5:DispTable
6:Output(
7:getKey
8:ClrHome
9:ClrTable
0:GetCalc(
A:Get(
B:Send(
There are never more than 3 submenus associated with any key, so you either get the menu you want, or you are only a single left or right arrow away. Menus (except the "Catalog" of all commands) have a maximum length of 35 entries, so you can always select a menu item by typing its corresponding number or letter (assuming you already know it). The worst case is 4 keypresses: faceplate button (like PRGM, MATH, or LIST), left- or right-arrow (if you need a non-default submenu), the ALPHA key (to type a letter), and the letter of a command more than 10 entries down in the menu.This is exactly the way that all menus work on the calculator, and all of the actions you can pick at the REPL are also valid program entries. The more familiar you are with using the calculator in general, the easier it gets to program them. I wrote a lot of TI-BASIC in high school in the early 2010's, and had a lot of the menus memorized. Typing the programs in was definitely not the hard part.
The only times you use alphabetical input when writing TI-BASIC are: * writing string literals * typing a one-letter variable name * referencing a custom-named list that hasn't yet been created, or has been deleted and already deleted.
While I was in high school, some people figured out that they could write notes in their calculator as programs, and covertly reference them during tests. The calculators didn't care at all about having unquoted strings and nonsense math stored in the programs, because the students never ran them. The teachers caught on to this and started checking that calculators were wiped before tests.
https://en.wikipedia.org/wiki/ZX_Spectrum#/media/File:ZXSpec...
It's not just input, either: many of those systems stored programs in pre-tokenized binary form, as well. It makes a lot of sense when your RAM and storage space is that limited.
* The editor is on a 16-column 8-row display, but the leftmost column always starts with the a ":" and the top row always has the name of the program, so it's more like a 15x7 display.
* There are only 27 numeric variables (A-Z and Theta), and X and Y get manipulated whenever you do plotting commands, but you can use the "Answer" variable to pass arguments and results to and from program calls.
* There are only 10 string variables, but they are not limited in length (except by total available memory), and you can use eval() on substrings (commence evil laughter!).
* Lists have a maximum length (I think 999 items?), but because numbers take up a variable amount of memory, you might run out of memory before the list is full. Or not, it depends!
* Same deal with matricies. Finite size (maybe 99x99?), and stored sparse in memory. The number of cells you can write to depends on what numbers you're writing.
* All variables are global. (Recursive programs require you to manually save and restore state.)
* TI-Basic's interpreter is REALLY slow. Not just because it's a Z80 running at 8 or 12 MHz, it really is inefficient. I learned good tricks (memoization) and terrible ones (omit trailing parentheses, commas, and double-quotes) to make programs faster.
* Comments make your code slower (and change the content of the "Answer" variable).
Between all of those, I spent way more time writing (and running) programs than debugging them. Fun times!
There's a key (I forget which) that brings up a menu with all the commands organized by category. You never have to type out the commands letter by letter.
The only way a laptop or tablet would have fit would have been to either have my notebook over the keyboard and touchpad, do away with the notebook and do all work digitally, or do away with the physical textbook and put it on the laptop. My experience with e-learning and e-textbook platforms suggests that I very strongly recommend against the latter two options.
---
Off the top of my head, a few more reasons:
Although TI's calculators are expensive ($100-$150 each, depending on the model), they are cheaper than almost all devices that can run Matlab, Octave, etc. The dirt-cheapest of Android devices are cheaper to buy, but have higher administrative requirements, are probably too slow to run CAS well anyway.
Calculators are much sturdier than smartphones, tablets, or laptops. Frangible case, thick ABS shells, rounded edges, low-tech big-pixel LCD. Calculators are subject to, and withstand, a great deal of use, neglect, and outright vandalism at the hands of teenagers. Tossed in backpacks, dropped onto floors or sidewalks, sharpied, spray-painted, engraved with anything available... The calculators survive this environment pretty well; it is entirely possible and reasonable for a student to be given and use a ten or even twenty-year-old calculator in class.
Not only physically enduring, the calculators remain relevant for long periods of time. Even though TI has released new models since the TI-83, many classes will allow any calculator in the family. Some students will have brand-new instances of the latest model, some will have hand-me-down or secondhand calculators, and other students will use loaner calculators from a fleet that the school has retained for years. Maintaining such a fleet is far cheaper and easier than maintaining a fleet of up-to-date, secure, and working laptops or tablets.
Calculators require less charging than laptops or tablets. A cheap quartet of AAA batteries can last a semester, or even a whole school year, in a calculator. If the batteries do die at a bad time, teachers will often have a stash of extras that can be swapped in by the student, allowing them to finish the class or exam. Tablets or laptops require banks of chargers, usually on mobile carts, and all of the cables need to be properly plugged in every afternoon, and sometimes before then. Any failure will result in a student who has to switch to an entirely new device (if one is available at all) in order to keep working.
Calculators are instantaneous-on. You don't need to wait agonizing minutes of valuable class time for the OS to boot, the network to connect, typing a username/password, loading the desktop, and launching a CAS program. At best, that process could take only a few seconds. At worst, it could take many minutes. Anecdote: halfway through one of my semesters of high school, some of the school computers (including one I was assigned to) were updated from Windows XP to Windows 7. The login system recreated your profile from scratch at every login. The result was that it took about ten minutes every day just for me and the 6 or 7 other guinea-pig students to log in to our computers -- a big impediment in a computer graphics class, in a school where classes were only 47 minutes long.
Calculators always work, and they always work the same way. They don't have mandatory security updates, certificate expirations, obsolete network configurations, missing user profiles, misconfigured product key servers, surprise UI updates, cloud-only functionality, or anything else like that. If it turns on, it works, and is exactly the same as it always has been. Another anecdote: In college, my ios app class was thrown in to disarray when we came in and found out that the university had updated to the latest version of xcode. The new IDE also came with a new version of swift. Our project was due later that week, and none of our code would compile. The instructors had to push the deadline back and create a "what we told you last week is different now" lecture the next day.
Calculators are much less of a classroom distraction. Even though they can have third-party applications and games installed on them, they have an overridingly clear purpose: to perform calculations. Doing anything else on a graphing calculator is tedious and difficult. Calculators can only communicate by wire, have no sound, and have smaller (and usually un-backlit black-and-white) displays pointing straight up from the desk, so they can't really engage/distract more than one student. Contrast with laptops or tablets, which students know are able to browse the internet, watch videos, and engage socially with their peers. Even though the devices can be "secured", the value of workarounds is much greater than for calculators. Savy students will spend more effort developing workarounds for internet-capable devices, and their peers will jump through more hoops to perform them. When workarounds are in place, their use can also be much more distracting than a calculator: students covertly chatting in class, playing flashy games, or having sound play out the speakers.
There's some wonderful software for these calculators out there. Even a functional Gameboy emulator exists, used it to play Pokemon during math classes back in the days!
It doesn't make money, it's just a simple way of proving you did an approximate unit of work.
What? I’m talking about something like BOINC or whatever, but with a project dedicated to factoring RSA keys. Similar to how we have one for protein folding, and whatever. Now, I’m not familiar with how RSA factoring works, but I’d assume a node would be given a “project” (a range of divisors to test), and if one works, it’ll report the factors back to the central server. Then the server would verify the work, and if it’s correct, we now would have a factored RSA key.
Now, you could do something like Bitcoin where the project is distributed, and if a node claims to have factored the block’s key, it’ll broadcast it to the network and be verified by the other nodes. Then the factorer(?) would be rewarded (idk, maybe FactorCoin?). The problem I see with that is: you would still need an authoritative node to say what they “keys of the day” are.
Maybe some rich person could set up a fund to pay out people who put effort into factoring? Or do a fund where people donate money that’s paid out based on effort?
Now, I am aware that 2048 bit RSA is virtually “unfactorable” before the heat death of the universe, but maybe 1024 bit keys or smaller?
Ultimately, this idea comes from an extension of the idea behind the RSA Factoring Challenge[0]: pay people for factoring keys.
Related reading: https://crypto.stackexchange.com/questions/70829/how-long-do...
[0]: https://en.m.wikipedia.org/wiki/RSA_Factoring_Challenge
Yes, that part. Some node is telling you what key to attack. What if they make the keys, hang on to the factors, and secretly hand them out to nodes they like?
That completely undermines the idea of "proof of work".
Without any real decentralization or proof of work, with a coin that isn't even scarce, nobody is going to mine that coin because they actually want it. They're only going to mine it because they want whatever bounty you're paying in real money. And at that point the coin is just a layer of obfuscation over "We're paying a dollar bounty to crack RSA keys".
If you have an 70 bit hash to break and offer a pile of money to whoever cracks it, you won't get a whole lot of attention. Instead you can offer a steady stream of rewards to anyone that matches at least the first 50 bits, building up a swarm of miners. Eventually someone will match all 70.
The question is whether you can set up a scheme like this for factorization. We already know it's a viable mining method for hashes.
But even with current tech and current methods, 2048 is doable long before the sun burns out. Bitcoin's approaching 2^80 hashes per day, on par with 1024 bit RSA. Rope in 10x as many computers and you could crack 2048 bit RSA in a mere billion days, give or take some constant factors.
The sun's way too small to supernova anyway. It will become a red giant that blows off the outer layers and leaves behind a white dwarf.
Not much going on there... seems the last on-chain transaction happened about a month ago:
I love this spirit. Glad to see it will continue with or without TIs blessing. I have been using ticalc.org since I was a teenager and calculator enthusiasm is and was a great way for kids to get interested in software engineering.
For example, if the result is 1,998,241 it should display that way---not 1992241.
I don't usually need powers of ten notation.
I don't mind adjusting settings, but I don't want to have to download stuff to make it do this.
They haven’t exactly innovated in this space in the last quarter century, but it was a nice product back in the day. The bill of materials for a modern version of these couldn’t be more than a few dollars.
I wish copyright terms were shorter.