Dealing with Hard Problems (2015)
artofproblemsolving.com
artofproblemsolving.com
It's great because it's addressed to math classes but based on the practices of a research mathematician. So it's not just solving the problems in the book, it's also about solving new unsolved problems. It's specific to math, but really useful for so many other questions.
There is much more to the book but one of my favorite parts is the Heuristics and their simple explanations. Wikipedia has a good table of them
Analogy Can you find a problem analogous to your problem and solve that?
Generalization Can you find a problem more general than your problem?
Induction Can you solve your problem by deriving a generalization from some examples?
Specialization Can you find a problem more specialized?
Draw a Figure Can you draw a picture of the problem?
...
https://en.wikipedia.org/wiki/How_to_Solve_ItThe calm, deliberate attitude of the book is infectious, it's great for getting unstuck from tough problems. So do read the book itself in addition to the wikipedia article.
I'll definitely also read the book and use it as a guideline on what to try next instead of randomly asking myself "what else can I try?".
The first thing I would always do is have the student walk me through their current understanding of the problem. What surprised me was how incredibly wide the range of mental models students used was. Also it was interesting that quite often students make their mental models far more complicated than the actual problem.
My job was really just to help the student simply and clarify their mental model, and from there they usually solved the problem on their own.
Smart data structures are better than smart code. I think this applies to your mind as well as code.
Such techniques involve asking pointed questions to the student and actually listening to what they say. This the basis for the Socratic Method and it fucking works.
Sadly, we have become so accustomed to "searching" for answers with queries (eg "googling it") that we're forgetting about really effective ways of learning and solving problems. We're even forgetting that learning and solving problems are the really part of the same activity.
The anti-pattern emerging is the "stackoverflow" style of problem-solving where it's all about the learner asking "the right questions" and getting smacked down for "the wrong questions."
When you don't know something very well you have to consider a lot more possibilities, your search space is much larger. If you already know where you have to go you don't need the maps of the entire city, you can just get the section that covers your expected route.
When I entered the real world after my study (15 years ago), or maybe it was just a function of growing older, over time I realized that the biggest difference between people "who know" and those who don't is that they know all the things something is NOT, and all the ways something does NOT behave. When I compare my intuition or feelings for a big database system with how I feel today, I don't actually know all that much more in hard facts. But I handled such systems enough that I know what to expect andd what not. That means I could cut the uncertainty. It's hard to describe.
Or when I think back of how suspicious and even frightened I was when I sneaked into the garage when I was a kid and started the engine of my grandfathers car. No driving, just the engine. On a deeper level I did not have any experience on what to expect, what to feel. The intellectual level is no replacement, that's other parts of the brain, it does not replace actually doing something. Back in that car just by feel my "expectation space" was far too large compared to what actually happened, and what today I would expect when I start an engine. Knowing by having witnessed others do it was no replacement for getting my own experience (but it was enough to let me override my fears and give it a try)!
After studying a lot of medical topics over the last couple of years I realized the difference between a doctor and somebody like me 10 years ago, i.e. with zero education in any medical topic or genetics or biology (everything from school long forgotten so even that had to be relearned) is not how much more they know - the gaps even today are incredible (lots and lots of details, but on a whole-system level all they can do is trial and error like any non-medical person; no way to be confident about any drug without clinical trial, not even close, and even in the early phases it's all about actual experiments) - it's that they recognize "BS". They know what does not work much more than they know what works.
Okay, I think I did a terrible job expressing my fuzzy internal model. Maybe these two parts: The route of steps taken to map a territory in the first place looks overly complicated compared to what is needed to get somewhere when you already have a map, and doing it yourself is very different from being told.
Abstraction is generalization of special cases. If you only consider one case, you can't generalize from it. Only when you get two, can you work out the differences and the similarities. It's like forming the intersection of two sets: You remove all the elements that are not part of both.
I wonder how accurate this process is. If you're not careful, you might confuse experience with being narrow-minded. Thinking outside the box requires you to consider exactly what you know you don't know.
That's why we say the old generation has to die for new ideas to gain power. You are more open to new idea when you feel unsure and still have to build your internal model. Once it's somewhat settled the brain is reluctant to significant further change unless presented with overwhelming evidence - but it has also built up strong filters so that recognizing the evidence also is harder. See progress in science in general or medicine in particular.
Coming to general methods of problem solving in recreational math, I always look for symmetry and transforming the problem from one problem space to another and induction techniques before attacking it. For a research/modelling problem, my approach is to start working on the most simplified version of it and gradually progress towards the original problem.
There is an excellent numberphile video on Josephus problem that illustrates how examining specific instances to observe patterns can help solve the general case.
https://www.youtube.com/watch?v=uCsD3ZGzMgE
Edit: Formatting
It has gotten so absurd that I do a lot of walking at my work, usually in an empty conference room and people have many a time wondered if I do any work at all.
But, I love it. The challenge, the walk and the solution is exhilarating to me.
I always suspected its the triumph of some educators deep down in history - who had a preference for a quite audience over one restless challenging the presented ideas.
I am from India and most offices are in the middle of concrete jungles. Even in IT companies, there are no places to walk around. It's a shame.
Looking at houses in the US, especially rural areas makes my mind orgasm. Such serene places.
Crazy stuff!
The chapter describes how Feynman came across how his colleague visualizes a task. IIRC Feynman does it visually (imagines something visual in his mind) and thus can do voice related activities while he is thinking, but his colleague does it by visualizing sound (he thinks tick-tock sounds in his mind), so can do visual tasks while he is thinking.
Really fascinating how a human mind works.
Also reminds me of the quote by Einstein, something about judging the ability of a fish to climb a tree.
Everyone has a unique and effective way to navigate the world intellectually.
Almost certainly not by Einstein, for what it's worth. It was probably made up by motivational speaker Matthew Kelly or someone close to him, as the earliest verifiable occurrence of the quotation is in his 2004 book The Rhythm of Life: Living Every Day with Passion and Purpose [1].
https://www.discogs.com/Blurt-The-Fish-Needs-A-Bike/release/...
http://www.iancollmceachern.com/single-post/2016/07/21/Pie-a...
The writers of the Men in Black movies called it "getting pie" and so do I.
You have to make time and space for lightning to strike.
I cannot stress this enough. Being cooped up for long periods of time is very detrimental to tasks that must be carried out “in the head.”
And yet, I was confined to a small room for most of my childhood and I feel I managed to be more creative then than I am now, when I have the freedom to travel the world. I wouldn’t want to go back to staying inside a room most of the time though.
Like the article mentions, being able to answer every question means that you’re not pushing yourself. I spent the majority of my time attempting questions that I didn’t think I’d be able to do, while many classmates would spend their time attempting questions they thought they would know. It forced me to constantly ‘solve hard problems’, and become better at doing so. A lot of the time I couldn’t successfully answer the questions I attempted, but in doing so I’d learn a lot anyway.
The article content is great, but I’d add that practice is an essential part of learning to solve hard problems. If you’re studying too, I’d really recommend the learning technique I used, at least to some degree - it will help you become a quick learner and good problem solver.
Side note: I used to think that the solution was expensive tutoring, but after attending a few tutoring sessions with little benefit, I slowly realized that tutoring (at least in my area) is for the unmotivated student who needs to be pushed by someone else. Just wanted to share my experience and say that it’s almost never the expensive prep classes that make a successful student.
[0] https://socratic.org/questions/how-do-you-evaluate-sin-pi-5
Let me assure you, this probably isn't the case: they've put in a significant effort as well, except they did it much earlier than you. This allows them to coast to schoolwork, since it's all easier versions of things they've done years ago–but they're probably working just as hard as you to get ahead in more advanced material.
Whenever I was done with all the week's problems I scoured the (very active) forum for questions of other students. I tried to solve as many as I could, doing a lot (really a lot) of "Google-research", so I got to read lots of sources other than just the course. Then I presented the answer with as many sources as possible, and as well explained as I could. After three weeks I was made a TA, and I remained the only one to the end of that course. The only difference between me and any other student was that I tried solving problems, and using the ones other students had was the "cheapest" way to get enough of them, and also helps to stay on topic and not get distracted by doing too much too far outside of the current course.
I used that same method in a few other courses (and was offered the TA role a few more times but declined). I hope that makes up for my failure as a TA/teacher back at university, where I got to lead a "CS work group" (not sure how to translate the original German word) at a local high-school - and saw my class dwindle from ~30 to 2 kids before I quit... teaching is hard!
Also, his "Solitude and Leadership"[2] talk at West Point in 2009, which probably inspired to write the book.
[1] https://www.amazon.com/Excellent-Sheep-Miseducation-American...
Problem finding requires the backing of curiosity and curiosity has no teeth without well developed knowledge and skill. i.e. Problem finding is effective in areas that you've spent considerable brain time on. So the path to top class problem finding is a long hard road that demands patience. Those who find it easy to solve problems that are given to them often are not motivated to travel this road (at least in the instances I have seen), while those who have to struggle a bit but not too much manage to stay on the road.
Sometimes I find myself being cynical about all the emphasis on "problem solving" in hiring especially with puzzles .. like problems are always handed to you in well defined mathematical form in the real world. I'm looking for folks who have the courage to ask "why is this problem important?"
Good advice. Trying to learn something new, staring at a blank page or a list of requirements that you don't understand, it's easy to get into the impostor syndrome doldrums of "this is so hard, I must just be too dumb to do it".
You see the wall, right in front of you, and you wonder how to get over it. But the fact that your path has even led you up to the wall is a strong indication that you can figure it out. If you understand the problem well enough to see just how difficult it is, you're already on your way to solving it. That doesn't mean it will be easy, of course. But possible.
This is so true. And the strategies explained in the article can be adapted to deal with almost any problem in life. But you have to keep in mind that the bigger the problem, the longer it will take to solve. Some will take days, others years and even decades.
I feel bad for never taking part, but then again it's possible I was never cut out for it.
The teaching is both an online lecture and reading from a textbook, as well as office hours and supplmentary videos. There is also homework, which is graded and gets long responses, of the type that usually takes the grader 10+ minutes to write.
Source: used to grade Python homework for AoPS; I should not be considered speaking for AoPS and I may be incorrect about some of this as I never was a student.
Most textbooks seem to like to have stupid things like "math connections to the real world" and large pictures of unrelated topics in a desperate attempt to appear relevant, all the while serving up repetitive problems that are a copy of an example so that teachers and students can just look back at them without really understanding what they're doing. Personally, I think it's really hard to use books like this in the classroom as it's structured currently because it's considered a bad thing to have problems that are essentially unsolvable for most of the class.
It's really sad, for two reasons. First, most problems in most AoPS books are solvable (or at least should be) for most of the class, especially if you exclude problems marked with asterisks. They're not that different from old Soviet or Polish math textbooks, and pretty much everyone was supposed to be able to solve that.
Second, having only problems that everyone in the class can solve means that nobody in the class advances much. You can't learn to run 5k by walking 5k.
Those are the problems I'm talking about ;)