Strategies

"The most important factor in the training of good mental habits consists in acquiring the attitude of suspended conclusions, and in mastering the various methods of searching for new material to corroborate or to refute the first suggestions that occur." John Dewey, How We Think, D. C. Heath, 1910

The Central Idea

There are two activities in problem solving. The first activity is called discovery, which is being creative. The process of discovery has no rules. The second is being called justification, which is the critical, rule providing part. These two concepts are best done as independently as possible in the sense that once you decide to that you are doing discovery, just keep generating ideas and don't try to sort out their worth. In a word, try not be critical when you're being creative and try not to be creative when you're being critical. Now, obviously, this can't be a hard and fast rule: If a creative idea hits you when you are working at a critical task, write it down and come back to it; don't try to deal with it during the critical phase.

The first sustained investigation into problem solving was by John Dewey (1859-1952). Dewey's work was immently influential in many areas of education and psychology. His ideas inspired George Polya (1887-1985). Polya's book How to Solve It (Garden City, NY: Doubleday and Co., Inc. 1957) is considered a seminal work and the basis of much of the thinking about how to do computer science.

A description of Dewey's ideas are outlined here. I have distilled Dewey's ideas into a format that we will use for class. The Pairs Solving approach is a little difficult to understand without some help. We will follow this rubric in class.

Strategies

The following general approaches have been touted on many mathematics teacher's web pages.

Discovery Techniques and Artifacts

Brainstorming and Creative Thinking

Brainstorming is an activity to develop as many ideas in as short a time as possible. Inherent in brainstorming is the requirement that ideas are written down on paper with no attempt to analyze the appropriateness or goodness of the idea. Perhaps the best strategy for an individual is to conduct a free writing exercise sometimes called slip writing. Many of the brainstorming exercises center on word association. Mind Maps are a perfect exercise at the very beginning of discovery.

Syntectics

Synectics is a way of joining together apparently unrelated ideas. This strategy makes use of analogies and metaphors to help you look at problems from a really different point of view. Analogies and metaphors are often difficult to conceive but they are a great mind extender. A classical example of syntectics is the analogy of water pressure and electrical voltage.

Artifact Generation

This strategy encourages you to move from concrete experience to the formation of abstract generalisations and concepts by using objects. The artifacts are observations and propositions about the concrete experience.

Pyramid Strategies

Pyramid strategies work by listing all the attributes of a problem or object before trying to make any sense of what you have written. The statements are the base of the pyramid and the propositional statements are the steps of the pyramid. Initially, there are just two, maybe three statements linked together. But then groups can be linked together. Drawn in an obvious way, these propositional statements form a pyramid. Much more information on how to apply these ideas is contained in the page for concept maps.

Pairs Problem Solving

Pairs Problem Solving is a simple strategy that encourages you to work with a colleague to describe how you solve problems. This exchange broadens both participants' problem-solving skills.

Cause and Effect

Perhaps the most basic strategy used in science, engineering, mathematics and computer science is to develop a list of factors in a problem and then determine which factors cause other factors to change. The resulting table or graph provides a basis for understanding the system. The resulting graph is often an arrow diagram. Arrow diagram are directed graphs that have the tail of the arrow at the cause and the head at the effect.

Problem Restatement

A very effective means of clarifying the problem is to restate the problem in your own words. A certain caution is needed here because most problems seen by professionals arise in a context in which there is a widely-accepted vocabulary of terms, processes, metaphors, etc. Problem statements and restatements must consider this vocabulary. If you are not familiar with it, then you must set aside time to learn.

Pros and Cons

Many problems are decision problems: problems in which you must make a decision about a course of action when you do not have all the facts. A Pros and Cons table lists each possible argument for each possible action. The arguments must be both for and against the course of action. The expertise here is that it is very difficult, especially novices, to see both the pros and the cons. One approach is to game: treat the problems as if it were a game and devise strategies.

Decision Trees and Decision Graphs

Decision trees are a variant of "pros and cons." In a decision tree, each node is a possible state and the arcs between nodes indicates possible actions leading to that action. The goal in developing a decision tree is that the actions must lead to disjoint states. This is not always the case in real problems and therefore, we can talk about decision graphs. As pointed out below, these graphs and trees can be displayed as tables as well as a visual graph.

ProbabilityTrees

Probability trees are decision trees with probabilities added. In this case, the arcs eminating from a node must be mutually exclusive and exhaustive. As pointed out below, these graphs and trees can be displayed as tables as well as a visual graph.

Justification Techniques and Artifacts

Tables and Graphs

Tables and /or graphs are perhaps the easiest way of generating and documenting a large number of ideas as well as an effective strategy for organising information. It can be used to highlight all the possible associations between two lists of ideas. Graphs are used as flowcharts, UML, or arrow diagrams. These ideas are often informal but become a part of professional practice over time. Tables are used when the data is dense, which means that every element has at least one related element. The relational database paradigm is based on tables and directed arcs. Trees, matrices, tables and other synonyms are just different typography for the same idea: they all represent relationships.

Concept Attainment

One of the earliest exercises in justification is called concept attainment. In concept attainment, you test your knowledge of a concept by identifing examples and non-examples of the concept. The process allows you to form increasingly more precise definitions of the concept; this is a form of hypothesis testing.

Problem Decomposition Techniques

The principal approach that we use is the work breakdown structure (WBS). Work breakdown structures are very commonly used in project management applications. They are an important step in developing a program and are often displayed as Gantt Charts. Gantt charts are commonly used in managing large projects and there is a wealth of computer programs commercially available to manage Gantt charts.

Another common form of analysis is the problem decomposition. The Hierarchical Analysis Graph (HAG) is a graphical presentation of the breakdown of problem into subproblems. Because it is a hierarchy, the HAG can be drawn as a tree, computer science style with the root at the top. The root is the problem to be solved. The subproblems are written underneath with an arc from the parent to the child, indicating that the relationship "is partially solved by". HAG diagrams are a form of and/or graphs.

Another decomposition technique is the And/Or graph. And/Or graphs are graphs used to describe logical constraints in scheduling and exhibit much of the innate parallelism in a process. And/Or graphs can also be used to describe complex logic: an excellent on-line discussion is given by Professor Ernest Davis.

Program Development

Polya-Suh Development Paradigm

Verification

HypothesisTesting

Testing

Miscellaneous Things that Research has turned up and I've not used

  1. Koans
  2. Schemata
  3. Case Study
  4. Free Write
  5. Code Reading
  6. Project Decomposition
  7. Problem Restatement
  8. Pros-Cons-and-Fixes Divergent/Convergent Thinking
  9. Sorting, Chronologies and Time Lines
  10. Causal Flow Diagramming
  11. The Matrix
  12. The Decision/Event Tree
  13. Weighted Ranking
  14. Hypothesis
  15. Testing
  16. Devil's Advocate
  17. The Probability Tree
  18. The Utility Tree
  19. Criticizing Yourself Intelligently \

Testing

Evaluation of Facts. If something is presented as a fact, then there must be creditable evidence for the fact.

Enthymemes and invited conclusions. An enthymeme is an partially presented argument, meaning all the parts are not there. Those parts that are missing must be supplied by the user. Often the purpose in using an enthymeme is that the poser is inviting certain inferences but not stating them. For example, consider the following claim: "Our product is unsurpassed by any other brand on the market." The invited inference is that the advertiser's brand is superior. Closer examination of the work unsurpassed shows that in this context it means "none is better, but many may be equal".

Statistics. Lies, Damned Lies, and Statistics. Enough said.

Correlation as Cause-and-Effect. A common problem in behavioral issues is that correlation is taken as cause-and-effect. Reasoning (Luckhurst and Bechtel book).

Consistency.

Evaluation of hypotheses. [PCW] defines confirmation bias as the tendency to evaluate a hypothesis by only searching for information that would be consistent with it. Analysis of Key Assumptions Consistency and reasonableness.

 

Stevenson's Tips In Problem Solving

Keep it simple!

The three secrets of problem solving: Case analysis, Case analysis, Case analysis!

If you don't have the problem stated correctly, you're solving the wrong problem.

It's all in the semantics of the problem. Develop a metalanguage for this problems and use it.

Make sure you use accepted terminology: it is impossible to communicate otherwise.

Problem solving is as much about learning as it is about designing solutions

Don't try to solve the problem as a whole: break it down into cases.

If you can't keep it simple, partition the complexity into manageable portions.

Follow the Polya rule: If the problem is unsolvable, there is a simpler part that is also unsolvable but easier to understand.

Know why you're doing what you're doing.

Know thy user.

If you can't draw a picture of it, chances are you can't solve it.

If the problem is with pointers, you must draw a graph with the pointer relationships.

It's all about states and transitions.

Find out what you don't have to care about. Then ignore those issues. It may be that some aspect is not important to worry about at this time; so don't worry about it. Sort the tasks by logical precedent and chronology. Don't sweat the "not important yet."

Focus on data and data structure representation.

When in doubt, try a simple example program.