Hacker News new | past | comments | ask | show | jobs | submit login
Scrubbing Calculator (by Bret Victor, author of Kill Math) (worrydream.com)
58 points by tokenadult on Sept 11, 2011 | hide | past | favorite | 15 comments



I may be misunderstanding this, but isn't this only good for monotonic (whether increasing or decreasing) functions?


It seems like the calculator is true to its name in that it only evaluates the given input function. Whether or not a function is monotonic should have no bearing on the calculator because it isn't actually solving anything, only evaluating. The solution method takes place in the user's mind and so the user would need to recognize that a given equality may be untrue (that is, the problem is unsolvable) but this would manifest in the user being unable to drive two equations to a single answer.

For example, if the user had sin(x)+1=2 and x^2=4 (or, sin(x)+1=x^2-4 equivalently) then the lines would be set up as

sin(3)+1 = eval

3^2 = eval

and then the user would link the two 3s and proceed to "scrub" until a common answer for x was found. While this problem is unsolvable for x, each expression is valid and able to be evaluated.

As somebody said below, this scrubbing amounts to nothing more than brute force guess and check of equations. No additional knowledge is gained through this type of approach and I would never recommend this for anything but the most trivial of problems and even then a standard approach would probably be faster.

EDIT: Looking at the more advanced "locking" functionality, I think you are probably correct in that this functionality may be constrained to monotonic functions only.


I wonder. Specifically, would you be able to "scrub" every number in the "equation" 1 beans / 1 buckets = 1 beans per bucket?


Uh, what about this doesn't work for any solvable equation?


How are you going to search the space of possible solutions? If it's monotonic, you can do binary search. If it's some crazy thing you don't know... well, you can't try all possible numbers!


Have you ever heard of a computer algebra system (CAS)? It's the generic name for software that performs symbolic mathematics, anything from the algebra that 8th graders are taught to differential equation solvers used in modern physics research. http://en.wikipedia.org/wiki/Computer_Algebra_System

The specifics don't matter, the bottom line is, anything that Mathematica can solve, this can be useful for, simply by solving the equation for the chosen dependent variable (the red number) every time you adjust the value of an independent variable (any of the black numbers).


Firstly, if that's how this works -- rather than by allowing you to guess and check until things match up -- then I am very much misunderstanding it. Secondly, there's no way this thing is going to be as powerful as a CAS. Hell, from the description I seriously doubt it'll do so much as solve a system of linear equations for you, just let you explore the space until you find a solution.


One of us is misunderstanding something. What I'm imagining is, you adjust the value by dragging it, and then the CAS solves for the red value. There's no requirement for monotonicity or anything, if the CAS can solve for a unique red value to satisfy the equation, you're good.


Bears some resemblance to the Thimbleby calculator:

http://www.cs.swan.ac.uk/calculators/how.html

Both have you write numeric expressions and then manipulate them while the calculator solves the constraints 'live'; how they developed that general idea differs.


I want this for the iPad


So it's guess and check on speed?


So here's something I've noticed about my own learning process: I can only learn by example. No matter how complete, precise and accurate an abstract description is, I don't understand something until I see examples. For example, when I try to understand some complicated code, I pick some representative example inputs and work out the corresponding output.

Am I alone in this?


That's exactly why I'm a programmer, and why I've always had trouble with math.

I won't say I only learn by example, but I need something tangible. Something I can pick up, squash, twist and break until I can feel what it's made of. Even if that manipulation occurs only in my head, and even if I've had to synthesise that tangibility from someone else's explanation.

For me, that's the way things really are, and anything else is an intermediate representation.

I never did learn the mathematical definition of bezier curves properly; I just looked at the animations on Wikipedia. This post kinda inspired me, so here's a scrubbing bezier curve: http://samgentle.com/playgrounds/bezier


I'm with you.

I'm very inspired by this scrubbing calculator because I think it is the perfect tool to introduce algebra. The abstract concept of a variable is not something that comes easy to everyone. This tool allows you to visualize the idea of a variable and play with it.

I think this would allow the introduction of algebra at an even earlier age for some, and make the transition much smoother for the rest.


No matter how complete, precise and accurate an abstract description is, I don't understand something until I see examples.

I believe this is why spreadsheets are so popular: you're never working with abstraction alone. It's always incarnated in an example. That seems to fit how most people's minds work. By contrast, tools that require users to specify their abstractions first and only then instantiate them with data have a much more limited appeal. It can be hard for programmers to appreciate this because we're on such familiar terms with abstraction.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: