Hacker News new | past | comments | ask | show | jobs | submit login
Texas Instruments new TI-84 Plus CE Python graphing calculator (ti.com)
43 points by kensai 3 months ago | hide | past | favorite | 70 comments



Graphing calculators for school use infuriate me.

For the price of a calculator[0] you can instead buy an entry-level Chromebook[1]. You would get a general purpose-ish computer instead of a highly specialised, highly limited, woefully underpowered device. It feels like a weird case of regulatory capture.

    0. https://www.amazon.co.uk/Texas-Instruments-84PLCE-TBL-2E5/dp/B01086MEM2/
    1. https://www.amazon.co.uk/Dell-Chromebook-3120-3120-7898-Resolution/dp/B016DP0XUW/


People in the UK are forced to buy these calculators also? Thought it was an exclusively US racket. Another hit to american exceptionalism.

With the rise of smartphones, I figured I was part of the last generation forced to buy these overpriced TI calculators. It's so sad to see this racket going strong today.

You spend $100 ( a lot of money to most people ) on a useless device that you don't ever use again. Never once in college or thereafter have I used my TI calculator.


Calculators are still distraction-free. They're a purpose-build device.

Our exams in engineering school took into account we could solve 5 equations/unknowns problems with our TI-92 Plus (at the time).

Can't imagine students with Chromebooks during exams (edit: or maybe I'm just from a different time)


There's good reasons to having a dedicated, more limited device.

What bothers me is that the device is a hard requirement for students, which means TI and Casio get to charge unreasonable amounts of money for these calculators that are not reflective of what they'd otherwise be worth. I brought up the Chromebook not so much as a suggested alternative, but as a benchmark for what sort of hardware you can get for the same money when your market isn't completely tied to your product.


But maybe someone has a contract with some schools so it's good money.


It blows my mind that TI has such a stranglehold on the educational calculator market. Producing a TI-84 must be a few bucks vs. the >$100 they sold them for when I was in school.

Does anybody know of open source alternatives that could be pushed in the classroom? There’s no way they can patent math..


They didn't patent math. They survive for a few reasons:

- Standardized testing calculator requirements are crafted in such a way that graphing calculators are allowed by specific model: https://apstudents.collegeboard.org/exam-policies-guidelines...

- Textbooks contain instructions on using TI calculators (and sometimes, if you're very lucky, Casio). Teachers can only provide personal instruction with TI because that's what the schools buy (presumably thanks to marketing and dealmaking).

Math classes are already hard for high schoolers. Having to deal with the disadvantage of being on a different platform from your peers is hard.


The problem is that once you hit college you have to give the calculator up and use the scientific calculator for 2 years in the weedout classes


The TI-84 was worth it for how much easier it made doing assignments. The extra screen space and the ability to easily edit the equations you entered and recall past entry probably saved me hundreds of hours. Just need to make sure I was proficient enough with my Casio scientific calculator for tests and exams.


There's the NumWorks calculator with its emphasis on modern UI/UX and their source code is available on GitHub, but it's not open-source and they recently had to lock things down because of issues with some particularly obtuse national exam boards in Europe about the openness of their platform...

Otherwise there's also Casio with the Graph-3E+E II and the Graph-90+E (European models, I'm not familiar with the American ones) and HP with the HP Prime, but they all run proprietary firmwares.

There's also SwissMicros with their DM42 calculator where they recently split and open-sourced their Free42-based application from their proprietary operating system for GPL licensing reasons. But they target the engineering market and they don't have Press-To-Test capability.

There are competitors out there and the graphical calculator market situation is far healthier in Europe than North America. But to break TI's monopoly over there you'd need to somehow break their T³ (Teachers Teaching with Technology) lobbyist program and their hold on teacher unions, textbooks and politics...


> Does anybody know of open source alternatives that could be pushed in the classroom?

I have no idea to be honest but they wouldn't be that hard to make given the wide choice of portable computational power. Surely wouldn't be all that complicated to 3d print a housing and shove a rpi zero in there or some of it's most powerful cousins. That said, with all the parts and effort I doubt it would come a whole lot cheaper.



there are many calculators which are suitable and approved for classroom and usage in standardized tests, and most are not TI models.

TI enjoys market dominance thanks to teachers knowing them well and wanting to have a single teaching experience for all students, rather than having 25 students and 25 different sets of instructions per class.


Didn’t they recently remove the ability to run native Z80 binaries in some of their calculators because of concerns of cheating software being distributed? I imagine this will be a pretty locked down Python environment.


My brother used to make C programs and trade them to other kids for $5. He had one for Algebra 2, Physics, and Pre-Calc. Teachers started wiping calculators before tests, but didn’t remove the binary programs he made. Became a big deal.


I made an app that showed a fake 'wiped data' screen. Teachers wouldn't think to actually watch me delete the apps lol


Hah! You did that too?


More comments here (3 months ago):

https://news.ycombinator.com/item?id=27084879 (158 comments)




Why don't they offer a paid app with their calculator emulated? I keep my various calculator emulators on Android because I love the ease of all my custom TI apps. Would be really nice if they just made a decent Android application for all the engineers out there like me.


> Why don't they offer a paid app with their calculator emulated?

Because their main market isn't permitted to have phones on their desks during tests.


Exactly. If I was not required to, I would never have bought a TI. Gnome Plots or desmos are just so much more convenient.


One of the main reasons the physical calculators still exist is for schools where students use them during tests. Allowing people to have phones or any internet connected device during a test is a recipe for massive cheating.

Schools would have to get into the constant cat and mouse game any parental control software maker gets into to have a chance to stop it and that fight usually goes to the students rather than the adults trying to lock the device down.


One of the nice things about a real calculator is it is easy to enter numbers and do basic operations on them without looking. That's usually quite a bit harder on an emulated calculator on a touch-screen device due to the lack of tactile feedback.

I wonder if one could make some sort of overlay that you can put on top of the touchscreen when used an emulated calculator to help with that?

One approach could simply have a cover over the virtual keyboard area, with holes in the cover over the virtual keys. This would give you some tactile feedback when moving between keys.

Fancier would be a cover with actual push buttons that when pushed touch the screen with something that will register on touchscreens.

To make it really fancy, also have an "On" button that rather than touching the screen uses Bluetooth LE to communicate with something on the phone that launches or switches to the calculator that matches the keyboard overlay.


I'm guessing they view releasing an official calculator app as a move towards eventually replacing the hardware calculator. It could help legitimize a cell phone calculator to schools and exam boards.

I'm also guessing their product margins are better on hardware than they would be on software, since there are so many other calculator apps available. The market of people who want a TI-branded calculator app on Android or iOS is a lot smaller than the captive student market.

IMHO eventually the tides will shift and school districts and exams will start allowing cell phones, and I imagine just before that happens they will suddenly discover they have a nice Android/iOS app ready to launch.


> IMHO eventually the tides will shift and school districts and exams will start allowing cell phones

I doubt that will happen as an allowed accessory device, but what will happen, I expect, both school-issued and standardized exams will move from exams for which you can use an accessory calslculating device to online exams done on (possibly standardized, definitely closely monitored) computers which will have calculator utilities installed (possibly integrated into the exam), rendering dedicated educational calculators superfluous.


    IMHO eventually the tides will shift and school
    districts and exams will start allowing cell phones,
Why would this happen, and why would it be a good thing?


I think it's just the inevitable direction of a few trends. Technology is increasingly being adopted in schools, e.g. Chromebooks in classrooms, online and hybrid learning, submitting homework via the web, etc.

At the same time, kids are getting cell phones at earlier ages, and "cell" phones have already evolved into general purpose computing devices which are becoming essentially required for modern life.

Eventually, I think it's going to be hard to justify requiring students to purchase specialized calculator hardware when everyone already has a cell phone.

As to whether or not it's a good thing, who knows.. But the hypervigilance against student cheating only exists because of the outsized focus on exams. College Board clearly wants to prevent cheating on the SAT so they can retain their position as the gatekeeper of college admissions. But perhaps final exams and standardized tests aren't the best approach to evaluating students, in the same way that whiteboard interviews might not be the best way to conduct interviews.


    whiteboard interviews might not be the best way to conduct interviews. 
Certainly agree with you there, but...

    But the hypervigilance against student cheating only exists because of the outsized focus on exams.
Agree with you about the outsized focus on exams, but deemphasizing exams (a good thing) is quite a different thing than allowing phones (and therefore net access) during an exam. We want our students to be proficient at searching for information online, but a maths exam shouldn't be the place to test that skill.

With net access, students for example could be fed the literal answers to a standardized test that was already taken by people in a different time zone. And what if there's a net outage during the exam?

Also, while the TI calculators are obviously underpowered and their stranglehold on the educational market borders on corruption, there is value in a standardized tool. What about students without phones and cellular data plans? What about students who can't afford apps, etc?

Last but not least, while the compute power of a TI calculator pales in comparison to, say, a phone or RaspberryPi at half the cost -- is the lack of compute power on tap really a problem? I got through calc I-III just fine with a TI back in the day. I would not say the TI was my limiting factor in any way.


A language with significant white space seems suboptimal for a device with a small screen .

I remember fondly my wall of text no indentation TI basic programs


Good use case for using tabs and setting a low tab size. But still


Such an odd product space at this time, they'll probably never be used outside of education.


"Millions of school children will be required to get one every year" is a pretty decent market.


As is "on a short list of devices that can be used during certain standardized exams"


To be honest, I really don’t get why the SAT board allows using calculators anyway. They can certainly make the numbers in the math questions easier to calculate (make it divisible without any weird fractions/decimals). And to be honest if you are somewhere in the pre-calculus/calculus level you should have an intuition of how to roughly draw graphs by hand (without a graphing calculator).

It really seems like corruption of the College Board (and many other western educational institutions) at this point...


Trig functions are basically impossible to do that with unless you limit the angles drastically then you're still testing memorization instead of actual math skills.


There is a common issue with limiting the angles in trig, and only requiring division with an integer or simple fraction solution: It provides a lot of help to the test-taker, based on their test-taking skills rather than their math skills.

If the test-taker can discard mistaken answers because they don't look like the kind of answer the test designer would choose, the test diverges from testing for the desired skills.


Yeah I remember doing that too. Sometimes you could eliminate all the other answers because they weren't in the right area or the wrong sign. It was also interesting to see how answers would often have one that would be your result if you missed a step or had some other smallish error in your work.


You can teach the students trig identities to expand the choice of angles. Moreover, the purpose of the lesson should be to teach the method of solving the problem. Pushing the buttons on the calculator to get a final answer in decimal form (only an approximation) is extraneous to that goal.


Or they could go really old-school and provide a look up table...

sin(x) = y

for a variety of values of x.

Or, even nicer -- instead of having a correct numerical answer, they could write the answers as formulas. Then you wouldn't need to know the actual values at all. (Then again, this could also be a pain).

But some combination of the two should be possible without needing manual computation.


It's been a long time since I had to use the identities but looking over them quickly I don't see how they help you get the approximation of cos(70 deg) knowing the 5 basic values that I memorized back in school of (0,30,45,60,90).

Even if getting the answer needs a calculator the process to get to that point is still testing the algebraic/calculus/trig/geometry skills the test is supposed to test. You can often get rid of the need for a calculator by formulating the questions carefully so the numbers are simple to work with but sometimes you can't do that easily.


Even if getting the answer needs a calculator the process to get to that point is still testing the algebraic/calculus/trig/geometry skills the test is supposed to test. You can often get rid of the need for a calculator by formulating the questions carefully so the numbers are simple to work with but sometimes you can't do that easily.

You can also just accept cos(70°) as a final answer without asking students push buttons on a calculator.

For more advanced students you could teach them to calculate even weird values like 70° using a few terms of the Maclaurin series for cosine:

cos(x) = 1 - x^2/2 + x^4/24 - x^6/720 + O(x^8)

But that's all beside the point. Mathematics education should focus on understanding and applying the concepts, not using technology. The educators' rationale that "students need to learn how to use technology" doesn't really hold water when it comes to calculators. It's far easier to teach someone with a degree in mathematics how to operate a calculator, having never used one, than it is for someone totally dependent on a calculator for even basic calculations to obtain a math degree.


> For more advanced students you could teach them to calculate even weird values like 70° using a few terms of the Maclaurin series for cosine:

You /can/ but by the the time that is introduced, which is usually college since we're talking calculus, you don't want to test basic trigonometry. The tests at that level are about something else not about the particular values of the basic trig functions. Personally once I got to calculus very few of the questions were about the numerical result of a function.


You can get close-enough ballpark answers on the angles between (0, 30, 45, 60, 90). (If the questions are multiple choice, then you can design it in a way that you don't need a calculator) And this is actually quite an important handy skill you will have in real life, since later on when you're drawing graphics/diagrams either on software or hardware you really need that intuition of ball-parking angles.


I really don’t get why the SAT board allows using calculators anyway

Especially since (at least in my experience) basically none of the math courses at University level involve a calculator.


> Especially since (at least in my experience) basically none of the math courses at University level involve a calculator.

A lot of non-math courses (e.g., in the sciences) at University level involve numeric computations that want some type of calculation device to avoid needless pain, and the math that is tested on the SAT feeds into those courses as well as math courses.


Yeah, but I really don't get that you need to be "educated" to use a calculator - it's just something that's just too banally simple. It's definitely not a skill that needs to be explicitly prepared for high schoolers getting into college.

And to be honest, you don't really need one of those fancy expensive TI graphing calculators to do all those physics/chemistry problem sets. You just need a good-enough scientific calculator (for example, a cheap Sharp one you can get for $20 bucks) and there would be almost no difference in the time it takes to finish your homework.


this greatly depends on the university.

The first university I went to allowed calculators and required TI nspire for calc 2. When I transferred the second university did not allow graphing calculators and covered half the content in the same period of time. (calc 2 content was covered in calc 1 at first university)


Out of curiosity, which parts or topics of the 'calc 2' curriculum involved calculators? Where you using it for numerical analysis or for symbolic algebra.


While we're at it, maybe we should have students write their answers with ink and quill onto rag paper. The College Board is clearly in the pocket of Big Ballpoint.

If anything, a calculator is under-equipping students in an exam. Anyone using these skills professionally is going to be doing so with tools far more sophisticated than a graphing calculator. We need to be testing their ability to understand and apply principles, not pit hand-calculation skills (which they'll never use in real life) against a stopwatch.


I have a TI-83 and an HP 19B II and both see regular enough use that they live on my desks (one at home, one in the office) rather than in the drawer. The calculator on my phone sucks (no history, difficult to enter anything more complex than adding up a few numbers) and I don't even know how to calculator on my Mac (because I never had a need to).

I use the calculator as an extension to my brain, it has a little memory and a lot of quick compute available, I know how it works well enough that it's all muscle memory and invisible to my conscious processing.

If quality scientific/business calculators ever go away I'll be sad.


Yeah, this.

The adding-Python big screams desperation a little.


I have one of these. It's essentially Circuit Python (3.4). It has a limited number of libraries, but overall, it's pretty cool. You can include other python files on the calculator, so you can bring your own libraries if you need to.


Input via the keyboard? Sounds like a rather painful experience.


What version of python will it be? How complete will it be? Also, will you be able to add packages from pip via USB cable?


A version of Python 3 based off of CircuitPython that they've tweaked.

https://blog.adafruit.com/2021/05/20/python-snakes-its-way-t...


Mine is 3.4


It’s been available in Europe for many years.


> Available fall 2021.

> This next-generation model replaces the TI-84 Plus CE graphing calculator.


Next-generation? They've just glued a 48MHz Cortex-M0+ ARM micro-controller with 32 KiB of RAM on the motherboard to act as a co-processor for executing CircuitPython. It's basically a TI-84 Plus CE from 2015 with the TI-Python adapter from 2019 built-in.

Given the co-processor's lack of performance and the fact that it's connected through an UART channel, it's just about the slowest, weakest Python implementation in a calculator out there... It's been four years since the introduction of the NumWorks calculator and its Python capabilities and that's the best they can do?


They don't really need to do better. They are TI and have a monopoly for "calculators required for class".

I have a TI89 from 20 years ago and it still works for doing math from 2021.


A monopoly on the North American high school market perhaps, but over here in Europe the NumWorks, Casio Graph 35+E II and to a lesser extent Casio Graph 90+E are wrecking TI's market share so badly that they had to release the TI-82 Advanced Edition Python (no rechargeable batteries nor USB-OTG capabilities in an old shell) with a significant price drop just to stay competitive. So they really had to do better, just not in the USA so far.

The modern replacement for a TI89 would be a TI-Nspire CX II CAS because both were/are high-end CAS calculators. But the TI-84 Plus CE Python in its american middle market segment is an embarrassment and an aberration only sustained by their monopolistic practices. The fact that they can get away with this for new graphical calculators at full price in America is just sad.


Yep, I love my TI-89 Titanium. Has a USB connection and programming it in C (via TI-GCC) is easy enough. My Game of Life app just eats whatever pixels it finds on the screen and runs at a decent speed. And my disassembler lets me read the OS code :)

Thankfully, the TI Connect software is 64-bit, otherwise I'd be screwed.


The TI-89 was awesome, though. It isn’t much now anymore, but a decent CAS in a pocket calculator was a big deal. I used it for many years through Physics BSc to a PhD.


> "Python is a programming language that is easy to get started with, good for beginners"

I couldn't disagree more. In my experience, Python is a terribly difficult language for anyone who doesn't already have a solid grasp on common programming concepts. Its syntax is easy to read, but it's chuck-full of features and optimized for experienced developers, not beginners.

For example, consider a simple counting loop in C...

  for(int i = 0; i < 5; i++) {
    printf("%d\n", i);
  }
That code is a little obtuse, but what it does is very simple. The `for` loop requires three statements - initialization, condition, and iterator. The initialization statement (int i = 0) is only called at the beginning of the loop and is used to define our variable (in this case, i).

Next the `for` loop executes the condition statement. If the condition evaluates to true, it executes the body of the loop, then the iterator statement, then jumps back to the condition and tries again. If the condition evaluates to false, it moves on to the next line of code after the `for` loop.

In this case, our loop initializes i as 0. The condition `i < 5` means the loop will execute the body until i >= 5. The body simply prints the value of i and, after the body is executed each time, the loop executes our iterator statement which increments i by 1.

So long as you understand variables, conditions, arithmetic operators, and the `printf()` function you can figure out a `for` loop in C. Now consider the same thing in Python...

  for i in range(5):
    print(i)
That code is pretty easy to read, but what does it do? The `for` loop is used to iterate over an "iterable" object, which is a collection of multiple values. The body of the loop is executed for each value in the collection and assigns i a value from the collection for each iteration. In this case, our collection is output by the call to `range(5)`. The body of our loop simply prints the value of i.

What's an object? An object is a thing with attributes (variable within the object) and methods (functions within the object). Objects can be values of variables just like any primitive value.

What does range do? The builtin function `range` outputs a generator which yields values from the minimum (default 0) to the maximum (in this case 5) at a given step (default 1). The minimum is inclusive but the maximum is not so in this case it will yield 0, 1, 2, 3, and 4.

What's a generator? First we need to define "iterator". An iterator is an object which helps to iterate over a collection of values. All iterators have a special `__next__()` method which returns the next value in the collection. When there are no more values left to iterate over in the collection, the `__next__()` method raises a `StopIteration` exception. A generator is a type of iterator which mimics having a collection but instead of holding a collection of values in memory and iterating over them, it generates each value one-at-a-time only when the `__next__()` method is called. In our case, the generator starts at 0 for the first value and adds 1 to the output each time `__next__()` is called. When it reaches 5, instead of returning it raises the `StopIteration` exception.

What's an exception? An exception is a mechanism for interrupting execution of code. Instead of continuing to the next line of code, an exception causes the program to exit the call stack one level at a time until it either reaches the top or is caught by something. In our case, the `for` loop catches that `StopIteration` exception for us and uses that to know when to stop. Hopefully you know what the call stack is by now.

Yeah, a novice could probably ignore most of this stuff and just take for granted that the body of the loop will get executed for each value in the range 0..n (where n is the value given to `range()`). But this is just one example. Python requires novices to take a lot of things for granted from the start. Its syntax is mostly simple and elegant, but in terms of functionality it hurls developers into the deep end and they often have a hard time staying afloat if they haven't already learned the basics with other languages.

...that said, I'm rather fond of Python and think it's a great fit for programmable calculators for a variety of other reasons. "Good for beginners" just isn't one of them.


You forgot to explain how the CPython interpreter works, how the operating system works, as well as how a computer works, how a modern super-scalar, out-of-order multi-core microprocessor works and the physics behind silicon-based integrated circuits and electronics.

Abstractions are a good thing. When I write that for loop in C, I don't need to worry how the compiler will translate this into an abstract syntax tree, how that tree gets transformed into machine code nor how the microprocessor will interpret and execute it. I just think in terms of the abstract C machine model unless I need to peek under, usually for performance reasons.

If you truly believe in first principles for teaching programming languages, there's Forth, where a minimal implementation is basically a dozen or so of native primitives and an indirect threaded code core, leaving everything else to the programmer (disclaimer: I've never programmed in Forth nor bootstrapped an interpreter). Or Brainfuck if you don't mind a Turing tarpit, but I'd think twice before introducing that as a beginner's first programming language.


That's not fair. `range()` is a function which outputs something and understanding what that something is is imperative to understanding what that Python code does. I didn't start talking about the internals of `range()` or how the language is interpreted/compiled because none of that is necessary to understanding what the code does.

I'm not just sharing my personal thoughts here. I know half a dozen people who tried and failed to start learning programming with Python. Some of them moved onto other languages and had a better time while others gave up on the skill entirely. This is just what I've learned from discussing the issues they had. I have no reason to disparage Python. It's my favorite language and by far the one I use most.


And yet you've described how "range(n)" is implemented in exquisite details, whereas the caller only cares about its interface.

A beginner would further only care about its observable effects, which here would be at best something like "that returns something that's like a tuple containing the integers from 0 to n-1" and at worst "it makes my for loop run n times". Which is actually a fairly reasonable interpretation as long as the beginner doesn't try to concatenate a range with a tuple.

When I write a for loop in Python, I don't think about StopIteration and stuff, I just want to iterate something. Only if I were to implement a custom generator or iterable would I worry about that.


> And yet you've described how "range(n)" is implemented in exquisite details, whereas the caller only cares about its interface.

I didn't not say anything about how `range()` is implemented. I only described exactly what you said the caller should care about: the interface. I briefly described the inputs and outputs, then I went into detail about how the output is used by the `for` loop.

> A beginner would further only care about its observable effects, which here would be at best something like "that returns something that's like a tuple containing the integers from 0 to n-1"

In which case you need to describe what a tuple is and how a for loop uses it. In which case we're back to talking about iterators. All `for` loops in Python use iterators. There is no getting away from that.

> When I write a for loop in Python, I don't think about StopIteration and stuff, I just want to iterate something. Only if I were to implement a custom generator or iterable would I worry about that.

Same for me. That's because we already know how this all works and we know what parts we actually need to consider to implement a solution. That hardest part of getting into programming is building a fundamental understanding of how features work and how you can use those features to solve problems. And Python is filled to the brim with relatively complex features designed to help experienced programmers solve complex problems quickly and easily.

Like I said in my original post, you can gloss over details if you want. But understanding iterators is essential to understanding how `for` loops work in Python and if you don't understand how a `for` loop works, you'll struggle with understanding how and when to use it in future applications.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: