Casio fx-CG50 calculator comes with Python built-in
casio.com
casio.com
It’s sad, but Casio’s been “s*tifying” their calculators over the past year.
Their 2023 calculators for high school are a particular highlight[1]: less buttons, more menus, more key presses for common operations. Sadly Casio are hugely dominant in many markets.
[1] https://b28mathstutor.co.uk/the-new-casio-classwiz-cw-calcul...
Where I grew up, exams disallowed any calculators or any kind of other electronic devices. From what I see, using calculators at exams is mostly an American thing.
Exams problems are designed to make use of only basic scientific calculator features, I doubt you have the need, or the time, to start sneakily writing VB scripts to try to gain an edge, while the proctors are not looking.
Feel free to adapt it to modern days but the concept stays the same.
If you don't include WiFi hardware, and don't plug in an Ethernet cable, cheating would be extremely difficult to say the least.
What sort of "defeat" are you taking about?
In the Netherlands we also had to have calculators during exams, because some questions just need a calculator to be solved. Especially for stuff like calculus plotting graphs is really useful.
For a trig exam for example if you don't allow calculators you are very limited in terms of what you can do. You could do a lot of trig identities etc but all the problems with a concrete answer would have to boil down to some sort of 30/60/90 or 45/45/90 right triangle. It's not reasonable to expect people to be able to calculate exponents and logarithms in their heads either beyond very simple integer bases and small powers. Forget about natural logs for instance. Likewise anything which depends on trig, exponents, logs etc eg converting rectangular complex coordinates to polar, adding vectors fitting any kind of exponential model, etc.
For a stats exam calculating things like standard deviation etc are almost unbearably tedious with a calculator let alone without, but you do need to be able to demonstrate you can do it.
I didn’t need a very advanced scientific calculator, in the exam it was mostly used as a replacement for log tables (remember those?).
The reason being a calculator instead of phones/tablets, is cheating, and programable calculators are already on the edge in some exams.
For simple maths a normal calculator is good enough, but you need a graphing calculator for more advanced math.
In my experience it's either been "no device at all", or "any calculator, but really only any calculator from this list".
Flashback to 2 decades ago where I'd scan and OCR large parts of text then copied them onto my Casio calculator over the serial port it had (on a mini jack even, IIRC). Didn't have a lot of memory, but enough, especially after doing simple find/replace operations like replacing all 'the' with 't', 'and' with 'a' and so on.
I was born in 1987 and I went through AP classes and an EECS degree at MIT and I never had a need to graph a function on my calculator.
There really isn't one, at least not when you have a PC close at hand that can run a Python prompt (or other language of choice that offers easy access to graphing tools).
So, maybe if you're a student and need a dedicated calculator for class. That's about it.
This would depend on the school, but sometimes also on the specific class (major vs. minor).
I just looked it up and it still seems to be valid:
- 1) Standard scientific calculators: Calculators without any graphing or persistent memory. Algebra exams would test your written calculation steps (e.g. getting to the derivative of a function), and how well you are able to translate functions to graphs.
Example question: "We are building an Autobahn that is defined by the function X. Please give the function of the tangent that merges into it smoothly at point Y. Make a graph of both."
- 2) Graphing calculators, but not programmable and not able to do derivatives. Tests were mostly about complex derivatives.
Example question: "Here’s function X. Please give derivates I and II if this function."
- 3) Programmable graphing calculators. More exotic theoretical and conceptual stuff where the actual calculation was the easy part.
Example question: "Here’s a complex body with some sides defined by functions. Calculate the volume. How would it change if function X was swapped for function Y?"
(Caveat: example questions are from the best of my memory at different grades in school, so things might be more similar in reality)
I was lucky to experience all three streams.
It wasn’t that one was objectively harder than the other, but more that the challenges were different.
The best thing about the programmable calculators was, though, that you could put Breakout or Space Invaders on them.
Now, it's a racket.
Some people are more 'visual' thinkers. I've always found that plotting a function or a system of equations or whatever I was working on to be the easiest way to understand what was actually going on. Ever since I got a graphing calculator in high school, I used the graphics and plotting features all the time to help visualize math problems.
But quite frankly they are handy to have around if you want to do a trivial analysis or find some roots. And the recentish ones have input methodologies and functionality that is not present on any smartphone app.
Still my go-to for "I need to get an answer to a problem quickly". I dabble with electronics regularly and they are very handy for that too.
They seem more suited to engineering where the equations you get might exceed the mathematical ability of students to solve them, or the maths is irrelevant to the engineering problem and you just want an answer within a few decimal places.
If I were a teacher I would worry that eg students ask the calculator to solve, get 7/2 and use that as a reminder of the technique to symbolically solve the problem.
A terrible fate indeed. A student using their head for thinking? Can’t let that happen.
Primary use case is I like having the history there on the screen, that persists between power cycles, and the backlit screen. Being able to graph stuff is neat but unused by me. Also the casio graphing calculators have spreadsheet functionality now, which is nice for crunching a couple of variables to find the correct set that arrives you at the target number.
It's also way more durable than my smart phone and I can leave it in the garage for weeks and weeks next to the drill press and it's still there with the last 20+ calculations I did on it, when I get back.
Main use case was quadratic equations, which were a significant part of the class. We could plot them to get an intuition of the effect of the parameters. Plot them to visualize the zeros (or the absence of zeros), or the minima/maxima to get intuition on those. Same for finding intersection points of a quadratic function and a line, or two quadratics. We also programmed the quadratic formula in it, to get faster results instead of typing it out each time.
Other parts of the class were trig and stats, from what I remember I don't think we used the graphing/programming much in these parts.
If you go to open an app on a single device that you do everything on and get lost along the way you have a lot fewer breadcrumbs.
It's probably not a large market that still prefers the dedicated device, but there are definitely users I know who do if for no other reason than mental focus.
I'm wondering how you do rendering: Usual rasterization per scanline per triangle or some other technique (s buffers)? Depth sorting or Z buffer? Any other tricks?
The rendering is based on the triangle renderer in https://gitea.planet-casio.com/Lephenixnoir/Azur which renders in fragments to the fast on chip memory so it isn't bottlenecked by the slow main RAM, but I customised it to add textures etc. It's using barycentric coordinates over a bounding box which is probably not as fast as scanline rendering but I can try to make it use scanlines at some point.I'm also using parts of https://codeberg.org/drummyfish/small3dlib. It's using depth sorting which works fine for a simple voxel world like this but if I add things like entities and non-full blocks that might complicate things. Also, to speed things up it uses affine texture mapping (which I think yours uses too?) but splits the triangles when they get close to reduce the distortion. The splitting is causing the seams in the video, I can probably improve it by having sub-pixel precision in the triangle rendering or something
Ok, interesting. Does it use barycentric coordinates for texturing only or also for single color triangles? I see that the tree is not textured and I wonder whether that's to save texture memory or to use scanline rendering.
> It's using depth sorting which works fine for a simple voxel world like this but if I add things like entities and non-full blocks that might complicate things.
It might, but it should still work fine as long as there's no unusual geometry, like overlapping itself. Depending on how you sort everything, freely moving entities might be complex but I don't think non-full blocks are much of an issue.
> Also, to speed things up it uses affine texture mapping (which I think yours uses too?) but splits the triangles when they get close to reduce the distortion.
Yep. I didn't bother with splitting up triangles (or even using partial Z based interpolation like Quake), as I don't think it's that bad of an issue.
Maybe I can deal with z-sorting entities by splitting them on voxel boundaries, and I guess dividing them again at any boundaries within non-full blocks (is this similar to https://en.wikipedia.org/wiki/Binary_space_partitioning?)
For the affine texture splitting, as far as I can tell your game is more focused on creative mode/building whereas I might also want to add a survival mode so for that you're more likely to be up close to the blocks (e.g. in thin underground tunnels) and then the artifacts get much worse so I guess it matters more for me.
The code is at https://github.com/Heath123/minecraft-casio if you want to look at it (textures are in a branch) but it is quite messy
Heh, same!
> so it's mostly just a leftover from that. I did end up writing a scanline renderer for the flat shaded triangles, I think for those the bottleneck was transforming the vertices though.
IME vertex transformation is not expensive at all, compared to actually drawing on screen, at least if there is HW support for multiplication. Optimizations like merging identical block faces next to each other also reduce the total number of vertices, but this makes the texture distortions more apparent.
> Maybe I can deal with z-sorting entities by splitting them on voxel boundaries, and I guess dividing them again at any boundaries within non-full blocks (is this similar to https://en.wikipedia.org/wiki/Binary_space_partitioning?)
Kind of, yeah. With the structure of blocks in a chunk there is basically already a layer of partitioning that can be used, though it might not help sorting that much. Is there enough RAM for a Z buffer? If so, it might just be fast enough...
> For the affine texture splitting, as far as I can tell your game is more focused on creative mode/building whereas I might also want to add a survival mode so for that you're more likely to be up close to the blocks (e.g. in thin underground tunnels) and then the artifacts get much worse so I guess it matters more for me.
I never really bothered with that also because in tunnels/caves there is a bigger issue: There is no hidden surface elimination, which results in overdraw and due to the rather low effective fillrate in FPS drops. I couldn't come up with a good way to implement that properly without hurting performance itself.
> The code is at https://github.com/Heath123/minecraft-casio if you want to look at it (textures are in a branch) but it is quite messy
I had a look, it's really not. The asm is also readable. Is it currently memory or CPU bound?
After that nothing significant was added.
Oh! I see now that they started manufacturing 15c again in 2023! https://en.wikipedia.org/wiki/HP-15C
The details may be discussed (indefinetely). There may even be earlier versions than 11c that has the similar feature set but the longevity of the model and the build quality of the model says it all i think.
I’d still use mine today if I hadn’t accidentally smashed the screen. I bought a 49G+ as a replacement to use in college, but it just… wasn’t as good. Despite theoretically being much more powerful and having more features, it felt like plasticky garbage and was never really a joy to use the same way the 48 was.
Technically they dont sell 11c anymore but 15c looks similar enough count as the same to me (someone who has the time to read the fine print may correct me).
All of them are fantastic. And once on RPN, it's hard to go back.
As mentioned in another reply, HP does still sell a successor to the HP48 series. But regardless, I don’t think determining the quality of a calculator based on the business decisions of a company known for its persistently and astonishingly terrible corporate choices really makes a whole lot of sense…
But yeah it is not the same thing obviously.
RPN rules for sure.
EDIT: OMFG no and look at the prices
For finance specifically the HP12C is the mac daddy. I have two of them and they're completely fantastic. They took me through an 8 year finance career and even though they are 20 years old now they are both still on their original battery.
[1] https://en.wikipedia.org/wiki/HP-42S
[2] https://www.swissmicros.com/product/dm42
[3] https://thomasokken.com/free42/
[4] The processor is much much more powerful and it has 1000s of times the memory and essentially unlimited stack space. The instructionset is slightly expanded in a few useful and thoughtful ways. And it has a USB connection so you can upload and download. But original HP42 programs run on it unaltered.
Why would that matter? Would Micropython be able to run "most Python libraries" anyway?
I'm sure you'd run out of space before too long, but it'd probably improve usability.
Python comes with Casio fx-CG50 calculator built-in.
A huge downgrade from classic calculators with non-retro-illuminated screens, such as the venerable m68k-based TI-89.
But I got no real complaints about my HP50g, TI-86, TI-89 or v200 displays in the first place.
I usually have excel sheets or python/matlab scripts. However, this simulator felt self-consistent enough to develop muscle memory for quick back-of-the-envelope work.
JRPN15C and JRPN16C are also awesome, even more so in landscape mode.
The free version does have an ad banner, which I have to tolerate although I paid for it ages ago because this phone doesn't have Google play on it.
A unit-aware calculator is what I really crave, however, and I keep going back to Google for that which is pretty shameful. E.g. (1GWh/ 1 year)/2 km^2 in W/cm^2
Did you mean TI calculators? I have never seen anyone use an HP calculator in the American education system, much less one being required.
A sad side effect of this is few get suckered into accidentally learning to write software by trying to pay games in their maths lessons.
- https://youtu.be/UnethgugvPA
- https://youtu.be/GHWcLdQnfqI
Online emulator that runs in your browser: https://getupsilon.web.app/simulator
The hard to find batteries (not impossible) tend to be the wierd voltage batteries that cameras mostly used for light metering.
For us, Casio ruled, there weren't that many TI or HP calculators around.
I still want to see a nice app capable calculator OS for the Cardputer though. Seems ideal for a foss calculator.
Perhaps there's something we've overlooked, like real time sync with a CAD app, to make them relevant IRL!
https://education.ti.com/en/products/calculators/graphing-ca...
Raspian used to come with Mathematica. There are plenty of pocket raspi machines you could run it on and boot directly to a window.
https://www.open-electronics.org/pocketpi-raspberry-pi-pocke...
also, hp RPL was stack+lisp in disguise
It has to show input and output at the same time (or at least full input), be ergonomic (backlight, nice keys) and not looking childish.
Right now I’m borrowing my SwissMicro RPN which is awesome gadget but outside of complete overkill - its not backlighted display is hard to read.
Context is that the kid has very short working memory. Whereas they understand the concepts really well (I help with tutoring) due to frequent mistakes and forgetting numbers mid-flight the grades are awful which negatively impacts attitude etc.
I noticed positive impact with calculator because not only they start to memorize some basic calculations, they also start to feel general result correctness based on those visual inputs.
As mentioned before - SwissMicro works but maybe there’s something with backlight and not RPN based. It has to be calculator not an app because I hope to convince school to let them used daily.
There are some great comments and discussions there.
I ended up buying the Casio fx-991 ES PLUS as a result.
Includes beautiful UI (roots, exponents and fractions are displayed like we write them, so more is visible, and the navigation is easier), spreadsheets, printing out values of a real function, solving any real equation for X (one solution at a time, gotta give it different starting Xs for optimization, though), some very basic probability (Gauss) statistics (e.g. linear regression), up to 4x4 matrices, finding derivative in a point, sum over a range, integral over an interval, arithmetic with complex numbers etc.
It doesn't render graphs, but, it renders a qr code that a phone can scan and then the phone shows the graph, so some graphing is there for studying, but not an exam.
Practically speaking, I probably would have been better off getting a much simpler calculator with bigger number buttons. But I do love the aesthetic of the scientific calculator, it seems to hold so much potential.
This fits your checklist I think: - notably more intuitive than the classical Texas Instrument / Casio - calculations input are shown - ( not that it seems to matter for you, but it also has python on it )
It's like the FX-991ex mentioned elsewhere but it remembers more things and has history and a display that is decent.
I own one and have been using it for a couple of years now.
Many consider its TI nSPIRE successors to be flawed.
Avoid TI-83/84, despite fancy-looking backlit screen and smartphone-inspired UX, they are ultimately the successors of TI-82, the "high schooler" stripped down functionality version of the TI-85.
Sites dead to me and I won’t by their product. I don’t care how cool it is.
Edit. Not even a newsletter, or cookie consent banner. Awesome.