A Method For Solving Math Proofs & Troubleshooting Computers

Things have been light in the math section, but luckily Alex McFerron - math hobbyist extraordinaire - has come to the rescue. This also ties into the subject of troubleshooting methodologies. Thanks, Alex!

G. Polya (1887 - 1985) was a math professor at Stanford. He wrote a book titled “How To Solve It” and just reading a few pages out of this book changed my professional life as a troubleshooter of application software, networks, and as a software debugger. Oh yes, and it changed my life as a math hobbyist, too!

In “How To Solve It”, Polya says that doing math proofs is all about defining the problem. He says, first it is about listing out the unknowns and the data. What are the conditions? He instructs us to draw pictures and to separate out the parts. He says write it all down on paper. This is part one of his four step plan for solving math proofs.

Polya’s four steps to solving math proofs
  1. You have to understand the problem.
  2. Find the connection between the unknown and the data. Make a plan.
  3. Carry out the plan.
  4. Examine the solution obtained.
I used to work on a help desk that troubleshot futures trading software. When someone called me, I was the only one who would be able to pay attention to their problem. It was maybe more of a network operations center than a help desk, because I also had access to the machines and was responsible for getting them back up and running. To say that this was a high pressure, high stakes job was an understatement. I was completely stressed out all of the time and for some strange reason I loved it.

When I was on the desk, I used to think of each call as a similar thing to a math proof. I had a problem and my first job was to understand it. What were the parameters of the problem (the machines, the IP addresses, time of day, the locations)? What were the unknowns? This took the pressure off in a lot of ways. I didn’t have the answer, but I sure could ask questions about the problem. Once I had enough information, I moved on to steps two, three, and four. This method turned a really scared person, a person who had very little idea of how the software worked, a person who was the first woman on the help desk, into a very knowledgeable troubleshooter of the company’s software. It was all in the method. Also, it made the calls fun.

Today, I am a developer and I use the same method whenever I have a bug. It is all the same process for solving any problem.

So, if someone asks you:

1) How many functions are there from [n] to [n] that are not one-to-one?
or
2) What is the asymptotic order of the worst-case running your algorithm?
or
3) Why is my application crashing?

… then this method can be used and it helps a lot!

First, what are the unknowns? What is the question? Do you understand it? Can you write it down or draw a picture? Can you really explain it to someone else without asking more questions? Are all the questions answered or defined?

Next, what is the data? You might have to run some experiments and make a plan. Follow the plan and do the experiments. In many cases your plan may be attempting to recreate the crash under certain circumstances or getting a result with certain input. If you are solving a math problem, then this stage might be writing a python program to test the function making x in the range of 1 to 100,000 and seeing the results.

Last, you examine the solution obtained. You can repeat the process, too, and do iterations such that you keep narrowing down the problem until you solve it.

–Submitted to .51 by Alex McFerron.
  • Share/Save/Bookmark

Related posts:

  1. Building A Troubleshooting Methodology
  2. 5 Ways To Have Fun With Mathematics
  3. In Case You Missed It: Math On .51
  4. Circuit Troubleshooting Resources
  5. Weekend Project: Ubergeeke’s Computer Repair Kit

Related Posts

Leave a Reply

Web Analytics