The Hour of Code offers parents, teachers, and students an opportunity to learn a bit of coding. But what is this week such a phenomenon? It’s not just about coding, ya know. It’s about problem solving, and coding a great method to learn problem solving skills.
The process of coding naturally applies the basic cognitive problem solving process and tests it immediately for viability. When a person codes, they have to: identify what they want the computer to do, evaluate the possible computational processes necessary to get to that goal, and implement the one best suited for the task at hand and the program as a whole. Programmers must do this multiple times, on both a micro and macro level, as they code. If the computation solution they pick is inaccurate, the program won’t run.
Yingxu Wang and Vincent Chiew (2010) define problem solving as, “a cognitive process of the brain that searches a solution for a given problem or finds a path to reach a given goal. When a problem object is identified, problem solving can be perceived as a search process in the memory space for finding a relationship between a set of solution goals and a set of alternative paths.” The process of coding mirrors this process.
What makes coding unique in being a being a good medium to see a problem solving process? Unlike some forms of problem solving that take place in complex situations, coding provides two things:
- A learner gains direct feedback on the implementation of their solution: If the program doesn’t work, the implementation or solution set was wrong.
- A human to computer interaction allows for fewer variables to consider if the implementation did not provide the results expected.
We all know the value in having clear, direct feedback in being able to self-assess and reflect. By having quick results on whether the solution chosen is accurate, learners can better analyze their choice: what was chosen? Why didn’t it work? Why did I choose it? What is a better choice and why?
When the program doesn’t work, it’s not the fault of the computer. There is something wrong in the program, which means there is a syntactic error (something was typed wrong) or a programming error (the solution chosen was inaccurate). There are a finite set of reasons it might not work, which means it’s easier to see where things worked and where they didn’t. Again, this provides a clear line of sight for a learner to assess their choices.
Of course, coding alone is not the answer, nor is it the only answer. However, coding has a natural need for self-assessment, self-adjustment, and learning that can provide a pathway toward self-awareness in problem solving.
Problem-solving is an important skill for the 21st century student, and coding is one of the best ways to teach the problem-solving method to students. Join your local schools and organizations to participate. Or reach out to us to learn more about how to bring coding to your school.