I have just finished reading Peter Denning’s article on “Computational Thinking: Remaining Trouble Spots with Computational Thinking”: https://cacm.acm.org/magazines/2017/6/217742-remaining-trouble-spots-with-computational-thinking/fulltext#.
While I am in full agreement with him over the need to have a consistent definition for Computational Thinking and that the assessment of it needs to be skill-based rather than theory-based. (I actually like this idea a lot.)
I am unconvinced by the argument that Computational Thinking is not a problem-solving framework. Can not all threats, conflicts, concerns be considered as problems?
Also, I am unconvinced by the old definition of CT that believes “Extensively practising programming cultivates CT as a skill set” I prefer the new view that “CT is a conceptual framework that enables programming”.
I have seen many students that can code (i.e. they know the syntax), but they are unable to take a problem, break it down and devise an algorithm to help find a solution. They code by hacking together examples of code obtained from “Dr Google”. The following study from Straw and Bamford “Randomised Controlled Trial and Process Evaluation of Code Clubs” showed that coding had no impact on Computational Thinking skills https://www.nfer.ac.uk/publications/CODE01/CODE01.pdf. I believe students should learn Computational Thinking before they start to learn how to code.
My last point is a confession. I must admit I am confused when people talk about knowledge transfer from one discipline to the next. What exactly does it mean? How is it different from a direct application of knowledge. Can I not apply a search algorithm that I used in Computer Science to Business? So is this a direct transfer and not an application of my knowledge?
Denning, P.J., 2017. Remaining trouble spots with computational thinking. Communications of the ACM, 60(6), pp.33-39.
Straw, S., Bamford, S. and Styles, B. (2017). Randomised Controlled Trial and Process Evaluation of Code Clubs. Slough: NFER.