Coding is Two Things

post_pointer

Coding is hard because it’s two things:

  1. Expressing ideas in the rigid syntax & grammar of a formal language.
  2. Problem solving.

While learning to code we often focus too much on the first. This is also true while teaching others to code.

This fall I’m going to highlight problem solving while teaching my intro programming courses. Below you will find some of the problem solving strategies I may adapt for my students.

Solving Problems in Five Acts

  1. Define the Problem
  2. Let it Simmer
  3. Plan a Solution
  4. Carry out the Plan
  5. Reflect

via: University of Waterloo Centre for Teaching Excellence

FOWL Problem Solving

Figure out What You’re Being Asked
Organize the Presented Data
Work out the Problem
Look Over Your Answer

via: Geekdad

George Pólya’s Problem Solving Techniques

  1. Understand the Problem
  2. Devise a Plan
  3. Carry out the Plan
  4. Look Back

via: George Melvin - Berkeley University

Also: Pólya’s book on the subject, How to Solve it - A New Aspect of Mathematical Method: Full PDF, AbeBooks, Amazon

Feedback

How do you solve problems?

On reviewing this post Sam suggested emphasising hypothesis and testing when teaching these strategies. I agree that formulating a hypothesis during planning makes room for false starts, while testing adds rigure to the self-assesment of the “Look Back”/Reflect phases. The wonderful part about making these two steps explicit is that we now have something akin to the scientific method:

  1. Statement of the problem.
  2. Hypotheses as to the cause of the problem.
  3. Experiments designed to test each hypothesis.
  4. Predicted results of the experiments.
  5. Observed results of the experiments
  6. Conclusions from the results of the experiments.

Language geek note: The word solve comes from the Latin solvo, to loose an object bound, to release, set free, disengage, dissolve, take apart.

Related Posts on StungEye:

2015-07-11 09:43:45