18 ms·
Stepping into math: Open-sourcing our step-by-step solver
- GrumpyNl 10y agoIt looks like Sheldon came through.
- gravypod 10y agoNow that this exists I think it's worth creating an opensource version of the TI-Nspire for engineers & mathamaticians. Something based on cheap hardware, runs linux, and can implement this + a theorum prover to basically make the most handy lab calculator.
- rkcf 10y agoCould base it off of a raspberry pi with a touch LCD. It would make a good teaching project for a highschool class.
- aidos 10y agoThat's so cool. Reminds me of how different the learning experience is now. When we were at school (80s/90s), there was nowhere to turn if you didn't have the answer. My parents had an Encyclopedia Britannica set, so at least there was a paragraph to go on. It's amazing how good you became at fleshing out that paragraph into an essay :-)
- tgb 10y agoHas anyone done a study to see if this kind of aided solving actually helps students learn? I'm worried that "Eh, I'll just write this solution down today, I'm sure I'll learn it tomorrow" is what's happens. Awesome software though.
- empath75 10y agoYeah, seems like it's going to be used for cheating on homework. (ie: "Show your work")
- maxerickson 10y agoIt should be used to replace homework! A system that can break a problem out into steps should be able to assess the students understanding of the steps and even give them appropriate practice problems.
- digler999 10y agothe biggest cheating is done by the TA's and profs who don't even grade homework anymore. they just send you to a website where a $100 per-semester, per-student SaaS daemon runs a glorified strcmp() on your answers and marks your problem wrong even if your answer is logically correct but the strings dont match.
- nerdponx 10y agoAs if you couldn't already copy off your friend?
- closed 10y agoIt really seems to boil down to how the software is used. I'm not sure how effective simply presenting the steps is, but some of the most well validated intelligent tutoring systems are built around simple algebra problems like these. The big difference is that they test students on each step, and try to give useful feedback if they get a piece wrong. (although, I just glanced at the wikipedia article for a tutoring system and it doesn't seem conclusive, so maybe I need to look again.. https://en.wikipedia.org/wiki/Cognitive_tutor https://en.wikipedia.org/wiki/Cognitive_tutor)
- j2kun 10y agoIn my experience as a teacher, most students don't learn it either way until they have to use the skill to do something else. That's why we joke: calculus is a class where you finally learn algebra, differential equations is a class where you learn to integrate, etc.
- snarf21 10y agoThere is big difference between understanding something, knowing something and application of that knowledge. It is easy to sit in class and follow along and feel like you get it. Much harder to explain it to the class from scratch. "If you can't explain it simply, you don't understand it well enough." -Einstein
- minxomat 10y ago> The quote "An alleged scientific discovery has no merit unless it can be explained to a barmaid." is popularly attributed to Lord Rutherford of Nelson in as stated in Einstein, the Man and His Achievement By G. J. Whitrow, Dover Press 1973. Einstein is unlikely to have said it since his theory of relativity was very abstract and based on sophisticated mathematics.[1] Also, see the next answer for a more direct source. The list of misattribution is entertaining, too.[2] [1] - http://skeptics.stackexchange.com/a/22409 http://skeptics.stackexchange.com/a/22409 [2] - https://en.wikiquote.org/wiki/Albert_Einstein#Misattributed https://en.wikiquote.org/wiki/Albert_Einstein#Misattributed
- dahart 10y agoI don't know of any studies, I'd love to see some! But, I'm a little torn on the concept you're getting at, which is whether seeing answers is less helpful than struggling to find answers and arriving at them yourself without having seen the answer first. We do have a strong and pervasive belief in our society that the struggle itself is important, and that struggling to derive how to get to the answer without someone giving it to you is the only "right" way to learn. (The same goes for money, btw, but that is a meta topic for another time...) In many ways, I believe in struggle myself, but I don't have any concrete scientific evidence, I'm just becoming aware that it's a belief and not necessarily a truth. Recently, as a parent, I think I'm seeing some evidence to the contrary. When my kids ask for math help and I force them to struggle through each step and think about how to do it and explain and show their work, it works eventually, but it takes a long time and it is a struggle for all of us. When I show them the answer first, and then we talk about it later, they learn quicker with less struggle. Usually I will make them rewrite anything I show, but I'm starting to feel that learning by example without the forced struggle is a lot more efficient. I still want them to be curious and interested in researching their own solutions, so of course I'm a little worried that by doing too much handing out of answers, I might do damage to their desire to explore math (or any subject). But so far, I'm not seeing that, I'm seeing increased interest and enjoyment in math, we spend more time talking about subjects beyond homework. In some ways it makes sense, we learn how to talk and eat and behave by example, some subjects we can only learn by example (like, say, history). Math and physics are weird ones where we pile on extra struggle to derive the rules because we think it's helpful for learning. Anyway, I'm certain struggling to learn rules is important, I'm just becoming less certain that it's always important. I do believe that learning by example works and is useful and sometimes more effective than learning rules.
- 0xfaded 10y ago+1 also curious. Have millennial children fundamentally learnt to learn differently using computers? I decided to understand the math behind the Kalman filter, and despite having read the Wikipedia page and impemented these, I still had to go back to pencil and paper. (Did you know that the Kalman filter is a least squares estimator?) I was thinking this morning that if the requisite knowledge needed to make incremental advances continues to increase, we risk a technological platuea as fewer and fewer people will have enough knowledge. One solution is to teach humans more, and I'm curious if technology has or can facilitate this.
- jnbiche 10y agoIt's an n of 1, but when I went back and reviewed calculus and linear algebra last year, using symbolab.com to talk through the steps of various problems was a huge help in refreshing my knowledge. In some cases, it even helped me really grasp a concept that I never really had learned well the first time around.
- pablo_aguilar 10y agoMy wife did a very similar research project for her PhD (https://goo.gl/vSZ69s https://goo.gl/vSZ69s) They studied using the system in 5 groups (taking the same class) and got a statistically significant delta in the 3 experimental groups' scores vs. the 2 control groups. Both exp and ctl solved the same set of exercises, both worked with a teacher, but exp groups also used the system. The results about the learning deltas haven't been published yet, but you can e-mail her at <np at mathdip.org> if you're curious.
- Steeeve 10y agoNow... the only thing remaining is to translate this to common core :). I say that in jest, but doing so would make common core much easier for parents AND teachers to grasp. There's an enormous divide between those who get it and those who hate it, and providing parents/teachers with something that would help them understand the benefits of common core concepts would be a gigantic win.
- therealmarv 10y agoDoes anyone know if there is a good open source library for making equations (Latex, MathML) out of pictures like in their demo?
- auria 10y agoHi! This is Evy (I wrote the post) I know this doesn't answer your question, but at Socratic we use an API that we pay the creator of http://mathpix.com/ http://mathpix.com/ for. It would definitely be super cool to see an open source library for this :)
- therealmarv 10y agoThanks anyway. Getting equations into the laptop (editor) or smartphone is not easy.
- deleted 10y ago[deleted]
- benbristow 10y agoI'm jealous of kids these days... homework would've been so much easier with this. You could always use a calculator but the whole 'show your own working' catch meant you had to do it all manually. Not any more!
- maxerickson 10y agoHopefully the kids of tomorrow end up getting less homework because of things like this. Consider a system that combines practice and assessment. It could individualize both, reducing the need to force students that have mastered a concept to do repetitive practice. It might be a big challenge to get such a thing to work well, but let's not look back at our schooling as an anchor for what students today must do.
- samfisher83 10y agoA lot of things in life you get good by doing over and over. Some people are born with innate gifts, but a lot of people have to put in work to get where they are.
- maxerickson 10y agoIndeed. But if you can do assessment on an ongoing basis, you can eliminate the work for the students that have already mastered a given concept and individually focus the work of other students, so that they aren't wasting their time trying to solve problems that they lack the conceptual foundation to solve (math is often like this, missing 2 abstractions needed to solve a problem undermines the utility of the practice, it will be basically impossible). I'm not suggesting that it would remove the need for practice. I'm suggesting that it could be used to make the practice more effective, for students that are doing well and for students that have fallen behind.
- jerf 10y agoI once designed myself a system for teaching math online. In addition to using an engine like what they're showing here, my plan was to start from more-or-less the beginning, but also track and categorize the errors a given student makes over time. Errors are not generally made randomly, there's a pattern to them. Then, we could allow the student to "solve" an equation the way they really should, by skipping over two or three steps at a time, but when we see them do something wrong, we can use our table of "errors the student is most likely to make" to explore the space of possible errors between step 4 and step 5, and give focused feedback about what they did wrong. Using that table there's really only a couple hundred possibilities; if that fails we can always ask the student themselves to break it down more tightly. Presumably if someone were making a business out of this, there would be someone on the lookout for errors the computer can't figure out to add what rules they can to the system. (Though there will always be an irreducible residue of incomprehensible error.) Teaching a student math would then be about reducing each of these errors to zero over time. You'd have the computer custom create problems that hold a constant probability of the student making an error at some point during solving it; say 20% or so. Then as the student demonstrates mastery, you naturally make the problems more complex as you have to put in more steps to make the probability of error go that high. Instead of a klunky, chunky "ok now we learn this and you blindly practice it, now you learn this and you blindly practice it, and we hope at the end you've learned everything we taught", you would in theory get a naturally progressive, customized difficulty curve that keeps the student continuously engaged with being about 80% correct, but always progressing forward. This approach also naturally ensures that just because we're covering the quadratic equation this week does not mean you get to forget fractions; once you've seen the simple stuff with integers, we're naturally going to fold fractions back in to the problems, for instance. There's some elaborations on the theme after that, such as pre-examining the generated problems to ensure that the most likely mistakes are all distinguishable by producing different error output. But I don't have time to do this. I'm at least reasonably confident it would work, though.
- JotForm 10y agoThis is such an inspiring software.
- jorgemf 10y agoSome years ago I tried to do something a bit more complex: http://telauges.appspot.com/mathsolver/ http://telauges.appspot.com/mathsolver/ My idea was to use planning and A* search to solve any type of math problem, even create probes for things like the quadratic equation https://en.wikipedia.org/wiki/Quadratic_equation https://en.wikipedia.org/wiki/Quadratic_equation . I gave up after learnt the search space was so big for it that it was impossible to solve. If I had to do it today I will explore deep learning as heuristic, but I think it probably wont work. I always like to see this type of projects, I hope they succeed where I failed.
- jahewson 10y agoPerhaps that was an over-ambitious project given that Automated Theorem Proving is an entire field of research. https://en.m.wikipedia.org/wiki/Automated_theorem_proving https://en.m.wikipedia.org/wiki/Automated_theorem_proving
- jorgemf 10y agoIt was during my first months in my PhD when it wasn't clear what I will do. My idea was to define the theorems as operators of planning algorithms and then to use the planning techniques to create new theorems or probes. But planning is not good for long plans as theorem proving, so we moved to something simpler: linear equations and A* algorithm. Then we found the math equations have different representations for the same thing and the branch factor is quite big. Moreover the heuristic of trying to minimize the equations doesn't give good results some times. That is why the prototype works for the example, but for other examples the a* gets lost in the search because of branch factor and equation representation. The problem with the equation representation is that if you don't find a good one, then you cannot make searches in hash tables efficiently. You end up with a lot of equations duplicated with different representations. And the representation, I used trees for it, was important for the operators. Planning was a very nice idea because the algorithms already deal with the heuristics. But algorithms as FF http://www.cs.toronto.edu/~sheila/2542/s14/A1/hoffmannebel-FF-jair01.pdf http://www.cs.toronto.edu/~sheila/2542/s14/A1/hoffmannebel-F... wouldn't work due to the branch factor and the relaxation of the problem it performs.
- StefanKovachev 10y agoHot girl
- dang 10y agoPlease don't do this here.
- stdbrouw 10y agoWorked on something like this as a hobby project a while ago, but to avoid the complexities associated with solving arbitrary exercises, instead I had it set up as an algebra exercise generator: you start with the solution, which you then (algorithmically) obfuscate by splitting terms and recombining things for a couple of rounds. Never got around to finishing it, but the neat thing is that you've already generated one possible way to solve the problem, it's just how you generated the exercise in reverse. Another thing that's quite easy to do is to check intermediate steps in a solution for equivalence. You don't even really need CAS, just brute force the problem by probing the equations: set all variables to randomly chosen values, n times and if the sets of results are the same for both equations, you're good. Anyhow, Socratic looks great and a great deal more advanced and useful than what I came up with, so kudos!
- analog31 10y agoThis seems interesting because it addresses the issue of "show your work." Many years ago, I spent a semester teaching the freshman algebra course at the nearby Big 10 university. This is the course that you take if you don't get into calculus. My students were bright kids -- they were all admitted to the state flagship school -- but not mathematicians. There was huge variation in the preparation that kids brought with them from high school. In particular, very few of them understood what "show your work" means. They were told "show your work," but nobody told them what it really entails. Is it just to provide evidence that you did some work, to deter cheating, or is it something else? Many of my students were taught "test taking skills" such as the guess-and-try method. So on one exam, a question was: x^3 = 27 One student's work: 1^3 = 1 2^3 = 8 3^3 = 27 Answer = 3 I asked the professors to tell me what "show your work" means. None of them had a good answer! These were the top mathematicians in the world. I wanted to talk with my students about it, but I'm not even sure that my own answer was very good. But if we did well in math, then we just know what it means. It's not just evidence that you did the work. It doesn't mean "turn in all of your chicken scratch along with the answers." It means something along the lines of supplying a step-by-step argument, identifying the premises and connecting them with the conclusion, in a language that is "accepted," i.e., that mimics the language of the textbook / teacher. In fact, the reason to read the textbook and attend lectures, is to learn that language. (It's not so different in the humanities courses). At least, that's my take on it, as just one teacher with one semester's worth of experience. In my view, a problem solving tool that actually addresses the process of building the argument and not just determining the answer, would be beneficial to students.
- poseid 10y agowithout training, our brains confuses numbers easily from my experience. my niece is learning multiplication tables right now, and she confuses 8 * 7 = 56. we tried to teach her these numbers with a story, or a shortcut, e.g. 5 6 7 8 . see the groups 56 and 7*8. but still she rather found this kind of symbol processing painful and preferred to play with other things. another approach we tried to show her a visual representation of the multiplication but not sure what her current progress is.
- 10y ago
- poseid 10y agothat feels like a nice application of AI in a way. we often use a computer that can help in making a plan (e.g. a kind of map or "steps" as here). this might be nice to help understand problem solving in general. also, nice to see the project is in javascript, that means quite a few non-professional programmers could learn from it.
- chriswarbo 10y agoVery interesting work, and well-explained in the post. Like many others here, I suppose that in it's basic form this would mostly be used for cheating on homework; although it would certainly be useful for those (few?) students who are truly motivated to self-learn the material, rather than just pass the tests. One thing which springs to mind is "Benny's Conception of Rules and Answers in IPI Mathematics" ( https://msu.edu/course/cep/953/readings/erlwanger.pdf https://msu.edu/course/cep/953/readings/erlwanger.pdf ), which shows the problem of only focusing on answers, and on "general purpose" problem sets. Namely that incorrect rules or concepts might be learned, if they're reenforced by occasionally giving the right answer. I think it would be interesting to have a system capable of some back-and-forth interactivity: the default mode would be the usual, going through some examples, have the student attempt some simple problems, then trickier ones, and so on. At the same time, the system would be trying to guess what rules/strategies the student is following: looking for patterns, e.g. via something like inductive logic programming. We would treat the student as a "black box", which we can learn about by posing carefully crafted questions. Each question can be treated as an experiment, where we want to learn the most information about the student's thinking: if strategies A and B could both lead to the answers given by the student, we construct a question which leads to different answers depending on whether A or B were used to solve it; that gives us information about which strategy is more likely to be used by the student, or maybe the answer we get is poorly explained by A and B, and we have to guess some other strategies they might be using. Rather than viewing marking as a comparison between answer and a key, we can instead infer a model of the domain from those answers and compare that to an accurate model of the domain. We can also use this approach the other way around, treating the domain as a black box (which it is, from the student's perspective) and choosing examples which give the student most information about it.
- MichaelBurge 10y agoPeople here keep saying this will change learning and be good for the students, but the only real difference is it's open-source. You can already get step-by-step solutions for more types of problems from Wolfram Alpha, and you can already get API access if you're a 3rd-party developer who needs it: http://www.wolframalpha.com/input/?i=2*y+-+x+%3D+(8+*+x+%2B+2) http://www.wolframalpha.com/input/?i=2*y+-+x+%3D+(8+*+x+%2B+... I don't think it will have any real effect.
- chipperyman573 10y agoI think you need the paid Wolfram Alpha to get step-by-step solutions Source: Paid for it for that feature.
- yequalsx 10y agoIt's a nice program and I can see it being both helpful and harmful. From my perspective, as a teacher of mathematics at a community college, students are unwilling to engage in thought about a problem. If they can't see the solution in a few minutes then they want to look at a complete solution. Mostly they are not willing to struggle through a problem. I vacillate on whether, with the advent of computer algebra systems, it is necessary for students to master algebraic manipulations. I started to think that conceptual questions are better. For instance, give me an example of an equation with no solution. Explain how a baseball player can have the highest batting average the first half of a season and in the second half of a season but not have the highest overall average. Draw the graph of a function defined on [0, 1] but has not maximum or minimum. Students can't do those types of problems either. They are very frustrating problems for students because it requires you to really think about what the words mean and to think of extreme situations. So I've reverted back to the traditional style of teaching math. Manipulation of symbols.
- pasquinelli 10y agopeople expect to work in school, not think. the sad part is i think they only have that attitude through rigorous conditioning. in earlier education it always seems like you should be able to do any of the work you're given easily, given the proper effort; if you can't, then there's something wrong with you. maybe that makes sense for teaching little kids fundamental age-appropriate skills, but it just seems to stick around.
- bigger_cheese 10y agoWhen I was in year 12, 15 years ago, my math teacher introduced our class to a website called "Wolfram's Integrator" which could simplify complicated integrals automatically for you. I just googled it and it still exists: http://www.wolframalpha.com/calculators/integral-calculator/?redirected=true http://www.wolframalpha.com/calculators/integral-calculator/... At the time I thought it was pretty cool in a passing trivia kind of way but didn't make much use of it. A year after that I was a first year university student all of our linear algebra tutorials were taught in the labs using a computer program called "Maple". I really struggled to wrap my head around it. I didn't do well in the class until I started writing out the problems myself and solving them on paper. I found at least for me personally that inputting problems into a computer and having it spit the answer out wasn't teaching me anything (besides which functions to call), in other words I was learning the programming language and not the underlying concepts. Nowadays I work with FEA and LP solvers and I rely on computer assistance all the time to do my job. I'd like to think having a firm grasp of the underlying math is advantageous and makes me a better engineer but I know there are people around that get by just by "plugging things into Ansys".
- equalunique 10y agoMy academic math journey stopped at pre-calc, and I had been a C student for quite a long time. HS Algebra II would never have happened for me if I hadn't discovered XMaxima, an emacs-based CAS. Fortunately I took a Discrete Math course before dropping out of college, and it gave me a new admiration for math. In spite of my weak math background, this has been the most enjoyable comments section on HN I've read so far.