Solving problems
Computers are tools for solving problems, so it makes sense to spend time thinking about how to actually use them for this. The following is a list from a CourseraSpecifically, the Algorithmic Toolbox course. algorithms course:
- Read the problem statement. What is the task? What are the resource constraints?
- Design the algorithms. Prove its correctness and estimate its performance.
- Implement the algorithm.
- Test and debug.
- Deploy / publish / etc….
How to solve any problem
How to solve it is the name of a book by G. Pólya Pólya, G. and Conway, J. (2014). How to solve it. Princeton, NJ: Princeton University Press. that describes an approach for solving any problem. Thought it's mathematically focused, it applies well to other domains. The steps for solving problems outlined here are thus:
- Understand the problem
- Clearly state the problem
- What is the goal of a solution to the problem?
- Break down the problem into sub-problems
- Devise a plan
- Potential strategies:
- Eliminate possibilities
- Consider special and edge cases
- Apply direct reasoning
- Find patterns
- Draw diagrams
- Solve simpler problem
- Develop a model
- Be ingenious
- Are there solutions to related problems? Have you seen similar problems before that you can apply to this (or to its sub-problems)?
- Execute the plan
- Check each step.
- Seriously, double check your math. Simple errors always get me and they translate through.
- Retrospective
- Does the solution fit the problem?
- What are the lessons learned from the process?
Last updated on 2018-04-11.