Not to be confused with Troubleshooting / Diagnosis.
It turns out that solving problems can be learned, and taught, and it can apply to all parts of our lives, not just our work.
Usually, if its a problem that hasn't been solved, its because its complex and its exceeded our complexity barrier, at least for the moment. To reduce complexity "divide and conquer". But how should we divide?
"Before implementing a component you write some of the code that actually uses it. This way you discover what functions with what parameters you really need, which leads to a very good interface. You will also have some good test code for your component."
""Wishful Thinking" is a good way to think about recursion: When seeing a recursive call, you should not think about the code being executed on each sub call. Instead, just imagine that the sub call does its job correctly. Thus, you prove the correctness of the function by assuming that it is correct (on simpler input). This is some positive kind of self-fulfilling prophecy. Of course you still have to check for trivial cases and need to assure that the recursive call handles a simpler case of your problem. But those are minor issues. The hardest part is to understand the recursive calls. Without the technique of wishful thinking, you can't handle problems like "Towers of Hanoi", let alone more complicated ones. "
How do we choose between these methods of dividing up complex problems?
|file: /Techref/problem-solving.htm, 4KB, , updated: 2020/6/30 10:31, local time: 2022/1/23 20:09,
|©2022 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions?|
<A HREF="http://www.piclist.com/techref/problem-solving.htm"> Problem Solving Advice</A>
|Did you find what you needed?|
PICList 2022 contributors:
o List host: MIT, Site host massmind.org, Top posters @20220123
* Page Editors: James Newton, David Cary, and YOU!
* Roman Black of Black Robotics donates from sales of Linistep stepper controller kits.
* Ashley Roll of Digital Nemesis donates from sales of RCL-1 RS232 to TTL converters.
* Monthly Subscribers: Gregg Rew. on-going support is MOST appreciated!
* Contributors: Richard Seriani, Sr.
Welcome to www.piclist.com!